使用 Hudi 中繼資料以改善效能 - Amazon Athena

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

使用 Hudi 中繼資料以改善效能

Apache Hudi 有一個中繼資料表,其中包含索引功能,以改善效能,例如檔案列出、使用資料欄統計數字略過資料以及基於 Bloom 篩選條件的索引。

在這些功能中,Athena 目前僅支援檔案列出索引。檔案列出索引可從維護分割區到檔案映射的索引中擷取資訊,進而消除諸如「清單檔案」之類的檔案系統呼叫。這樣就不需要遞迴列出資料表路徑下的每個分割區來查看檔案系統。當您處理大型資料集時,此索引會大幅縮短在寫入和查詢期間取得檔案清單時所產生的延遲。它還可以避免瓶頸,例如 Amazon S3 LIST 呼叫上的請求限制限流。

注意

Athena 目前不支援資料略過或 Bloom 篩選索引。

啟用 Hudi 中繼資料表

依預設,以中繼資料表為基礎的檔案清單已停用。若要啟用 Hudi 中繼資料表和相關檔案清單功能,請將 hudi.metadata-listing-enabled 資料表屬性設定為 TRUE

範例

下列 ALTER TABLE SET TBLPROPERTIES 範例會啟用範例 partition_cow 資料表上的中繼資料表。

ALTER TABLE partition_cow SET TBLPROPERTIES('hudi.metadata-listing-enabled'='TRUE')

使用引導生成的元數

從 Apache Hudi 版本 0.6.0 開始,引導操作功能可為現有 Parquet 資料集提供更好的效能。引導操作不會重寫資料集,而是只能產生中繼資料,使資料集保持在原位。

您可以使用 Athena,透過引導操作對資料表執行查詢,就像以 Amazon S3 中之資料為基礎的其他資料表一樣。在 CREATE TABLE 陳述式中,請在 LOCATION 子句中指定 Hudi 資料表路徑。

有關在 Amazon 中使用引導操作創建 Hudi 表的更多信息EMR,請參閱 AWS 大數據博客中 Amazon EMR 提供的 Apache Hudi 新功能一文。