本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon S3 中尋找查詢輸出檔案
除非查詢是發生在其組態會覆寫用戶端設定的工作群組中,否則查詢輸出檔案會以下列路徑模式存放在 Amazon S3 的子資料夾中。當工作群組組態取代用戶端設定時,查詢會使用工作群組指定的結果路徑。
QueryResultsLocationInS3
/[QueryName
|Unsaved/yyyy/mm/dd
/]
-
QueryResultsLocationInS3
是由工作群組設定或用戶端設定所指定的查詢結果位置。如需詳細資訊,請參閱本文件稍後的指定查詢結果位置。 -
只有從主控台執行且其結果路徑尚未被工作群組組態覆寫的查詢,會建立下列子資料夾。從 AWS CLI 或使用 Athena API 執行的查詢會直接儲存至
QueryResultsLocationInS3
。-
QueryName
是儲存其結果的查詢名稱。如果查詢已執行但未儲存,則會使用Unsaved
。 -
yyyy/mm/dd
是查詢執行的日期。
-
與 CREATE TABLE AS SELECT
查詢相關聯的檔案會存放在上述模式的 tables
子資料夾中。
識別查詢輸出檔案
系统會根據查詢的名稱、查詢 ID 和查詢執行的日期,將檔案儲存至 Amazon S3 中的查詢結果位置。每個查詢的檔案都是使用 QueryID
命名,此 QueryID 是每个查询执行时 Athena 指派給查詢的唯一識別符。
系統會儲存下列檔案類型:
檔案類型 | 檔案命名模式 | 描述 |
---|---|---|
查詢結果檔案 |
|
DML 查詢結果檔案會以逗號分隔值 (CSV) 格式儲存。 DDL 查詢結果會儲存為純文字檔案。 使用主控台時,您可以從主控台的 Results (結果) 窗格下載結果檔案,或從查詢 History (歷史記錄) 進行下載。如需詳細資訊,請參閱使用 Athena 主控台下載查詢結果檔案。 |
查詢中繼資料檔案 |
|
DML 和 DDL 查詢中繼資料檔案以二進位格式儲存,而且人類不可讀取。副檔名會對應到相關的查詢結果檔案。Athena 在使用 |
資料資訊清單檔案 |
|
產生資料資訊清單檔案,以追蹤在執行 INSERT INTO 查詢時,Athena 在 Amazon S3 資料來源位置中建立的檔案。如果查詢失敗,資訊清單也會追蹤查詢要寫入的檔案。資訊清單可用於識別失敗查詢所產生的遺棄檔案。 |
若要使用 AWS CLI 來識別查詢輸出位置和結果檔案,請執行 aws athena get-query-execution
命令,如下列範例所示。將 abc1234d-5efg-67hi-jklm-89n0op12qr34
取代為查詢 ID。
aws athena get-query-execution --query-execution-id
abc1234d-5efg-67hi-jklm-89n0op12qr34
此命令會傳回如下輸出:如需每個輸出參數的說明,請參閱 AWS CLI 命令參考中的 get-query-execution。
{ "QueryExecution": { "Status": { "SubmissionDateTime": 1565649050.175, "State": "SUCCEEDED", "CompletionDateTime": 1565649056.6229999 }, "Statistics": { "DataScannedInBytes": 5944497, "DataManifestLocation": "s3://amzn-s3-demo-bucket/athena-query-results-123456789012-us-west-1/MyInsertQuery/2019/08/12/abc1234d-5efg-67hi-jklm-89n0op12qr34-manifest.csv", "EngineExecutionTimeInMillis": 5209 }, "ResultConfiguration": { "EncryptionConfiguration": { "EncryptionOption": "SSE_S3" }, "OutputLocation": "s3://amzn-s3-demo-bucket/athena-query-results-123456789012-us-west-1/MyInsertQuery/2019/08/12/abc1234d-5efg-67hi-jklm-89n0op12qr34" }, "QueryExecutionId": "abc1234d-5efg-67hi-jklm-89n0op12qr34", "QueryExecutionContext": {}, "Query": "INSERT INTO mydb.elb_log_backup SELECT * FROM mydb.elb_logs LIMIT 100", "StatementType": "DML", "WorkGroup": "primary" } }