使用 Hudi 元数据提高性能 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Hudi 元数据提高性能

Apache Hudi 有一个元数据表,其中包含用于提高性能的索引功能,例如文件列表、使用列统计数据跳过数据以及基于布隆筛选器的索引。

在这些功能中,Athena 目前仅支持文件列表索引。文件列表索引通过从维护分区到文件映射的索引中获取信息,从而消除了“列表文件”之类的文件系统调用。这样就无需以递归方式列出表路径下的每个分区即可查看文件系统。当您处理大型数据集时,这种索引可以大大减少写入和查询期间获取文件列表时出现的延迟。还可以避免诸如 Amazon S3 LIST 调用的请求限制节流之类的瓶颈。

注意

Athena 目前不支持数据跳过或布隆筛选器索引。

启用 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 EMR 中使用引导启动操作创建 Hudi 表的更多信息,请参阅 Amazon 大数据博客文章:New features from Apache Hudi available in Amazon EMR(在 Amazon EMR 中可用的 Apache Hudi 新功能)。