問:什麼是 Amazon Athena?

Amazon Athena 是互動式查詢服務,可使用標準 SQL 輕鬆分析 Amazon S3 中的資料。Athena 是無伺服器的服務,您不須設定或管理任何基礎設施,即可馬上開始分析資料。您甚至不需要將資料載入到 Athena,它可以直接處理存放在 S3 的資料。開始使用時,只須登入 Athena 管理主控台,定義您的結構描述,即可開始查詢。Amazon Athena 使用 Presto,提供完整的標準 SQL 支援且能接受各種標準資料格式,包括 CSV、JSON、ORC、Apache Parquet 和 Avro。Amazon Athena 不但提供迅捷的臨機操作查詢功能,也和 Amazon QuickSight 整合提供簡易的視覺化功能,同時還可以處理複雜的分析,包括大規模聯結、視窗函數和陣列。

問:Amazon Athena 有什麼用途?

Amazon Athena 可協助您分析儲存在 Amazon S3 的資料。您可以使用 Athena 透過 ANSI SQL 執行臨機操作查詢,不須將資料彙整到或載入 Athena。Amazon Athena 可以處理非結構化、半結構化和結構化資料集,包括 CSV、JSON、Avro 或單欄資料格式,例如 Apache Parquet 和 Apache ORC。Amazon Athena 與 Amazon QuickSight 整合提供簡易的視覺化功能,您也可以使用 Amazon Athena 產生報告,以及搭配商業智慧工具或透過 JDBC 驅動程式連線的 SQL 用戶端來探索資料。

問:如何開始使用 Amazon Athena?

要開始使用 Amazon Athena,只須登入 Athena 的 AWS 管理主控台,在主控台上撰寫 DDL 陳述式或使用建立表格精靈以建立您的結構描述。接著,您便可以利用內建的查詢編輯器查詢資料。Athena 直接查詢 Amazon S3 的資料,所以不需要載入。 

問:如何存取 Amazon Athena?

您可以透過 AWS 管理主控台、API 或 JDBC 驅動程式存取 Amazon Athena。您可以使用 JDBC 驅動程式透過編寫程式的方式執行查詢、新增表格或分區。

問:Amazon Athena 有哪些服務限制?

按一下這裡進一步了解關於服務限制的詳情

問:Amazon Athena 的基本技術是什麼?

Amazon Athena 使用 Presto,提供完整的標準 SQL 支援且能接受各種標準資料格式,包括 CSV、JSON、ORC、Avro 和 Parquet。Athena 可以處理複雜的分析,包括大規模聯結、視窗函數和陣列。因為 Amazon Athena 使用 Amazon S3 做為基本的資料存放區,所以可用性高而且時間持久,資料會以備援形式存放在多個設施以及每個設施的多個裝置上。

問:Amazon Athena 如何存放表格定義和結構描述?

針對存放於 Amazon S3 的資料所建立的資料庫和表格,Amazon Athena 會使用受管資料型錄存放其資訊和結構描述。在提供 AWS Glue 的區域,您可以將 Amazon Athena 升級為使用 AWS Glue 資料型錄。在不提供 AWS Glue 的區域,Athena 會使用內部型錄。

您可以使用 DDL 陳述式或是透過 AWS 管理主控台修改目錄,您定義的所有結構描述都會自動儲存,除非您確實將它們刪除。Athena 利用查詢讀取時驗證結構描述的技術,也就是在執行查詢時,表格定義才會套用到您在 S3 的資料,不需要載入或轉換資料,您可以刪除表格定義和結構描述,不會影響存放在 Amazon S3 的基礎資料。

問:為什麼應該升級到 AWS Glue 資料型錄?

AWS Glue 是全受管的 ETL 服務。Glue 有三個主要元件:1) 網路爬取程式,可自動掃描資料來源、識別資料格式和推斷結構描述;2) 全受管 ETL 服務,可讓您轉換資料並將資料移至不同目的地;以及 3) 資料型錄,可存放 S3 或 JDBC 合規資料存放區中存放之資料庫和表格的中繼資料資訊。若要充分利用 Glue 的好處,您必須從使用 Athena 內部資料型錄升級為使用 Glue 資料型錄。

