為什麼選擇 Athena?
Amazon Athena 是建立在開放原始碼架構上的無伺服器互動式分析服務,可讓您在其原位分析數 PB 的資料。藉助 Athena,您可以使用 SQL 或 Apache Spark,而且不需要設定或管理任何基礎設施。定價很簡單:您可以依據處理的資料或使用的運算付費。
首先,您建立一個工作群組,您可以指定查詢引擎、您在 Amazon Simple Storage Service (S3) 中保存執行結果的工作目錄、AWS Identity and Access Management (IAM) 角色 (如果需要),以及資源標籤。您可以使用工作群組來分隔使用者、團隊、應用程式或工作負載;對每個查詢或整個工作群組可處理的資料量設定限制;以及追蹤成本。根據您建立的工作群組,您可以 (a) 執行 SQL queries 並按掃描的資料或使用的運算付費,或 (b) 執行 Apache Spark Python 程式碼並依執行的程式碼按小時費率計費。
AWS 定價計算器
一次估算即可計算您的 Amazon Athena 和架構成本。
SQL queries
具有容量保留的 SQL 查詢
Apache Spark
其他費用
Athena 可從 Amazon S3 直接查詢資料。使用 Athena 查詢資料不需另付儲存費用。您只需針對儲存、請求和資料傳輸支付標準 S3 費率。根據預設,查詢結果會存放在您選擇的 S3 儲存貯體中,而且依標準 S3 費率計費。
- 當您的工作負載讀取、存放和傳輸資料時,由 S3 向您收費。 這包括成功和失敗的查詢。依據預設,SQL queries 結果和 Spark 計算結果會存放在您選擇的 S3 儲存貯體中,並以標準 S3 費率計費。如需詳細資訊,請參閱 Amazon S3 定價。
- 如果您使用 AWS Glue Data Catalog 搭配 Athena,則會依標準 Data Catalog 費率計費。如需詳細資訊,請瀏覽 AWS Glue 定價頁面。
- 除非使用佈建容量,否則聯合資料來源 (未存放在 S3 上的資料) 上的 SQL queries 是由 Athena 掃描的每 TB 計費,並進位到最接近的 MB (每個查詢最少 10MB)。此類查詢還會在您的帳戶中叫用 AWS Lambda 函數,並向您收取標準價格的 Lambda 使用費用。聯合查詢叫用的 Lambda 函數受 Lambda 免費方案約束。如需詳細資訊,請瀏覽 Lambda 定價頁面。
定價範例
範例 1 – SQL queries
假設有一個表格包含 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 — 具有容量保留的 SQL 查詢
假設您的團隊支援商業智慧應用程式,它在工作時間內為使用者提供自助分析。您可以分析查詢模式,並發現在每小時的前 15 分鐘內應用程式最繁忙,此時需支援最多 20 個並發查詢,且每個查詢最多需要 8 個 DPU。建立 160 DPU (20 個查詢 × 每個查詢 8 DPU) 的容量保留,以處理您的尖峰並發量。
- 使用容量保留支援您的尖峰工作負載的成本計算方式為:160 DPU × 0.30 USD/DPU 小時 × 0.25 小時 = 12.00 USD。
在每小時的 45 分鐘非高峰期內,查詢量下降時,您可將容量降低至 16 個 DPU,一次最多可提供 4 個查詢。
- 在非高峰期內使用容量保留支援您的工作負載的成本計算方式為:16 DPU × 0.30 USD/DPU 小時 × 0.75 小時 = 3.60 USD。
- 支援一小時工作負載的總成本為:12.00 USD + 3.60 USD = 15.60 USD。
範例 3 – 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 會單獨向您收取儲存和讀取資料及執行結果的費用。