我想以 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 查詢範例