web-dev-qa-db-ja.com

Amazon RedshiftからAmazon S3へのParquet形式のデータファイルのオフロード

Redshift Spectrumを使用してS3上のファイルをクエリするために、Apache Parquet形式でAmazon RedshiftからAmazon S3にデータファイルをアンロードしたいと思います。私はあらゆる場所を調査しましたが、Parquet形式を使用してAmazon RedshiftからS3にファイルをオフロードする方法について何も見つかりませんでした。この機能はまだサポートされていませんか、それともドキュメントに関する情報を見つけることができませんでしたか?それに取り組んだ誰かがこれについていくつかの光を共有できますか?ありがとうございました。

8
Teja

少し遅れますが、 Spectrify はこれを正確に実行します。

7
Colin Nichols

Redshift Unload to Parquetファイル形式は、2019年12月の時点でサポートされています。

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

Redshift Features で言及されています

nload Document でも更新されました

nload Examples Document で提供される例

公式ドキュメントの抜粋:

次の例は、LINEITEMテーブルをl_shipdate列で分割されたParquet形式でアンロードします。

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

4つのスライスを想定すると、結果の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
6
secdatabase

これはできません。 RedshiftはParquetを認識していません(ただし、Spectrum抽象化を通じてParquetファイルを読み取ることができます)。

テキストファイルにUNLOADできます。 暗号化または圧縮 にすることもできますが、フラットテキストファイルのみです。


これは現在サポートされているようです:

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

3
Kirk Broadhurst

残念ながら、これまでのところ、AWS Redshiftは寄木細工の形式を読み取る機能を拡張していません。

ただし、次のいずれかを実行できます。

  1. AWS Spectrumを使用してそれらを読み取ります。
  2. Amazon Glueのクローラーを使用して変換します。

現在まで、AWSのApache Parquetはサポートされていません。

これがお役に立てば幸いです。

優れたソリューション「Spectrify」はこれを実行しますが、AWSサービスを使用して実行したくない場合は、 EMR + DatabricksでSparkを使用してRedshiftからデータを読み取り、それを寄木細工の形式でS3に書き込むことができます。

次のリンクはあなたに同じことをするアイデアを与えるでしょう

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

0
Mukund