在 Amazon S3 中尋找查詢輸出檔案 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 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 指派給查詢的唯一識別符。

系統會儲存下列檔案類型:

檔案類型 檔案命名模式 描述

查詢結果檔案

QueryID.csv

QueryID.txt

DML 查詢結果檔案會以逗號分隔值 (CSV) 格式儲存。

DDL 查詢結果會儲存為純文字檔案。

使用主控台時,您可以從主控台的 Results (結果) 窗格下載結果檔案,或從查詢 History (歷史記錄) 進行下載。如需詳細資訊,請參閱使用 Athena 主控台下載查詢結果檔案

查詢中繼資料檔案

QueryID.csv.metadata

QueryID.txt.metadata

DML 和 DDL 查詢中繼資料檔案以二進位格式儲存,而且人類不可讀取。副檔名會對應到相關的查詢結果檔案。Athena 在使用 GetQueryResults 動作讀取查詢結果時,會使用中繼資料。雖然可以刪除這些檔案,但我們不建議這麼做,因為有關查詢的重要資訊會遺失。

資料資訊清單檔案

QueryID-manifest.csv

產生資料資訊清單檔案,以追蹤在執行 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" } }