Amazon Athena 常見問答集
一般問題
什麼是 Amazon Athena?
Amazon Athena 是一種互動式分析服務,可使用 SQL 簡單地分析 Amazon Simple Storage Service (S3) 中的資料。Athena 是無伺服器的服務,您不須設定或管理任何基礎設施,即可立刻開始分析資料。您甚至無需將資料載入 Amazon Athena,其可以直接處理存放在 Amazon S3 的資料。Amazon Athena for SQL 使用 Trino 和 Presto,提供完整的標準 SQL 支援且能接受各種標準資料格式,包括 CSV、JSON、Apache ORC、Apache Parquet 和 Apache Avro。Athena for Apache Spark 支援 SQL,並允許您使用 Apache Spark,這是一種用於大數據工作負載的開放原始碼分散式處理系統。若要開始使用,請登入 Amazon Athena 管理主控台,並開始使用查詢編輯器或筆記本與您的資料進行互動。
Athena 可以用來做什麼?
Amazon Athena 可供您分析在 S3 和 30 種不同的資料來源之中存放的資料,包括內部部署資料來源或其他雲端系統。您可以使用 Amazon Athena 透過 ANSI SQL 或 Python 執行互動式分析,無需將資料彙整到或載入 Amazon Athena。Amazon Athena 可以處理非結構化、半結構化和結構化資料集。範例包括 CSV、JSON、Avro 或單欄資料格式,例如 Parquet 和 ORC。Amazon Athena for SQL 與 Amazon QuickSight 整合,以視覺化您的資料或建立儀表板。您也可以使用 Athena 產生報告,或者搭配商業智慧工具或透過與 ODBC 或 JDBC 驅動程式連線的 SQL 用戶端來探索資料。
如何開始使用 Amazon Athena?
若要開始使用 Amazon Athena,只需登入 Amazon Athena 的 AWS 管理主控台,在主控台上撰寫資料定義語言 (DDL) 陳述式或使用建立資料表精靈以建立您的結構描述。接著,您便可以利用內建的查詢編輯器查詢資料。Amazon Athena 直接查詢 Amazon S3 的資料,所以無需載入。
Amazon Athena for SQL
如何存取 Amazon Athena?
Athena for SQL 的基礎技術是什麼?
Athena for SQL 使用 Trino,提供完整的標準 SQL 支援且能接受各種標準資料格式,包括 CSV、JSON、ORC、Avro 和 Parquet。Amazon Athena 可以處理複雜的分析,包括大規模聯結、視窗函數和陣列。因為 Amazon Athena SQL 引擎版本 3 建置在 Trino,我們能繼續提高效能,並且推出新功能,類似於我們在 Presto 建置 Amazon Athena 引擎版本 2 的方法。v3 最令人驚艷的特點之一,在於它以全新的持續整合方式進行開放原始碼軟體管理,讓客戶能夠隨時保持為最新的 Trino 和 PrestoDB 專案。我們的目標是將開放原始碼 Trino 的推出時程維持在 60-90 天內。Amazon Athena 開發團隊正積極對這些開放原始碼庫重新投入錯誤修正和安全性、可擴展性、效能及功能增強,讓 Trino、Presto 及 Apache Iceberg 所有使用者都能因此受益。
Athena for SQL 如何儲存資料表定義和結構描述?
針對存放於 Amazon S3 的資料所建立的資料庫和資料表,Amazon Athena for SQL 會使用受管 AWS Glue Data Catalog 存放其資訊和結構描述。在提供 AWS Glue 的區域,您可以將 Amazon Athena 升級為使用 Data Catalog。在不提供 AWS Glue 的區域,Amazon Athena 會使用內部型錄。
您可以使用 DDL 陳述式,或是透過 AWS 管理主控台修改目錄。您定義的所有結構描述都會自動儲存,除非您確實將其刪除。Amazon Athena 利用讀時模式技術,也就是在套用查詢時,資料表定義才會套用到 Amazon S3 的資料中。無需載入或轉換資料。您可以刪除資料表定義和結構描述,不會影響存放在 Amazon S3 的基礎資料。
為什麼應該升級為使用 Data Catalog?
AWS Glue 是一種全受管擷取、轉換和載入 (ETL) 服務。AWS Glue 有三個主要元件:1) 爬蟲程式,可自動掃描資料來源、識別資料格式和推斷結構描述;2) 全受管 ETL 服務,可讓您轉換資料並將資料移至不同目的地;以及 3) Data Catalog,可存放 Amazon S3 或是 ODBC 或 JDBC 合規資料存放區中存放之資料庫和資料表的中繼資料資訊。若要充分利用 AWS Glue 的好處,您必須從使用 Amazon Athena 內部資料型錄升級為使用 Glue Data Catalog。
升級為使用 Data Catalog 有以下好處:
- 一致的中繼資料儲存庫:AWS Glue 整合在各種 AWS 服務中。AWS Glue 支援存放在 Amazon Aurora、Amazon Relational Database Service (RDS) for MySQL、Amazon RDS for PostgreSQL、Amazon Redshift 和 Amazon S3 中的資料,以及在 Amazon Elastic Compute Cloud (EC2) 上執行的 Amazon Virtual Private Cloud (VPC) 中的 MySQL 和 PostgreSQL 資料庫。AWS Glue 提供立即可用的 Amazon Athena、Amazon EMR、Amazon Redshift Spectrum 和 Apache Hive 中繼存放區相容應用程序的整合。
- 自動辨識結構描述和分區:AWS Glue 可自動網路爬取資料來源、識別資料格式,以及建議結構描述和轉換。網路爬取程式可協助自動建立表格和自動載入分區。
若要進一步了解有關 Data Catalog 的資訊,請檢閱 AWS Glue 網頁。
是否提供升級為使用 Data Catalog 的逐步程序
是。如需逐步程序,請檢閱 Amazon Athena 使用者指南:與 AWS Glue 整合。
哪些區域可使用 Amazon Athena?
如需有關 Amazon Athena 服務區域可用性的詳細資訊,請檢閱 AWS 區域服務清單。
Amazon Athena 有哪些服務限制?
若要了解有關服務限制的詳細資訊,請檢閱 Amazon Athena 使用者指南:Service Quotas。
建立資料表、資料格式和分區
如何為 Amazon S3 上的資料建立資料表和結構描述?
Amazon Athena 使用 Apache Hive DDL 來定義資料表。您可以使用 Amazon Athena 主控台、透過 ODBC 或 JDBC 驅動程式、透過 API 執行 DDL 陳述式,或使用 Amazon Athena 建立資料表精靈。如果您使用 Data Catalog 搭配 Amazon Athena,也可以使用 AWS Glue 爬蟲程式來自動推斷結構描述和分區。AWS Glue 爬蟲程式會連線至資料存放區,依序處理已排定優先順序的分類器清單以擷取資料的結構描述和其他統計資料,然後將此中繼資料填入 Data Catalog。爬蟲程式可定期執行以偵測是否有可用的新資料以及資料表定義變更等現有資料變更。爬蟲程式會自動新增資料表、現有資料表的新分區,以及新的資料表定義版本。您可以自訂 AWS Glue 爬蟲程式以分類自己的檔案類型。
您在 Amazon Athena 建立新的資料表結構描述時,該結構描述會存放在 Data Catalog 供執行查詢時使用,但是不會修改 Amazon S3 中的資料。Amazon Athena 使用一種稱為「讀時模式」的技術,讓您在執行查詢時可將結構描述投放在資料上。如此便減少了載入或轉換任何資料的需求。進一步了解建立資料表。
Amazon Athena 支援哪些資料格式?
Amazon Athena 支援各種資料格式,如 CSV、TSV、JSON 或純文字檔,亦支援開放原始碼單欄格式,例如 ORC 和 Parquet。Amazon Athena 還支援 Snappy、Zlib、LZO 和 GZIP 格式的壓縮資料。藉由壓縮、分區和使用單欄格式,您便可以改善效能並降低成本。
Amazon Athena 支援哪些資料類型?
Amazon Athena 支援簡單的資料類型,例如 INTEGER、DOUBLE 和 VARCHAR,也支援複雜的資料類型,例如 MAPS、ARRAY 和 STRUCT。
是否可以在 Amazon Athena 上執行 Hive 查詢?
Amazon Athena 使用 Hive 僅限於 DDL,以及建立/修改和刪除資料表或分區。如需有關受支援陳述式的完整清單,請檢閱 Amazon Athena 使用者指南:DDL 陳述式。您在 Amazon S3 上執行 SQL 查詢時,Amazon Athena 會使用 Trino 和 Presto。您可以執行符合 ANSI 標準的 SQL SELECT 陳述式查詢在 Amazon S3 的資料。
什麼是 SerDe?
SerDe 代表串聯器/解串器,是指告訴 Hive 如何解譯資料格式的程式庫。Hive DDL 陳述式要求您指定一個 SerDe,讓系統知道如何解譯您所指向的資料。Amazon Athena 使用 SerDes 解譯從 Amazon S3 讀取出來的資料。Amazon Athena 中 SerDes 的概念與 Hive 所使用的概念相同。Amazon Athena 支援下列 SerDes:
- Apache Web 記錄:"org.apache.hadoop.hive.serde2.RegexSerDe"
- CSV:"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
- TSV:"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
- 自訂分隔符號:"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
- Parquet:"org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
- Orc:"org.apache.hadoop.hive.ql.io.orc.OrcSerde"
- JSON:“org.apache.hive.hcatalog.data.JsonSerDe” 或 "org.openx.data.jsonserde.JsonSerDe"
是否可以將自己的 SerDe 新增至 Athena?
目前您還不能新增自己的 SerDe 到 Amazon Athena。我們很重視您的意見回饋,所以您若是希望新增任何 SerDes,請透過 athena-feedback@amazon.com 聯絡 Athena 團隊。
如果我使用 Spark/Hive 建立了 Parquet/ORC 檔案,能否在 Athena 中查詢這些檔案?
是,Athena 可以讀取透過 Spark 建立的 Parquet 和 ORC 檔案。
如果我有來自 Amazon Kinesis Data Firehose 的資料,該如何使用 Athena 來查詢?
若您的 Amazon Kinesis Data Firehose 資料存放在 Amazon S3,您可以使用 Amazon Athena 來查詢。在 Amazon Athena 中為資料建立結構描述即可開始查詢。我們建議您將資料整理成分區以增強效能。您可以使用 ALTER TABLE DDL 陳述式新增由 Data Firehose 建立的分區。進一步了解資料分區。
Amazon Athena 是否支援資料分區?
是。您可以使用 Amazon Athena 在任何資料欄對資料進行分區。您可以利用分區限制每個查詢所掃描的資料數量,藉此節省成本和加速效能。您可以使用 CREATE TABLE 陳述式中的 PARTITIONED BY 子句指定您的分割結構描述。 Amazon Athena 可支援 AWS Glue Data Catalog 分割索引,以達到最佳查詢規劃功效,減少查詢執行時間。當您查詢含有大量分割的資料表時,Amazon Athena 可自 AWS Glue Data Catalog 擷取可用分割,判斷哪些是您的查詢所需。隨著新增分割,擷取分割所需的時間也會增加,可能導致查詢執行時間延長。AWS Glue Data Catalog 可讓客戶建立分割索引,以在為多達數萬甚至數十萬個分割的資料表擷取及篩選分割中繼資料時,縮短所需的時間。
如何把新資料新增到 Amazon Athena 的一個現有資料表中?
若您的資料已分割,一旦 Amazon S3 可以使用新資料,您就必須執行中繼資料查詢 (ALTER TABLE ADD PARTITION) 將分區新增至 Amazon Athena。若您的資料未分割,把新資料 (或檔案) 新增至現有的字首,資料便會自動新增至 Amazon Athena。進一步了解資料分區。
如果我在 Amazon S3 上已經有大量日誌資料,是否可以使用 Amazon Athena 查詢?
是,Athena 簡化了針對現有日誌資料執行標準 SQL 查詢。Amazon Athena 直接查詢 Amazon S3 的資料,所以無需移動或載入資料。使用 DDL 陳述式定義您的結構描述,即可馬上開始查詢您的資料。
查詢、資料格式和多雲端
Amazon Athena 支援哪類查詢?
Amazon Athena 支援 ANSI SQL 查詢。Amazon Athena 使用 Trino 這種開放原始碼、記憶體內的分散式 SQL 引擎,能夠處理複雜的分析,包括大規模聯結、視窗函數和陣列。
是否可以將 Amazon QuickSight 與 Amazon Athena 搭配使用?
是。Amazon Athena 與 Amazon QuickSight 整合,因此您可以無縫地視覺化存放在 Amazon S3 中的資料。
問:Amazon Athena 是否支援其他商業智慧 (BI) 工具和 SQL 用戶端?
如何存取 Amazon Athena 所支援的功能?
進一步了解 Amazon Athena 所支援的功能。
如何改善查詢效能?
藉由壓縮資料、進行分區或將資料轉換成單欄格式,即可改善查詢效能。Amazon Athena 支援開放原始碼單欄資料格式,例如 Parquet 和 ORC。將資料轉換成壓縮的單欄格式可降低成本並改善查詢效能,因為您執行查詢時 Amazon Athena 從 Amazon S3 掃描的資料較少。
Amazon Athena 是否支援使用者定義函數 (UDF)?
是。Amazon Athena 支援 UDF,因此您可以編寫自訂純量函數,並在 SQL 查詢中叫用這些函數。雖然 Amazon Athena 提供了內建函數,但 UDF 能協助您執行自訂處理,例如壓縮和解壓縮資料、編寫敏感資料,或是套用自訂的解密。
您可以使用 Amazon Athena Query Federation 開發套件以 Java 撰寫 UDF。提交至 Amazon Athena 的 SQL 查詢使用 UDF 時,會在 AWS Lambda 上叫用 UDF 並執行。UDF 可用於 SQL 查詢的 SELECT 與 FILTER 子句。您可以在相同查詢中叫用多個 UDF。
撰寫 UDF 時,使用者有何體驗?
您可以使用 Amazon Athena Query Federation 開發套件撰寫自己的 UDF。檢閱 UDF 範例。您可將函數上傳至 AWS Lambda,然後在 Athena 查詢中叫用。若要開始使用,請參閱 Amazon Athena 使用者指南︰使用 AWS Lambda 建立和部署 UDF。
Amazon Athena 會在資料集列批次中叫用 UDF,以增強效能。
Athena 是否支援多雲端分析?
是,Athena 提供數個資料來源連接器,您可以使用這些連接器分析其他雲端服務提供商和其他雲端儲存服務中的資料,而無需遷移或轉換資料。資料來源連接器可用於 30 個資料來源,包括 Azure Synapse、Azure Data Lake Storage、Google BigQuery 和 Google Cloud Storage。進一步了解適用於混合雲端和多雲端環境的 AWS 解決方案。
聯合查詢
什麼是聯合查詢?
如果您在 Amazon S3 以外的來源中擁有資料,可以使用 Athena 來就地查詢資料,或者建置管道以從多個資料來源擷取資料並將其存放在 Amazon S3 中。使用 Amazon Athena 聯合查詢,您可以針對存放在關聯式、非關聯式、物件和自訂資料來源中的資料執行 SQL 查詢。
為何應該在 Amazon Athena 中使用聯合查詢?
組織通常將資料存放在滿足應用程式或業務流程需求的資料來源中。除了將資料存放在 Amazon S3 資料湖中之外,其中可能包含關聯式資料庫、鍵值資料庫、文件資料庫、記憶體內資料庫、搜尋資料庫、圖形資料庫、時間序列資料庫和帳本資料庫。對如此多樣化的來源執行分析可能既複雜又耗時,因為通常需要學習新的程式設計語言或資料庫建構模組,並建置複雜的管道來擷取、轉換和複製資料,然後才能將其用於分析。Amazon Athena 可讓您對資料所在的位置執行 SQL 查詢,從而降低這種複雜性。您可用熟悉的 SQL 建構模組跨多個資料來源查詢資料,快速進行分析,或使用排程的 SQL 查詢擷取及轉換多個資料來源的資料,然後再存放到 Amazon S3 供日後分析。
支援哪些資料來源?
Athena 為 30 個熱門的 AWS、內部部署和其他雲端資料存放區提供內建連接器,包括 Amazon Redshift、Amazon DynamoDB、Google BigQuery、Google Cloud Storage、Azure Synapse、Azure Data Lake Storage、Snowflake 和 SAP Hana。您可以使用這些連接器在結構化、半結構化、物件、圖形、時間序列和其他資料儲存類型上啟用 SQL 分析使用案例。如需支援的來源清單,請參閱使用 Athena 資料來源連接器。
您還可以使用 Athena 資料連接器 SDK 建立自訂資料來源連接器並使用 Athena 進行查詢。透過檢閱我們的文件和範例連接器實作開始使用。
聯合查詢支援哪些使用案例?
使用 Amazon Athena,您可以利用現有的 SQL 知識從各種資料來源中擷取洞察,而無需學習新語言、開發指令碼來擷取 (和複製) 資料或管理基礎設施。使用 Amazon Athena,您可以執行下列任務:
聯合查詢可以用於 ETL 嗎?
Amazon Athena 將查詢結果儲存至 Amazon S3 中的檔案。這意味著您可以使用 Amazon Athena 將聯合資料提供給其他使用者和應用程式。如果您想使用 Amazon Athena 對資料執行分析而不重複查詢基礎來源,請使用 Amazon Athena 的 CREATE TABLE AS 函數。您還可以使用 Amazon Athena 的 UNLOAD 函數來查詢資料並將結果以特定檔案格式儲存在 Amazon S3 上
資料來源連接器的運作方式?
資料來源連接器是在 AWS Lambda 上執行的一段程式碼,可在您的目標資料來源與 Amazon Athena 之間進行轉換。使用資料來源連接器向 Amazon Athena 註冊資料存放區後,您可以在聯合資料存放區上執行 SQL 查詢。查詢在聯合來源上執行時,Amazon Athena 會呼叫 Lambda 函數並為其執行任務,以執行特定於聯合來源的查詢部分。若要進一步了解資訊,請檢閱 Amazon Athena 使用者指南:使用 Amazon Athena 聯合查詢。
機器學習
Amazon Athena 支援哪些嵌入式 ML 使用案例?
Amazon Athena 的 ML 使用案例適用於各種不同的產業,如下列範例所示。財務風險資料分析師可執行假設分析和蒙地卡羅模擬法。商業分析師可執行線性迴歸或預測模型來預測未來價值,幫助其建立更豐富且具前瞻性的商業儀表板,以用於預測營收。行銷分析師可使用 k-means 叢集模型,協助判斷其不同的客戶區隔。安全分析師可使用邏輯迴歸模型,從日誌中找出異常並偵測安全事件。
哪些 ML 模型可用於 Amazon Athena?
Amazon Athena 可叫用 Amazon SageMaker 上部署的任何 ML 模型。您可彈性使用自己的專屬資料來訓練模型,或是使用已預先訓練和部署在 SageMaker 上的模型。例如,如果您想將新記錄分類放入先前記錄所用的相同類別,可在您自己的資料上訓練叢集分析。另一方面,用於預測真實世界的運動賽事時,則可使用公開可用的模型,因為所用的訓練資料早已出現在公開網域。網域特定或產業特定預測通常是在 SageMaker 中您自己的資料上訓練,無差別的 ML 需求則可能使用外部模型。
是否可以使用 Amazon Athena 訓練我的 ML 模型?
您無法使用 Athena 在 SageMaker 上訓練及部署自己的機器學習 (ML) 模型。您可訓練 ML 模型,或使用已利用 Amazon Athena 在 SageMaker 上部署已預先訓練的現有模型。閱讀詳述 SageMaker 上的訓練步驟文件。
可以對我自己 EC2 叢集上部署的 Comprehend、Forecasting 或 Models 等其他服務上部署的模型執行推論嗎?
Athena 僅支援叫用 SageMaker 上部署的機器學習 (ML) 模型。歡迎提供意見回饋,告訴我們您想在 Amazon Athena 上使用哪些其他服務。請透過電子郵件將您的意見回饋傳送至:athena-feedback@amazon.com。
使用 Amazon Athena 查詢進行 SageMaker 推論有什麼效能影響?
在我們的功能與服務中不斷改善營運效能。為了增強 Amazon Athena ML 查詢效能,我們在叫用 SageMaker ML 模型以用於推論時會對資料列進行批次處理。目前不支援使用者提供的資料列批次大小覆寫。
Amazon Athena ML 支援哪些功能?
Athena 提供由 SQL 介面包裝的機器學習 (ML) 推論 (預測) 功能。您也可呼叫 Amazon Athena UDF,在您的結果集上叫用預先或後置處理邏輯。輸入可以包含任何欄、記錄或資料表,也可批次處理多個呼叫,以提高可擴展性。您可在 Select 階段或 Filter 階段中執行推論。若要進一步了解資訊,請參閱 Amazon Athena 使用者指南︰將機器學習 (ML) 與 Amazon Athena 結合使用。
我可以使用哪些 ML 模型?
Amazon SageMaker 支援各種 ML 演算法。您也可建立自己專屬的 ML 模型,並在 Amazon SageMaker 上部署。例如,如果您想將新記錄分類放入先前記錄所用的相同類別,可在您自己的資料上訓練叢集分析。另一方面,用於預測真實世界的運動賽事時,則可使用公開可用的模型,因為所用的訓練資料會出現在公開網域。
我們預期網域或產業特定預測通常是在 SageMaker 中您自己的資料上訓練,無差別的 ML 需求則可能使用外部模型。
安全性與可用性
如何控制對我的資料的存取權?
Amazon Athena 支援 AWS Lake Formation 的精細存取控制權。AWS Lake Formation 能集中管理 Amazon S3 資料湖中資料型錄資源的權限和存取權控制。您可使用例如 Apache Iceberg、Apache Hudi 和 Apache Hive 等資料表格式,針對以適用檔案格式所存放的資料,對 Amazon Athena 的查詢強制實施精細存取權控制政策。於是您即可享有彈性,能選擇對於使用案例最為合適的資料表與檔案格式,獲取集中管控資料的益處,在使用 Amazon Athena 時保護資料存取的安全。例如,可使用 Amazon Iceberg 資料表格式將資料存放在 Amazon S3 資料湖中,並搭配使用 Amazon Lake Formation 資料列層級安全篩選條件,以於大規模處理時有可靠的寫入異動,以便駐在不同國家地區的資料分析師能僅針對當地客戶存取資料,滿足法規要求。此為對於資料表和檔案格式的新近擴展支援,完全無需您改變在 Lake Formation 中設定精細存取權控制政策的方式,要求具備 Athena 引擎版本 3,以提供新功能和增進查詢效能。Amazon Athena 也允許您使用 AWS Identity and Access Management (IAM) 政策、存取控制清單 (ACL)、Amazon S3 儲存貯體政策控制資料存取。您可以利用 IAM 政策讓 IAM 使用者透過精細定義的控制功能存取 Amazon S3 儲存貯體。藉由控制 Amazon S3 的資料存取,您便可以限制使用者透過 Amazon Athena 查詢哪些資料。
Amazon Athena 是否可查詢 Amazon S3 中的加密資料?
是,您可以查詢以下列方式加密的資料:使用 Amazon S3 受管加密金鑰的伺服器端加密 (SSE)、AWS Key Management Service (KMS) – 受管金鑰的 SSE,以及由 AWS KMS 管理的金鑰的用戶端加密 (CSE)。Amazon Athena 還與 AWS KMS 整合,為您提供加密結果集的選擇。
Amazon Athena 是高度可用的服務嗎?
是。Amazon Athena 的可用性高而且使用多個設施之間的運算資源執行查詢,若特定設施無法連線,會自動選擇合適的查詢路徑。Amazon Athena 使用 Amazon S3 做為基礎資料存放區,讓您資料具有高可用性和耐久性。Amazon S3 提供持久的基礎設施來存放重要的資料。您的資料會以冗餘方式存放在多個設施以及每個設施的多個裝置。
我是否可以允許跨帳戶存取其他人的 Amazon S3 儲存貯體?
可以,您可以允許跨帳戶存取 Amazon S3。
定價和帳單
Athena 的價格是多少?
使用 Athena 時,您可以選擇依據掃描的資料或查詢所需的運算來依查詢付費。依查詢定價是依據查詢掃描的資料量 (以 TB 為單位) 計費。您可以在 Amazon S3 上以各種格式存放資料。若您壓縮資料、進行分區或是轉換成單欄儲存格式,因為查詢掃描的資料較少,所以費用也會減少。將資料轉換成單欄格式後,Amazon Athena 便只需讀取處理查詢所需的直欄。使用佈建容量時,您按小時支付查詢處理容量的價格,而不是支付掃描資料的費用。您可以在同一帳戶中使用依查詢計費和基於運算的計費。 如需詳細資訊,請檢閱 Amazon Athena 定價頁面。
為什麼使用單欄格式後我支付的費用會減少?
使用依查詢計費,Athena 會根據每次查詢掃描的資料量收費。壓縮資料可讓 Amazon Athena 掃描較少的資料。將資料轉換成單欄格式後,Amazon Athena 可以選擇僅讀取處理資料所需的直欄。資料分割後,Athena 也可以限制掃描的資料量,如此一來便可節省成本和改善效能。如需詳細資訊,請檢閱 Amazon Athena 定價頁面。
我要如何降低成本?
使用依查詢計費,壓縮資料、進行分區以及將資料轉換成單欄格式,即可節省 30% 至 90% 的查詢成本並提高效能表現。每個這些操作都會減少掃描的資料量和執行所需的時間。在使用佈建容量時也建議使用這些操作,因為它們通常會減少查詢花費在執行上的時間量。
Amazon Athena 查詢失敗時是否計費?
使用依查詢定價時,您不會為失敗的查詢付費。
Amazon Athena 查詢取消時是否計費?
是。若您取消查詢,便會依據截至取消查詢前所掃描的資料量計費。
Amazon Athena 是否會收取其他費用?
Amazon Athena 直接查詢 Amazon S3 的資料,所以您的來源資料會依 Amazon S3 的費率計費。當 Amazon Athena 執行查詢時,該服務會將結果存放在您選擇的 Amazon S3 儲存貯體中。然後,需要針對這些結果集按標準 Amazon S3 費率計費。建議您監控這些儲存貯體,利用生命週期政策來控制要保留多少資料。
使用 Data Catalog 是否需要付費?
是。使用 Data Catalog 需要另外付費。若要進一步了解有關 Data Catalog 定價的資訊,請檢閱 AWS Glue 定價頁面。
Amazon Athena for Apache Spark
什麼是 Amazon Athena for Apache Spark?
Amazon Athena 可支援 Apache Spark 架構,讓資料分析師與資料工程師享有 Athena 的互動式全受管體驗。Apache Spark 是一種常用的開放原始碼分散式處理系統,經過增強可針對任何規模的資料快速分析工作負載,提供豐富的開放原始碼程式庫系統。現在,您可以在 Amazon Athena 主控台中使用簡化的筆記本體驗或透過 Athena API,以易懂的語言(例如 Python)建置 Spark 應用程式。您可以查詢來自各種來源的資料,將多個計算鏈接在一起,並視覺化其分析結果。針對互動式 Spark 應用程式,您等待的時間更少且效率更高,因為 Amazon Athena 不到一秒鐘即可開始執行應用程式。客戶可獲得簡化、專門建置的 Spark 體驗,最大限度地減少版本升級、效能調整,以及與其他 AWS 服務整合所需的工作。
為什麼我應該使用 Athena for Apache Spark?
如果您需要互動式、全受管分析體驗,以及與 AWS 服務緊密整合,請使用 Athena for Apache Spark。您可以使用 Spark 在 Amazon Athena 中使用熟悉、易懂的語言(例如 Python)和不斷增長的 Spark 套件環境來執行分析。您還可以透過 Amazon Athena API 進入其 Spark 應用程式,或進入 Amazon Athena 主控台中的簡化筆記本,並在一秒鐘內開始執行 Spark 應用程式,而無需設定和調整底層基礎設施。與 Amazon Athena 的 SQL 查詢功能一樣,Amazon Athena 提供全受管 Spark 體驗,並自動處理效能微調、機器組態設定和軟體修補,因此您無須擔心與版本升級保持同步。此外,Amazon Athena 與 AWS 系統中的其他分析服務(如 Data Catalog)緊密整合。因此,您可以參考 Data Catalog 中的資料表,藉此在 Amazon S3 資料湖的資料上建立 Spark 應用程式。
如何開始使用 Athena for Apache Spark?
若要開始使用 Athena for Apache Spark,您可以在 Amazon Athena 主控台中啟動筆記本,或者使用 AWS 命令列介面 (CLI) 或 Amazon Athena API 啟動工作階段。在您的筆記本中,您可以開始使用 Python 進入和關閉 Spark 應用程式。Amazon Athena 還可與 Data Catalog 整合,因此您可以使用型錄參考的任何資料來源,包括直接存放在 Amazon S3 資料湖中的資料。使用筆記本,您現在可以查詢來自各種來源的資料,將多個計算鏈接在一起,並視覺化其分析結果。在 Spark 應用程式上,您可以在 Amazon Athena 主控台中檢查執行狀態,並檢閱日誌和執行歷史記錄。
Amazon Athena 以哪個 Spark 版本為基礎?
Athena for Apache Spark 以穩定的 Spark 3.2 版本為基礎。作為一個全受管引擎,Amazon Athena 將提供 Spark 的自訂組建,並將以向後相容的方式自動處理大多數 Spark 版本更新,而無需您的參與
Athena for Apache Spark 如何定價?
您只需為 Apache Spark 應用程式執行時所花的時間付費。我們會根據您執行 Apache Spark 應用程式所使用的資料處理單位(或 DPU)數量,以小時費率計費。一個 DPU 可提供 4 個 vCPU 和 16 GB 記憶體。以 1 秒為單位計費,進位至最接近的分鐘數。
當您在 Amazon Athena 主控台中啟動筆記本,或者使用 Athena API 啟動 Apache Spark 工作階段時,會為您的應用程式佈建兩個節點:一是筆記本節點,作為筆記本使用者介面的伺服器使用,另一是 Spark 驅動程式節點,以與該 Spark 應用程式進行協調,並與所有 Spark 工作節點通訊。Amazon Athena 會向您收取工作階段執行期間,驅動程式與工作節點產生的費用。Amazon Athena 是在主控台上提供筆記本作為使用者介面,以供建立、提交和執行 Apache Spark 應用程式,並在不加收費用的情形下提供給您。Amazon Athena 不會為 Apache Spark 工作階段之中所使用的筆記本節點收取費用。
什麼情況下該選擇 Amazon Athena 而不是其他大數據服務
Amazon Athena、Amazon EMR 和 Amazon Redshift 有什麼差異?
Amazon Athena 為查詢服務,Amazon Redshift 為資料倉儲,Amazon EMR 為精密的資料處理架構,皆是為了滿足不同的需求和使用案例而設計。您只須為工作選擇合適的工具即可。Amazon Redshift 為企業報告與商業智慧工作負載提供最快速的查詢效能,尤其是包含數個聯結和子查詢而複雜的 SQL 工作負載。相較於內部部署的方案,Amazon EMR 可簡化程序,並且能用符合成本效益的方法執行高度分散式處理架構,例如 Apache Hadoop、Spark 和 Presto。Amazon EMR 是彈性化的方案,您可以執行自訂應用程式和程式碼,以及定義特定的運算、記憶體、儲存和應用程式參數,來增強分析要求。Amazon Athena 提供了一個簡化的方法,方便您對 Amazon S3 的資料執行互動式查詢,無需設定或管理任何伺服器。
若與 Redshift 比較,Amazon Athena 的 SQL 支援如何?如何在這兩個服務之間選擇?
Amazon Athena 和 Amazon Redshift Serverless 這兩項服務雖然皆屬無伺服器型並可供 SQL 使用者使用,卻因應不同需求和使用案例。
透過分隔儲存和運算的大規模平行處理 (MPP) 架構以及機器學習帶來自動最佳化功能,Amazon Redshift 這類資料倉儲(無伺服器或已佈建)對於需要在任何規模的複雜商業智慧和分析工作負載下具有最佳性價比的客戶來說,都是理想的選擇。Amazon Redshift 最適合用來驅動規模分析與大規模結構化或半結構化資料集。對於企業報告與商業智慧工作負載的執行效果佳,尤其是包含數個聯結和子查詢而極其複雜的 SQL 工作負載。Amazon Redshift 能與 AWS 資料庫、分析工具和 ML 服務深度整合,客戶能輕鬆就地存取資料或將資料擷取或移入倉儲,透過極簡 ETL 和無程式碼方式進行高效能分析。因有聯合查詢功能、Amazon Redshift Spectrum、與 Amazon Aurora 整合、AWS Data Exchange、串流資料服務等諸多功用,Amazon Redshift 可讓您使用多種來源的資料、與倉儲中的資料合併,並在其上進行分析和機器學習。Amazon Redshift 備有佈建與無伺服器選項,無需管理基礎設施,即可輕鬆開始分析。
Amazon Athena 非常適合透過可擴展的連接器架構(包括適用於應用程式和內部部署或其他雲端分析系統的 30 多個立即可用連接器),以易用的 SQL 語法對 Amazon Simple Storage Service (S3) 或任何資料來源中的資料進行互動式分析和資料探索。Amazon Athena 建立在開放原始碼引擎和架構(例如 Spark、Presto 和 Apache Iceberg)上,讓客戶能靈活地使用 Python 或 SQL 或處理開放資料格式。如果客戶想要使用開放原始碼架構和資料格式進行互動式分析,Amazon Athena 會是很好的起點。因為完全無伺服器,所以無需管理或設定基礎設施。Amazon Athena 的開放性使得資料可攜性提高,客戶能在不同的應用程式、程式,甚至雲端服務供應商之間移動資料。近期更針對開放原始碼的軟體管理採行新的持續整合方式,能不斷地自 Trino、PrestoDB 和 Apache Iceberg 專案整合進最新功能。
我什麼時候應該使用 Amazon EMR 而不是 Amazon Athena?
Amazon EMR 不僅是執行 SQL 查詢。您可以利用 Amazon EMR 為應用程式執行各種橫向擴展的資料處理任務,例如機器學習 (ML)、圖形分析、資料轉換、資料串流,以及幾乎所有可由程式碼控制的應用程式。使用最新的大數據處理架構,如 Apache HBase、Spark、Hadoop 或 Presto,並利用自訂程式碼處理和分析大型的資料集,您就應該選用 Amazon EMR。Amazon EMR 讓您全權控制您的叢集以及安裝在叢集上的軟體的組態。
若要對 Amazon S3 上的資料執行互動式 SQL 查詢,而無需管理任何基礎設施或叢集,請使用 Amazon Athena。
Amazon Athena 對 Spark 的支援與 Amazon EMR Serverless for Spark 相比有何差異? 客戶在何等情況下應在 Amazon Athena 中使用 Spark,而非使用 Amazon EMR Serverless?
以 Amazon EMR Serverless 在雲端執行 Spark 和 Hive 應用程式是最簡易的方式,這也是業界唯一的無伺服器 Hive 解決方案。利用 Amazon EMR Serverless,可免除您在於微調、調整大小、安全、修補和管理叢集的營運負擔,而且僅需為應用程式實際使用的資源付費。因有 EMR 的效能優化執行時間,您可享有比標準開放原始碼更快超過 2 倍的效能,應用程式的執行速度更快,同時也降低運算成本。EMR 的的效能優化執行時間與標準開放原始碼 100% API 相容,您無需重寫應用程式,即可在 EMR 上執行。另外,因為預設為啟動,所以您無需對於 Spark 具備深刻專業知識,即可加以啟動。Amazon EMR 提供了在 EMR 叢集、EKS 叢集或 EMR Serverless 上執行應用程式的選項。EMR 叢集適合需要掌握最大控制權和以彈性方式執行其應用程式的客戶。借助 EMR 叢集,客戶可以選擇 EC2 執行個體類型、自訂 Amazon Linux Image AMI、自訂 EC2 執行個體設定、自訂並擴展開放原始碼架構,以及在叢集執行個體上安裝其他自訂軟體。EKS 上的 Amazon EMR 適合希望在 EKS 上進行標準化,以跨應用程式管理叢集,或在同一叢集上使用不同版本的開放原始碼架構的客戶。EMR Serverless 適合希望避免管理和營運叢集,只想使用開放原始碼架構執行應用程式的客戶。
如果客戶希望享有與 Amazon Athena 互動式 SQL 查詢體驗類似的立即啟動式互動體驗,可選擇 Amazon Athena for Apache Spark。客戶可從 Amazon Athena 獲得最佳化的互動應用程式體驗,執行時間格外的短,而且啟動時間不及一秒。Amazon Athena 能自動處理效能調校、設定、軟體修補和更新,無需客戶參與。為了讓資料分析師與開發人員能以 PySpark 程式語言立即進行深刻與重點資料探索與執行互動分析,Amazon Athena for Apache Spark 提供易用體驗。
Amazon Athena 是否可以查詢透過 Amazon EMR 處理的資料?
是,Amazon Athena 和 Amazon EMR 支援許多種相同的資料格式。Amazon Athena Data Catalog 與 Hive 中繼存放區相容。若您使用 Amazon EMR 而且已經擁有 Hive 中繼存放區,您在 Amazon Athena 上執行 DDL 陳述式,即可在不影響 Amazon EMR 任務的情況下開始查詢您的資料。
Athena SQL 中的聯合查詢與其他 AWS 服務有何關係?
Amazon Athena 的聯合查詢為您提供了一致的方式,跨各種關聯式、非關聯式和自訂資料來源以執行 SQL 查詢。
Amazon Athena 中的 ML 與其他 AWS 服務有何關係?
Athena SQL 查詢可叫用 Amazon SageMaker 上部署的機器學習 (ML) 模型。您可指定 Amazon S3 位置,以用來存放這些 Athena SQL 查詢的結果。