Я пытаюсь запросить внешнюю таблицу (которая указывает на мою папку S3, которая содержит файл Parquet) в Redshift, но всякий раз, когда я делаю, каждое поле пусто. Однако, когда я создаю локальную таблицу в Redshift и загружаю данные из того же файла Parquet, поля не являются пустыми, и они содержат данные, которые, как я ожидаю, будут у них.
Для создания внешней таблицы яиспользуйте следующие запросы:
create external schema spectrum
from data catalog
database 'spectrumdb'
iam_role 'arn:aws:iam::$SOMEROLE'
create external database if not exists;
create external table spectrum.lineitem_2 (
l_orderkey bigint ,
l_partkey bigint ,
l_suppkey bigint ,
l_linenumber bigint ,
l_quantity double precision ,
l_extendedprice double precision ,
l_discount double precision ,
l_tax double precision ,
l_returnflag char(1) ,
l_linestatus char(1) ,
l_shipdate char(10) ,
l_commitdate char(10) ,
l_receiptdate char(10) ,
l_shipinstruct char(25) ,
l_shipmode char(10) ,
l_comment varchar(44) )
stored as PARQUET
location 's3://$BUCKET/$FOLDER/'
table properties ('numRows'='405022147');
С этим запросом:
select * from SPECTRUM.lineitem_2 limit 5;
Я получаю следующий результат:
l_orderkey |l_partkey |l_suppkey |l_linenumber |l_quantity |l_extendedprice |l_discount |l_tax |l_returnflag |l_linestatus |l_shipdate |l_commitdate |l_receiptdate |l_shipinstruct |l_shipmode |l_comment ------------ + ----------- + ----------- + ------------- + ------------ + ----------------- + ------------ + ------- + -------------- + -------------- + ------------ + ------------- + --------------- + ---------------- + ------------ + ----------- |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Когда я ожидаю следующего:
l_orderkey |l_partkey |l_suppkey |l_linenumber |l_quantity |l_extendedprice |l_discount |l_tax |l_returnflag |l_linestatus |l_shipdate |l_commitdate |l_receiptdate |l_shipinstruct |l_shipmode |l_comment
------------ + ----------- + ----------- + -------------- + ------------ + ----------------- + ------------ +------- + -------------- + -------------- + ------------+ -------------- + --------------- + --------------------------- + ------------ + ------------------------------------ 406401153 |140024 |477525 |4 |6 |6384.12 |0,04 |0,02 |N |O |1995-09-15 |1995-09-03 |1995-09-30 |ДОСТАВКА В ЧЕЛОВЕКА |ПОЧТА |иронические счета 406401154 |18074465 |187005 |1 |12 |17262,72 |0,05 |0,07 |A |F |1994-09-19 |1994-07-09 |1994-10-01 |ВЕРНУТЬСЯ ВЕРНУТЬСЯ |ВОЗДУХ |Ли необычные счета 406401154 |1950973 |938475 |3 |16 |32382,08 |0,04 |0,01 |A |F |1994-06-14 |1994-08-22 |1994-07-13 |ВЕРНУТЬСЯ ВЕРНУТЬСЯ |ГРУЗОВИК |Лишь последние запросы торгуются. pl 406401155 |18762207 |874747 |1 |19 |24097,13 |0,04 |0,06 |R |F |1992-11-14 |1992-09-15 |1992-12-07 |ДОСТАВКА В ЧЕЛОВЕКА |ВОЗДУХ |uests. пушистые необычные отложения w 406401155 |22935297 |1335298 |3 |18 |23960,7 |0,04 |0,03 |R |F |1992-09-09 |1992-08-28 |1992-09-22 |СОБРАТЬ КОД |ВОЗДУХ |ожидание отмотки,
Более того, кажется, что Spectrum действительно может видеть правильное количество строк в файле. Просто кажется, что не в состоянии увидеть данные. Я делаю что-то неправильно? Извините за форматирование.
Редактировать: Я должен добавить, что я мог сделать это с теми же файлами и командами несколько дней назад. Просто сейчас перестал работать.