如何以 CSV 以外的資料格式儲存 Amazon Athena 查詢的輸出?

1 分的閱讀內容
0

我想以 CSV 以外的格式儲存 Amazon Athena 的查詢結果,例如 JSON 或 Parquet。

簡短說明

在執行 SELECT 查詢時,Athena 僅支援 CSV 輸出檔案。若要以 CSV 以外的格式儲存 Athena 的輸出,請選擇下列其中一個選項:

UNLOAD 陳述式會以多種不同資料格式的其中一種寫入 SELECT 查詢的輸出,但不會建立新表格。CTAS 查詢也會以不同的資料格式寫入輸出,但會使用該輸出建立新表格。UNLOAD 和 CTAS 皆支援 Apache Parquet、ORC、Apache Avro 和 JSON 等格式。

**注意:**UNLOAD 和 CTAS 皆支援分割,但只有 CTAS 支援儲存貯體。

解決方法

執行 UNLOAD 查詢

若要使用 UNLOAD 陳述式,請將 SELECT 查詢放入 UNLOAD 後的括號中,並在 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 查詢

若要以 CSV 以外的格式儲存 CTAS 查詢的輸出,請在 WITH 陳述式中設定 format 屬性。例如,下列查詢會根據 SELECT 以 Parquet 格式傳回的資料建立名為 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 官方已更新 6 個月前