

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

# 使用 Hudi 中繼資料以提升效能
<a name="querying-hudi-metadata-table"></a>

Apache Hudi 有一個[中繼資料表](https://hudi.apache.org/docs/next/metadata/)，其中包含索引功能，以改善效能，例如檔案列出、使用資料欄統計數字略過資料以及基於 Bloom 篩選條件的索引。

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

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

## 啟用 Hudi 中繼資料表
<a name="querying-hudi-metadata-table-enabling-the-hudi-metadata-table"></a>

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

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

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

## 使用引導程序產生的中繼資料
<a name="querying-hudi-hudi-dataset-table-types-bootstrap"></a>

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

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

如需有關在 Amazon EMR 中使用引導操作建立 Hudi 資料表的詳細資訊，請參閱 AWS 大數據部落格中的文章 [Apache Hudi 提供的新功能](https://aws.amazon.com/blogs/big-data/new-features-from-apache-hudi-available-in-amazon-emr/)。