Amazon Athena クエリの出力を CSV 以外のデータ形式で保存する方法を教えてください。

所要時間1分
0

Amazon Athena のクエリ結果を JSON や Parquet などの CSV 以外の形式で保存したいと思っています。

簡単な説明

SELECT クエリを実行する場合、Athena は CSV 出力ファイルのみをサポートします。Athena からの出力を CSV 以外の形式で保存するには、次のいずれかのオプションを選択します。

UNLOAD ステートメントでは、SELECT クエリの出力がいくつかの異なるデータ形式のいずれかで書き込まれますが、新しいテーブルは作成されません。CTAS クエリでも、さまざまなデータ形式で出力が書き込まれますが、その出力を使用して新しいテーブルが作成されます。UNLOAD と CTAS はどちらも、Apache Parquet、ORC、Apache Avro、JSON などの形式をサポートしています。

**注:**UNLOAD と CTAS はどちらもパーティショニングをサポートしていますが、バケット化をサポートしているのは CTAS だけです。

解決策

UNLOAD クエリを実行する

UNLOAD ステートメントを使用するには、UNLOAD の後に SELECT クエリを括弧で囲み、WITH ステートメントでファイルタイプを指定します。例えば、次のクエリは SELECT からの出力を JSON ファイルとして Amazon Simple Storage Service (Amazon S3) バケット amzn-s3-example-bucket に保存します。

UNLOAD (SELECT col1, col2 FROM example_table)
    TO 's3://amzn-s3-example-bucket/example_folder/'
  WITH (format = 'JSON')

UNLOAD からのファイル出力を変更する方法の詳細については、「パラメータ」を参照してください。

CTAS クエリを実行する

CTAS クエリの出力を CSV 以外の形式で保存するには、WITH ステートメントで format プロパティを設定します。例えば、次のクエリは Parquet 形式で SELECT によって返されたデータから ctas-parquet-example という新しいテーブルを作成します。

`CREATE TABLE ctas_parquet_example   WITH (format = '`_`PARQUET`_`')     AS SELECT col1, col2, FROM example_table;`

CTAS パラメーターの詳細については、「CTAS テーブルのプロパティ」を参照してください。

出力データファイルのみを保持し、新しいテーブルは保持しない場合は、クエリの完了後に CTAS テーブルを削除します。

関連情報

CTAS クエリに関する考慮事項と制限事項

CTAS クエリの例

AWS公式
AWS公式更新しました 8ヶ月前
コメントはありません