選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

什麼是分割?

焦點模式
什麼是分割? - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

分割表示根據資料的特定屬性,將資料整理到 Amazon S3 上的目錄 (或「字首」)。這類屬性稱為分割區索引鍵。常見的分割區索引鍵是日期或一些其他時間單位,例如年份或月份。不過,資料集可以依多個索引鍵進行分割。例如,有關產品銷售的資料可能依日期、產品類別和市場進行分割。

決定如何分割

分割區索引鍵的理想候選者是始終或經常在查詢中使用且具有低基數的屬性。分割區過多和分割區過少之間需要取得權衡。由於分割區過多,檔案數增加會產生負荷。篩選分割區本身也有一些負荷。如果分割區太少,查詢通常需要掃描更多資料。

建立分區資料表

分割資料集後,您可以在 Athena 建立分割的資料表。分割的資料表是具有分割區索引鍵的資料表。使用 CREATE TABLE 時,您可以將分割區新增至資料表中。使用 CREATE TABLE AS 時,在 Amazon S3 上建立的分割區會自動新增至資料表。

CREATE TABLE 陳述式中,您可以在 PARTITIONED BY (column_name data_type) 子句中指定分割區索引鍵。在 CREATE TABLE AS 陳述式中,您可以在 WITH (partitioned_by = ARRAY['partition_key']) 子句或 Iceberg 資料表的 WITH (partitioning = ARRAY['partition_key']) 中指定分割區索引鍵。出於效能考量,分割區索引鍵應始終是類型 STRING。如需詳細資訊,請參閱使用字串做為分割區索引鍵的資料類型

如需其他 CREATE TABLECREATE TABLE AS 語法詳細資訊,請參閱 CREATE TABLECTAS表格性質

查詢分區資料表

當您查詢分割區資料表時,Athena 會使用查詢中的述詞來篩選分割區的清單。然後,其會使用相符分割區的位置來處理找到的檔案。Athena 只要不讀取與查詢述詞不相符的分割區中的資料,就能有效減少掃描的資料量。

範例

假設您有一個依 sales_dateproduct_category 分割的資料表,並且想知道特定類別中一周的總收入。您可以在 sales_dateproduct_category 資料欄上加入述詞,以確保 Athena 只掃描最少量的資料,如下列範例所示。

SELECT SUM(amount) AS total_revenue FROM sales WHERE sales_date BETWEEN '2023-02-27' AND '2023-03-05' AND product_category = 'Toys'

假設您有依日期分割的資料集,但也有精細的時間戳記。

使用 Iceberg 資料表,您可以宣告分割區索引鍵與資料欄之間的關係,但是使用 Hive 資料表時,查詢引擎對資料欄和分割區索引鍵之間的關係一無所知。因此,您必須在查詢中包含資料欄和分割區索引鍵的述詞,以確保查詢掃描的資料不會超過必要數目。

例如,假設上一個範例中的 sales 資料表也有 TIMESTAMP 資料類型的 sold_at 資料欄。如果您只想在特定時間範圍內獲得收入,則可以像這樣寫入查詢:

SELECT SUM(amount) AS total_revenue FROM sales WHERE sales_date = '2023-02-28' AND sold_at BETWEEN TIMESTAMP '2023-02-28 10:00:00' AND TIMESTAMP '2023-02-28 12:00:00' AND product_category = 'Toys'

如需有關查詢 Hive 和 Iceberg 資料之間的差異的詳細資訊,請參閱 如何寫入同樣按時間分割的時間戳記欄位的查詢

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。