本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用成本最佳化處理程式
您可以使用 Athena 中的基於成本的最佳化程式 (CBO) 功能SQL來最佳化您的查詢。您可以選擇請求 Athena 為 AWS Glue的其中一個資料表收集資料表,或資料欄層級的統計資訊。如果查詢中的所有資料表都有統計資訊,Athena 會使用這些統計資訊建立其判斷為效能最佳的執行計畫。查詢最佳化工具會依據統計模型計算備選計畫,然後選取執行查詢最快的計劃。
資料 AWS Glue 表的統計資料會收集並儲存在中, AWS Glue Data Catalog 並提供給 Athena,以改善查詢規劃和執行。這些統計資料是資料行層級的統計資料,例如 Parquet、、、、、、和等檔案類型的不同數目、null ORC JSON ION CSV、max 和最小值。XMLAmazon Athena 會使用這些統計資訊,儘早在查詢處理中套用限制最嚴格的篩選條件,以最佳化查詢。這項篩選會限制記憶體用量,以及為傳送查詢結果必須讀取的記錄數目。
與此同時CBO,Athena 會使用稱為規則型最佳化程式 () RBO 的功能。RBO以機械方式套用預期可改善查詢效能的規則。RBO通常是有益的,因為它的轉換旨在簡化查詢計劃。但是,由於RBORBO不執行成本計算或計劃比較,因此更複雜的查詢會使建立最佳計劃變得困難。
基於這個原因,Athena 會同時使用RBO和CBO來最佳化您的查詢。Athena 在識別到改善查詢執行的機會之後,就會建立最佳計畫。如需有關執行計畫的詳細資訊,請參閱 檢視SQL查詢的執行計畫。如需CBO運作方式的詳細討論,請參閱 AWS
大數據部落格中的 Amazon Athena 使用以成本為基礎的優化器加快查詢速度
若要產生 AWS Glue 目錄表格的統計資料,您可以使用 Athena 主控 AWS Glue 台、主控台或 AWS Glue APIs。由於 Athena 已與 AWS Glue 型錄整合,因此當您從 Amazon Athena 執行查詢時,您會自動獲得對應的查詢效能改善。
考量與限制
-
資料表類型 — 目前,Athena 中的CBO功能僅支援 AWS Glue Data Catalog.
-
Athena 的星火 — 此CBO功能不適用於 Spark 的 Athena。
-
定價 – 如需定價資訊,請造訪 AWS Glue 定價頁面
。
使用 Athena 主控台產生資料表統計
本節說明如何使用 Athena 主控台在 AWS Glue中產生資料表或資料表資料欄層級的統計資訊。如需使用 AWS Glue 產生資料表統計資料的相關資訊,請參閱開AWS Glue 發人員指南中的使用欄統計資料。
若要使用 Athena 主控台產生資料表統計資訊
在 https://console.aws.amazon.com/athena/
中開啟 Athena 主控台。 -
在 Athena 查詢編輯器的資料表清單中,為您想要的資料表選擇三個垂直點,然後選擇產生統計資訊。
-
在產生統計資訊對話方塊中,選擇所有資料欄以產生資料表中所有資料欄的統計資訊,或選擇選取的資料欄來選取特定的資料欄。預設值是所有資料欄。
-
對於AWS Glue 服務角色,請建立或選取現有的服務角色,以授與產生統計資料的權限。 AWS Glue AWS Glue 服務角色還需要對包含資料表資料的 Amazon S3 儲存貯體的
S3:GetObject
許可。 -
選擇產生統計資料。A 產生的統計資料
table_name
通知標題會顯示工作狀態。 -
若要在 AWS Glue 主控台中檢視詳細資料,請選擇在 Glue 中檢視。
如需在 AWS Glue 主控台中檢視統計資料的詳細資訊,請參閱AWS Glue 開發人員指南中的檢視欄統計資料
-
產生統計資訊之後,具有統計資訊的資料表和資料欄會在括弧中顯示統計資訊一詞,如下圖所示。
現在,當您執行查詢時,Athena 會針對產生統計資訊的資料表和資料欄,執行成本型最佳化。
其他資源
如需其他資訊,請參閱下列資源。