使用 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