升級到 Glue 資料型錄有以下好處:

  1. 一致的中繼資料儲存庫:AWS Glue 與各式各樣的 AWS 服務整合。AWS Glue 支援存放在 Amazon Aurora、Amazon RDS MySQL、Amazon RDS PostreSQL、Amazon Redshift 與 Amazon S3 中的資料,也支援在 Amazon EC2 上執行的 Virtual Private Cloud (Amazon VPC) 中的 MySQL 和 PostgreSQL 資料庫。AWS Glue 提供立即可用的 Amazon Athena、Amazon EMR、Amazon Redshift Spectrum 和所有 Apache Hive 中繼存放區相容應用程式的整合。
  2. 自動辨識結構描述和分區:AWS Glue 可自動網路爬取資料來源、識別資料格式,以及建議結構描述和轉換。網路爬取程式可協助自動建立表格和自動載入分區。
  3. 輕鬆建立管道:AWS Glue 的 ETL 引擎會產生可自訂、可重複使用的可攜式 Python 程式碼。您可以使用自己偏好的 IDE 或筆記本編輯程式碼,並透過 GitHub 與其他人共享。ETL 任務準備就緒之後,就可以排程在 AWS Glue 全受管、可擴展的 Spark 基礎設施上執行。AWS Glue 是無伺服器服務,所以可處理執行 ETL 任務所需資源的佈建、組態和擴展,讓您將 ETL 緊密整合在工作流程中。

按一下這裡進一步了解 Glue 資料型錄。

問:是否提供升級到 AWS 資料型錄的逐步指南?

是。您可以在這裡取得逐步指南。

問:哪些區域可以使用 Amazon Athena?

請參閱區域產品與服務,了解各個地區提供 Amazon Athena 服務的詳細資訊。

問:Amazon Athena、Amazon EMR 和 Amazon Redshift 有什麼差異?

Amazon Athena 為查詢服務,Amazon Redshift 為資料倉儲,Amazon EMR 為精密的資料處理架構,皆是為了滿足不同的需求和使用案例而設計。您只須為工作選擇合適的工具即可。Amazon Redshift 為企業報告與商業智慧工作負載提供最快速的查詢效能,尤其是包含數個聯結和子查詢而極其複雜的 SQL 工作負載。相較於現場部署的方案,Amazon EMR 能用更簡單且符合成本效益的方法執行高度分散式處理架構,例如 Hadoop、Spark 和 Presto。Amazon EMR 是彈性化的方案,您可以執行自訂應用程式和程式碼,以及定義特定的運算、記憶體、儲存和應用程式參數,讓分析要求最佳化。Amazon Athena 提供最簡單的方法,方便您對 S3 的資料進行臨機操作查詢,不須設定或管理任何伺服器。

問:我什麼時候應該使用 Amazon Redshift 這類功能完整的企業資料倉儲,什麼時候應該使用 Amazon Athena 這類查詢服務?

如果您想要把許多不同來源 (例如庫存系統、金融系統、零售銷售系統) 的資料彙集在一起,轉換成通用格式,然後長期存放以利用歷史資料製作精密的商業報告,Amazon Redshift 資料倉儲是您最好的選擇。

資料倉儲從整個公司收集資料,做為產生報告和進行分析的「單一真實來源」。資料倉儲從許多來源取得資料,將資料格式化並一一整理存放,然後支援複雜的高速查詢功能以利製作商業報告。Amazon Redshift 的查詢引擎已經最佳化,當您執行複雜的查詢,把非常多個超大型資料庫表格聯結起來時,它的表現尤其出色。TPC-DS 是專為複製這個使用案例而設計的標準衡量指標,比起那些針對非結構化資料最佳化的查詢服務,Redshift 執行這些查詢的速度快 20 倍。當您必須針對高度結構化的資料執行查詢,牽涉到非常多個極大型表格之間的超多聯結時,您應該選用 Amazon Redshift。

