Выгрузка файлов данных из Amazon Redshift в Amazon S3 в формате Parquet

Я хотел бы выгрузить файлы данных из Amazon Redshift в Amazon S3 в формате Apache Parquet, чтобы запросить файлы на S3 с помощью Redshift Spectrum. Я исследовал все, но не смог найти ничего о том, как выгрузить файлы из Amazon Redshift в S3 с помощью формата Parquet. Эта функция еще не поддерживается или мне не удалось найти документацию по ней. Может ли кто-нибудь, кто работал над этим, пролить свет на это? Спасибо.


person Teja    schedule 07.02.2018    source источник


Ответы (5)


Формат файла Redshift Unload to Parquet поддерживается с декабря 2019 г .:

UNLOAD ('select-statement')
TO 's3://object-path/name-prefix'
FORMAT PARQUET

Он упоминается в функциях Redshift.

а также обновлено в Выгрузить документ

с примером, приведенным в документе с примерами выгрузки

Выдержка из официальной документации:

В следующем примере выгружается таблица LINEITEM в формате Parquet, разделенная столбцом l_shipdate.

unload ('select * from lineitem')
to 's3://mybucket/lineitem/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
PARQUET
PARTITION BY (l_shipdate);

Предполагая, что четыре слоя, полученные файлы Parquet динамически разбиваются на различные папки.

s3://mybucket/lineitem/l_shipdate=1992-01-02/0000_part_00.parquet
                                             0001_part_00.parquet
                                             0002_part_00.parquet
                                             0003_part_00.parquet
s3://mybucket/lineitem/l_shipdate=1992-01-03/0000_part_00.parquet
                                             0001_part_00.parquet
                                             0002_part_00.parquet
                                             0003_part_00.parquet
s3://mybucket/lineitem/l_shipdate=1992-01-04/0000_part_00.parquet
                                             0001_part_00.parquet
                                             0002_part_00.parquet
                                             0003_part_00.parquet
person secdatabase    schedule 04.12.2019
comment
Привет, secdatabase, добро пожаловать в StackOverflow. Ссылки на внешние сайты могут быть полезны, но, пожалуйста, включите краткое изложение важных моментов из них на тот случай, если в будущем ссылка сломается. - person Brydenr; 04.12.2019

Немного поздно, но Spectrify делает именно это.

person Colin Nichols    schedule 22.02.2018
comment
у вас есть какая-либо документация о том, как настроить пути s3 и учетные данные aws для specrify из скрипта python? - person Viv; 08.05.2019

Вы не можете этого сделать. Redshift ничего не знает о Parquet (хотя вы можете читать файлы Parquet через абстракцию Spectrum).

Вы можете UNLOAD в текстовые файлы. Они могут быть зашифрованы или зашифрованы, но только когда-либо плоские текстовые файлы.


Похоже, теперь это поддерживается:

https://aws.amazon.com/about-aws/whats-new/2018/06/amazon-redshift-can-now-copy-from-parquet-and-orc-file-formats/

person Kirk Broadhurst    schedule 07.02.2018
comment
Просто чтобы уточнить - упомянутый пост в блоге посвящен копированию INTO Redshift, а не S3. - person mbourgon; 24.09.2019

К сожалению, пока что AWS Redshift не расширил возможности чтения формата паркета.

Хотя вы можете сделать одно из следующего:

  1. Используйте AWS Spectrum, чтобы прочитать их.
  2. Используйте сканер Amazon Glue, чтобы преобразовать его за вас.

На сегодняшний день в AWS нет готовой поддержки Apache Parquet.

Надеюсь, это поможет.

person Tanmoy Bhattacharjee    schedule 08.02.2018
comment
Вопрос в том, чтобы получить данные из Redshift. - person halil; 08.04.2019

Отличное решение Spectrify делает это, но если вы не хотите делать это с помощью сервисов AWS; вы можете использовать Spark на EMR + Databricks для чтения данных из Redshift и записи их в S3 в формате паркета.

Следующая ссылка подскажет, как сделать то же самое.

https://github.com/aws-samples/aws-big-data-blog/tree/master/aws-blog-spark-parquet-conversion

person Mukund    schedule 11.05.2018