Hi,我是王知无,一个大数据领域的原创作者。
在 0.11.0 中,默认为 Spark writer 启用具有同步更新的元数据表和基于元数据表的file listing,以提高在大型 Hudi 表上的分区和文件listing的性能。在reader方面,用户需要将其设置为 true 以从中受益。元数据表和相关文件listing 仍然可以通过设置hoodie.metadata.enable=false来关闭此功能。因此,使用异步表服务部署 Hudi 的用户需要配置锁服务。如果此功能与您无关,您可以通过额外设置这个配置 hoodie.metadata.enable=false 像以前一样使用 Hudi。
我们在元数据表中引入了多模式索引,以显着提高文件索引中的查找性能和数据跳过的查询延迟。元数据表中添加了两个新索引:
默认情况下它们被禁用。您可以通过分别设置hoodie.metadata.index.bloom.filter.enable
和hoodie.metadata.index.column.stats.enable
为true来启用它们。
随着在元数据表中增加了对列统计的支持,数据跳过现在依赖于元数据表的列统计索引 (CSI),而不是其自己的定制索引实现(与 0.10.0 中添加的空间曲线相比),允许利用数据跳过对于所有数据集,无论它们是否执行布局优化程序(如聚类)。要从数据跳过中受益,请确保同时为写入器和读取器设置hoodie.enable.data.skipping=true,并在元数据表中启用元数据表和列统计索引。
数据跳过支持标准函数(以及一些常用表达式),例如:date_format(ts, "MM/dd/yyyy") < "04/01/2022"。
注意:目前仅在COW 表和读优化模式下的MOR 表中支持 Data Skipping。在HUDI-3866中跟踪了对 MOR 表的全面支持的工作。
在 0.11.0 中,我们添加了一个新的异步服务,用于索引我们丰富的表服务集。它允许用户在元数据表中创建不同类型的索引(例如,文件、布隆过滤器和列统计信息),而不会阻塞摄取。索引器在时间线上添加一个名为“indexing”的新action。虽然索引过程本身是异步的并且对写入者来说是非阻塞的,但需要配置锁提供程序以安全地协调运行中的写入者进程。
Hudi 的 Spark 低层次集成进行了相当大的改进,整合了通用流程以共享基础架构,并在查询数据时提高了计算和数据吞吐量效率。
在 0.11.0 中,用户现在可以轻松更改 Hudi 表的当前模式,以适应不断变化的数据模式。通过ALTER TABLE语法为 Spark 3.1.x 和 Spark 3.2.1 添加了 Spark SQL DDL 支持(实验性) 。
在 0.11.0 中,hudi-utilities-slim-bundle添加了一个新项以排除可能导致与其他框架(如 Spark)发生冲突和兼容性问题的依赖项。
hudi-utilities-slim-bundle
适用于 Spark 3.1 和 2.4。hudi-utilities-bundle
继续使用 Spark 3.1,就像在 Hudi 0.10.x 中一样。在 0.11.0 中,Hudi 表可以作为外部表从 BigQuery 中查询。用户可以设置org.apache.hudi.gcp.bigquery.BigQuerySyncTool
为HoodieDeltaStreamer
的同步工具实现,并使目标 Hudi 表在 BigQuery 中可发现。请参阅 BigQuery 集成指南页面了解更多详情。
注意:这是一项实验性功能,仅适用于 hive 样式分区的 Copy-On-Write 表。
在 0.11.0 中,Hudi 表可以直接通过 AWS 开发工具包同步到 AWS Glue Data Catalog。用户可以设置org.apache.hudi.aws.sync.AwsGlueCatalogSyncTool为HoodieDeltaStreamer的同步工具实现,并使目标 Hudi 表在 Glue Catalog中可发现。有关更多详细信息,请参阅同步到 AWS Glue Data Catalog指南页面。
在 0.11.0 中,Hudi 表的元数据(特别是模式和上次同步提交时间)可以同步到DataHub。用户可以将目标表设置org.apache.hudi.sync.datahub.DataHubSyncTool为HoodieDeltaStreamer的同步工具实现,并将目标表同步为DataHub中的Dataset。有关详细信息,请参阅同步到 DataHub指南页面。
在 0.11.0 中,添加了对 Spark 3.2 的支持,并附带了 Parquet 1.12,它为 Hudi(COW表)带来了加密功能。有关详细信息,请参阅加密指南页面。
0.11.0增加了一种高效、轻量级的索引类型bucket index。它使用基于记录键的散列函数将记录分配到存储桶,其中每个存储桶对应于单个文件组。要使用此索引,请将索引类型设置为BUCKET并设置hoodie.storage.layout.partitioner.class为org.apache.hudi.table.action.commit.SparkBucketIndexPartitioner
。对于 Flink,设置index.type=BUCKET.
灾难恢复是任何生产部署中的关键特性。尤其是在涉及存储数据的系统中。Hudi 从一开始就为 COW 表提供了保存点和恢复功能。在 0.11.0 中,我们添加了对 MOR 表的支持。
Hudi 用户可以使用org.apache.hudi.callback.HoodieWriteCommitCallback
在成功提交时调用回调函数。在 0.11.0中,除了现有的 HTTP 回调和 Kafka 回调之外,我们还添加了这些HoodieWriteCommitPulsarCallback回调。详细设置请参考配置页面。
在 0.11.0 中,添加了org.apache.hudi.utilities.schema.HiveSchemaProvider
用于从用户定义的Hive表中获取Schema。这在HoodieDeltaStreamer拖尾 Hive 表而不是提供 avro 模式文件时很有用。
hoodie.datasource.write.precombine.field
写入和读取都需要。hoodie.datasource.write.drop.partition.columns=true
。hoodie.datasource.read.extract.partition.values.from.path=true
为与现有行为保持兼容。原文详情你可以参考:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12322822&version=12350673