相較之下,Amazon Athena 的查詢服務可直接針對 Amazon S3 中的資料進行互動式查詢,執行更簡單,不須擔心格式化資料或管理基礎設施的問題。舉例來說,如果您需要快速查詢一些 Web 記錄以利排解網站上的效能問題,Athena 的表現會很出色,查詢服務可以讓您可以更快開始著手解決問題,您只要為資料定義一個表格然後使用標準 SQL 開始查詢。

您可以同時使用這兩種服務。若是資料在載入 Amazon Redshift 之前便已在 Amazon S3 上,那些資料也可以向 Amazon Athena 註冊並透過 Athena 查詢。

問:我什麼時候應該使用 Amazon EMR,什麼時候應該使用 Amazon Athena?

Amazon EMR 不僅是執行 SQL 查詢,您可以利用 EMR 為應用程式執行各種各樣橫向擴展的資料處理任務,例如機器學習、圖形分析、資料轉換、資料串流,以及幾乎所有可由程式碼控制的應用程式。若您使用最新的大數據處理架構,如 Spark、Hadoop、Presto、Hbase,並利用自訂程式碼處理和分析極大型的資料集,您就應該選用 Amazon EMR,Amazon EMR 讓您全權控制您的叢集以及安裝在叢集上的軟體的組態。

若要對 Amazon S3 上的資料進行互動式 SQL 臨機操作查詢,而不須管理任何基礎設施或叢集,請使用 Amazon Athena。

問:Amazon Athena 是否可以查詢透過 Amazon EMR 處理的資料?

是,Amazon Athena 和 Amazon EMR 支援許多種相同的資料格式,Athena 的資料目錄與 Hive 中繼存放區相容。若您使用 EMR 而且已經擁有 Hive 中繼存放區,您只要在 Amazon Athena 上執行 DDL 陳述式,即可在不影響 Amazon EMR 工作的情況下開始查詢您的資料。

問:如何為 Amazon S3 上的資料建立表格和結構描述?

Amazon Athena 使用 Apache Hive DDL 定義表格,您可以使用 Athena 主控台、透過 JDBC 驅動程式、透過 API 執行 DDL 陳述式,或使用 Athena 建立表格精靈。如果您使用 AWS Glue 資料型錄搭配 Athena,也可以使用 Glue 網路爬取程式自動推斷結構描述和分區。AWS Glue 網路爬取程式會連接到資料存放區,依序處理已排定優先順序的分類器清單以擷取資料的結構描述和其他統計資料,然後將此中繼資料填入 Glue 資料型錄。網路爬取程式可定期執行以偵測是否有可用的新資料以及表格定義變更等現有資料變更。網路爬取程式會自動新增表格、現有表格的新分區,以及新的表格定義版本。您可以自訂 Glue 網路爬取程式以分類自己的檔案類型。

您在 Amazon Athena 建立新的表格結構描述時,該結構描述會存放在資料目錄供執行查詢時使用,但是不會修改 S3 中的資料。Athena 使用一種稱為「查詢讀取時驗證結構描述」的技術,讓您在執行查詢時可將結構描述投放在資料上,如此便不必載入或轉換任何資料。進一步了解建立表格

問:Amazon Athena 支援哪些資料格式?

Amazon Athena 支援多種資料格式,如 CSV、TSV、JSON 或純文字檔,亦支援開放原始碼單欄格式,例如 Apache ORC 和 Apache Parquet,Athena 也支援 Snappy、Zlib、LZO 和 GZIP 格式的壓縮資料。藉由壓縮、分割和使用單欄格式,您便可以改善效能並降低成本。

問:Amazon Athena 支援哪些資料類型?

Amazon Athena 支援簡單的資料類型,例如 INTEGER、DOUBLE、VARCHAR,也支援複雜的資料類型,例如 MAPS、ARRAY 和 STRUCT。 

問:是否可以在 Athena 上執行 Hive 查詢?

Amazon Athena 使用 Hive 僅限於 DDL (資料定義語言) 以及用於建立/修改及刪除表格和/或分區。請按一下這裡取得所支援的陳述式完整列表。您在 Amazon S3 上執行 SQL 查詢時,Athena 會使用 Presto。您可以執行符合 ANSI 標準的 SQL SELECT 陳述式查詢在 Amazon S3 的資料。

問:什麼是 SerDe?

