使用 Amazon Athena,您只需按實際用量付費。沒有預付費用、不需要最低承諾,也不需要簽訂長期合約。您需要在每個月底按實際用量付費。
首先,您建立一個工作群組,您可以指定查詢引擎、您在 Amazon Simple Storage Service (S3) 中保存執行結果的工作目錄、AWS Identity and Access Management (IAM) 角色 (如果需要),以及資源標籤。您可以使用工作群組來分隔使用者、團隊、應用程式或工作負載;對每個查詢或整個工作群組可處理的資料量設定限制;以及追蹤成本。根據您建立的工作群組,您可以 (a) 執行 SQL 查詢並按掃描的位元組數目付費,或 (b) 執行 Apache Spark Python 程式碼並依執行的程式碼按小時費率計費。
每個查詢的價格
使用單欄資料格式、分割和壓縮資料可節省更多成本
將資料壓縮、分割並轉換為單欄格式,則每個查詢的成本可節省 30% 到 90%,且可獲得較高的效能。
定價詳細資訊
使用查詢編輯器或 AWS Command Line Interface (CLI) 的 SQL 查詢
我們按每個查詢掃描的資料量向您收費。透過壓縮、分割或將資料轉換成單欄格式,可大幅節省成本和提高效能,因為這些操作都可降低 Athena 執行查詢時所需掃描的資料量。
依 Athena 掃描的位元組數計費,四捨五入到最近的 MB 數,每個查詢最少 10 MB。針對管理分割使用資料定義語言 (DDL) 陳述式 (如 CREATE/ALTER/DROP TABLE) 和失敗的查詢都無須付費。取消的查詢會按掃描的資料量計費。
壓縮資料可讓 Amazon Athena 掃描較少的資料。將資料轉換成單欄格式後,Athena 可以選擇僅讀取處理資料所需的直欄,Athena 支援 Apache ORC 和 Apache Parquet。資料分割後,Athena 也可以限制掃描的資料量,如此一來便可節省成本和改善效能。您可以在 Athena 主控台上看到每個查詢所掃描的資料量。有關詳細資訊,請查看定價範例。
聯合查詢定價
依 Athena 掃描的所有資料來源彙總的位元組數計費,四捨五入到最近的 MB 數,每個查詢最少 10 MB。
使用筆記本或 AWS CLI 執行 Apache Spark Python 程式碼
您只需為 Apache Spark 應用程式執行時所花的時間付費。我們會根據您執行網路爬取程式所使用的資料處理單位 (DPU) 數量,以小時費率計費。一個 DPU 可提供 4 個 vCPU 和 16 GB 記憶體。以 1 秒為單位計費,進位至最接近的秒鐘數。
當您在 Amazon Athena 主控台中啟動筆記本,或者使用 Athena API 啟動 Apache Spark 工作階段時,會為您的應用程式佈建兩個節點:一是筆記本節點,作為筆記本使用者介面的伺服器使用,另一是 Spark 驅動程式節點,以與該 Spark 應用程式進行協調,並與所有 Spark 工作節點通訊。Spark 工作節點負責執行 Spark 應用程式的任務。啟動工作階段後,您可以在筆記本中執行儲存格或使用開始計算執行 API 來執行 Spark 應用程式。當您執行 Spark 應用程式時,Athena 會為您的應用程式設定 Spark 工作節點。當您的應用程式完成執行時,工作節點將被釋放。由於 Athena for Apache Spark 會立即自動縮減資源,因此 Athena 可最大限度地減少您支付的閒置費用。當 Spark 工作階段結束時,驅動程式、任何工作節點和筆記本節點都會被釋放。Athena 會向您收取工作階段執行期間,驅動程式與工作節點產生的費用。Athena 是在主控台上提供筆記本作為使用者介面,以供建立、提交和執行 Spark 應用程式,並在不加收費用的情形下提供給您。Athena 不會為 Apache Spark 工作階段之中所使用的筆記本節點收取費用。
其他費用
Athena 可從 Amazon S3 直接查詢資料。使用 Athena 查詢資料不需另付儲存費用。您只需針對儲存、請求和資料傳輸支付標準 S3 費率。根據預設,查詢結果會存放在您選擇的 S3 儲存貯體中,而且依標準 S3 費率計費。
如果您使用 AWS Glue Data Catalog 搭配 Athena,則會依標準 Data Catalog 費率計費。如需詳細資訊,請瀏覽 AWS Glue 定價頁面。
此外,搭配 Athena 使用的 AWS 服務需支付標準費率,這些服務包含 Amazon S3、AWS Lambda、AWS Glue 和 Amazon SageMaker。例如,您需針對儲存、請求和跨區域資料傳輸支付標準 S3 費率。根據預設,查詢結果會存放在您選擇的 S3 儲存貯體中,而且依標準 S3 費率計費。如果您使用 Lambda,費用依函數的請求數量和程式碼執行持續時間計算。
聯合查詢會在您的帳戶中叫用 Lambda 函數,並向您收取標準價格的 Lambda 使用費用。聯合查詢叫用的 Lambda 函數受 Lambda 免費方案約束。如需詳細資訊,請瀏覽 Lambda 定價頁面。
定價範例
範例 1 – SQL 查詢
假設有一個表格包含 4 個相同大小的欄,以未壓縮文字檔的形式存放在 Amazon S3 上,大小總計為 3 TB。若要執行查詢以取得表格單一欄的資料,Amazon Athena 需要掃描整個檔案,因為文字格式無法分割。
- 這個查詢的費用是 15 USD。(掃描 3 TB 的價格是 3 * 5 USD/TB = 15 USD。)
如果使用 GZIP 壓縮檔案,則會看到 3:1 的壓縮比率。在這個情況下,您會有一個大小為 1 TB 的壓縮檔案。在這個檔案上執行相同查詢的費用是 5 USD。Athena 必須再重新掃描整個檔案,但是由於它的大小是原來的三分之一,因此您只需要支付之前費用的三分之一。如果您不只壓縮檔案還將檔案轉換成單欄格式 (如 Apache Parquet) 以獲得 3:1 的壓縮比率,則 S3 上仍然是 1 TB 大小的資料。然而,在這個情況中,由於 Parquet 是單欄式,因此 Athena 只需讀取與所執行查詢相關的欄。 由於進行的查詢只會參考單一欄,因此 Athena 只會讀取該欄,並避開讀取檔案中四分之三的部分。由於 Athena 只讀取四分之三的檔案,因此只會從 S3 掃描 0.25 TB 的資料。
- 這個查詢的費用是 1.25 USD。由於壓縮的關係節省了 3 倍的成本,再加上只讀取一欄,因此又節省了 4 倍的成本。
(檔案大小 = 3 TB/3 = 1 TB。讀取單一欄時掃描的資料 = 1 TB/4 = 0.25 TB。0.25 TB 的價格 = 0.25 * 5 USD/TB = 1.25 USD)
範例 2 – Apache Spark 應用程式
考慮在 Athena 主控台中使用筆記本,提取上一季度的銷售資料並繪製圖表以建立報告。使用筆記本開始工作階段。您的工作階段持續 1 小時,並提交 6 次計算作為工作階段的一部分。每次計算需要 20 個 1-DPU 工作節點來執行並持續 1 分鐘。
- 工作者 DPU-小時 = 計算次數 * 每次計算使用的 DPU * 計算的執行時間 = 6 次計算 * 每次計算 20 DPU * 每次計算 (1/60) 小時 = 2.0 DPU-小時
- 驅動程式 DPU-小時 = 每個工作階段使用的 DPU * 工作階段時間 = 每個工作階段 1 個 DPU * 每個工作階段 1 小時 = 1.0 DPU-小時
- 總 DPU-小時 = 工作者 DPU-小時 + 驅動程式 DPU-小時 = 2.0 DPU-小時 + 1.0 DPU-小時 = 3.0 DPU-小時
- Spark 應用程式費用 = 每 DPU-小時0.35 USD * 3.0 DPU-小時 = 1.05 USD
注意:S3 會單獨向您收取儲存和讀取資料及執行結果的費用。