SerDe 代表串聯器/解串器,是指告訴 Hive 如何解譯資料格式的程式庫。Hive DLL 陳述式要求您指定一個 SerDe,讓系統知道如何解譯您所指向的資料。Amazon Athena 使用 SerDes 解譯從 Amazon S3 讀取出來的資料,Athena 中 SerDes 的概念與 Hive 所使用的概念相同。Amazon Athena 支援下列 SerDes:

  1. Apache Web 記錄:"org.apache.hadoop.hive.serde2.RegexSerDe"
  2. CSV:"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  3. TSV:"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  4. 自訂分隔符號:"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  5. Parquet:"org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
  6. Orc:"org.apache.hadoop.hive.ql.io.orc.OrcSerde"
  7. JSON:"org.apache.hive.hcatalog.data.JsonSerDe" 或 org.openx.data.jsonserde.JsonSerDe

問:是否可以把自己的 SerDe (串聯器/解串器) 新增至 Amazon Athena?

目前您還不能新增自己的 SerDe 到 Amazon Athena。我們很重視您的意見回饋,所以您若是希望新增任何 SerDes,請透過 Athena-feedback@amazon.com 聯絡 Athena 團隊

問:我使用 Spark/Hive 建立 Parquet/ORC 檔案,是否可以經由 Athena 查詢這些檔案?

是,Athena 可以讀取透過 Spark 建立的 Parquet 和 ORC 檔案。

問:我有 Kinesis Firehose 的資料,我要如何使用 Athena 查詢這些資料?

若您的 Kinesis Firehose 資料存放在 Amazon S3,您可以使用 Amazon Athena 查詢,只須在 Athena 中為資料建立一個結構描述即可開始查詢。我們建議您將資料整理成分區以達到最佳效能,您可以使用 ALTER TABLE DDL 陳述式新增由 Kinesis Firehose 建立的分區。進一步了解分區

問:Amazon Athena 是否支援資料分割?

是。Amazon Athena 允許您對任何直欄上的資料進行分割,您可以利用分區限制每個查詢所掃描的資料數量,藉此節省成本和加速效能。您可以使用 CREATE TABLE 陳述式中的 PARTITIONED BY 子句指定您的分割結構描述。進一步了解資料分割

問:如何把新資料新增到 Amazon Athena 的一個現有表格中?

若您的資料已分割,一旦 Amazon S3 可以使用新資料,您就必須執行中繼資料查詢 (ALTER TABLE ADD PARTITION) 將分區新增至 Athena。若您的資料未分割,把新資料 (或檔案) 新增至現有的字首,資料便會自動新增至 Athena。進一步了解資料分割

問:我在 Amazon S3 中已有大量的日誌資料,是否可以使用 Amazon Athena 查詢?

是,Amazon Athena 讓您可輕鬆地在現有的記錄資料上執行標準 SQL 查詢。Athena 直接查詢 Amazon S3 的資料,所以不需要移動或載入資料。使用 DDL 陳述式簡單定義您的結構描述,即可馬上開始查詢您的資料。

問:Amazon Athena 支援哪些類型的查詢?

Amazon Athena 支援 ANSI SQL 查詢。Amazon Athena 使用開放原始碼、記憶體內的分散式 SQL 引擎 Presto,並且可以處理複雜的分析,包括大規模聯結、視窗函數和陣列。

問:Amazon QuickSight 是否可以搭配 Amazon Athena 使用?

是。Amazon Athena 與 Amazon QuickSight 整合,讓您輕鬆將存放在 Amazon S3 的資料視覺化。

問:Athena 是否支援其他 BI 工具和 SQL 用戶端?

是。Amazon Athena 隨附 JDBC 驅動程式,方便您搭配其他商業智慧工具和 SQL 用戶端使用。進一步了解 Athena 如何利用 JDBC 驅動程式

問:Athena 是否支援使用者定義函數 (UDF)?

Athena 目前不支援自訂 UDF。您若需要自訂 UDF 支援,請傳送電子郵件至 athena-feedback@amazon.com,讓我們進一步了解您的要求。

問:如何存取 Amazon Athena 所支援的功能?

按一下這裡進一步了解 Amazon Athena 所支援的功能。

問:如何改善查詢效能?

藉由壓縮、分割資料或將資料轉換成單欄格式,即可改善查詢效能。Amazon Athena 支援開放原始碼單欄資料格式,例如 Apache Parquet 和 Apache ORC。將資料轉換成壓縮的單欄格式可降低成本並改善查詢效能,因為您執行查詢時 Athena 從 S3 掃描的資料較少。

問:如何控制對我的資料的存取?

Amazon Athena 允許您使用 AWS Identity and Access Management (IAM) 政策、存取控制清單 (ACL)、Amazon S3 儲存貯體政策控制資料存取。您可以利用 IAM 政策讓 IAM 使用者透過精細定義的控制功能存取 S3 儲存貯體,藉由控制 S3 的資料存取,您便可以限制使用者透過 Athena 查詢哪些資料。

Athena 是否可查詢 Amazon S3 中的加密資料?

是,您可以查詢以下列方式加密的資料:使用 Amazon S3 受管加密金鑰的伺服器端加密、AWS Key Management Service (KMS) – 受管金鑰的伺服器端加密,以及由 KMS 管理的金鑰的用戶端加密。Amazon Athena 還與 KMS 整合,為您提供加密結果集的選擇。

問:Athena 是高度可用的服務嗎?

是。Amazon Athena 的可用性高而且使用多個設施之間的運算資源執行查詢,若特定設施無法連線,會自動選擇合適的查詢路徑。Athena 使用 Amazon S3 做為基礎資料存放區,讓您資料具有高可用性和耐久性。Amazon S3 提供耐久的基礎設施來存放重要資料,並提供 99.999999999% 的物件耐久性。您的資料會以冗餘方式存放在多個設施以及每個設施的多個裝置。

問:我是否可以允許跨帳戶存取其他人的 S3 儲存貯體?

可以,您可以允許跨帳戶存取 Amazon S3。

問:Amazon Athena 的價格是多少?

Amazon Athena 是依查詢計價,而費用是以查詢所掃描的資料量為依據。您可以用多種不同格式將資料存放在 Amazon S3 上,若您壓縮資料、進行分割或是轉換成單欄儲存格式,因為掃描的資料較少,所以費用也會減少。將資料轉換成單欄格式後,Athena 便只須讀取處理查詢所需的直欄。請參閱 Athena 定價頁面了解詳細資訊

問:為什麼使用單欄格式後我支付的費用會減少?

Amazon Athena 依每次查詢所掃描的資料量計費,壓縮資料後 Amazon Athena 須掃描的資料就會比較少。將資料轉換成單欄格式後,Athena 可以選擇僅讀取處理資料所需的直欄,資料分割後,Athena 也可以限制掃描的資料量,如此一來便可節省成本和改善效能。詳細資訊請參閱定價範例。

問:我要如何降低成本?

壓縮資料、分割資料以及將資料轉換成單欄格式,即可節省 30% 至 90% 的查詢成本並提高效能表現。上述每一項操作都會減少 Amazon Athena 在執行查詢時所需掃描的資料量。Amazon Athena 支援兩種最常見的開放原始碼單欄格式:Apache Parquet 和 ORC。您可以到 Athena 主控台查看每次查詢所掃描的資料量。 

問:Amazon Athena 查詢失敗時是否計費?

不,查詢失敗不會計費。

問:Amazon Athena 是否會對取消的查詢計費?

是,若您手動取消查詢,便會依據截至取消查詢前所掃描的資料量計費。

問:Amazon Athena 是否會收取其他費用?

Amazon Athena 直接查詢 Amazon S3 的資料,所以您的來源資料會依 S3 的費率計費。Amazon Athena 執行查詢時,會把結果存放在您選擇的 S3 儲存貯體中,這些結果集合的費用會依標準 S3 費率計費。我們建議您監控這些儲存貯體,利用生命週期政策來控制要保留多少資料。

問:使用 AWS Glue 資料型錄是否需要付費?

是,使用 AWS Glue 資料型錄需要另外付費。按一下這裡進一步了解 Glue 資料型錄定價。