Apache Hudi 0.6.0版本重磅发布
发布时间
阅读量:
阅读量
1. 下载信息
- 源代码:Apache Hudi 0.6.0 Source Release ([asc], [sha512])
- 二进制JAR包:nexus
2. 迁移指南
- 若您计划从旧版(如 0.5.x)升级至新版本(如 1.x),请务必查阅最新的迁移指南。
- 新版系统采用 marker 文件作为回滚策略,并在
hoodie.properties中新增hoodie.table.version属性以辅助记录环境信息。
在应用 Hudi 表的新版时,默认会自动完成升级操作,并仅执行一次表级别升级。升级完成后将自动更新hoodie.table.version属性。 - 系统还提供降级功能(-downgrade 命令),允许用户将当前环境切换至旧版状态时会重置
hoodie.table.version属性为初始值。 - 在使用自定义 partitioner 的情况下请注意:自 1.x 版本起,默认参数已更改,请确保现有代码与新接口兼容。
- 新版系统采用 marker 文件作为回滚策略,并在
3. 重点特性
3.1 写入端改进
- 对已有Parquet表进行迁移:支持通过Spark Datasource/DeltaStreamer引导已存在的Parquet表迁移至Hudi,同时可通过Hive,SparkSQL,AWS Athena进行查询(PrestoDB即将支持),技术细节请参考RFC-15。该特性暂时标记为experimental,在后续的0.6.x版本将持续进行完善。与传统重写方案相比资源消耗和耗时都有数据量的提升。
- bulk_insert支持原生写入:避免在bulk_insert写入路径中进行DataFrame - RDD转化,可显著提升bulk load的性能。后续的0.6.x版本将应用到其他的写操作以使得schema管理更为轻松,彻底避免spark-avro的转化。
- bulk_insert模式:Hudi bulk_insert对输入进行排序以便优化文件大小并避免在并发写入DFS多分区时的内存溢出问题,对于想在写入Hudi之前就已经准备好DataFrame的用户,Hudi也提供了
hoodie.bulkinsert.sort.mode配置项。 - 支持Cleaning与写入并发执行,开启
hoodie.clean.async=true以减少commit过程的耗时; - Spark Streaming写入支持异步Compaction,可通过
hoodie.datasource.compaction.async.enable进行配置。 - 支持通过marker文件进行Rollback,而不再对全表进行listing,设置
hoodie.rollback.using.markers=true启用。 - 支持一种新的索引类型
hoodie.index.type=SIMPLE,对于updates/deletes覆盖表大多数数据的场景,会比BLOOM_INDEX更快。 - 支持
Azure Data Lake Storage V2,Alluxio和Tencent Cloud Object Storage - HoodieMultiDeltaStreamer 支持在单个DeltaStreamer中消费多个Kafka流,降低使用DeltaStreamer作为数据湖摄取工具时的运维负担。
- 新增新的工具类InitialCheckPointProvider,以便在迁移至DeltaStreamer后设置Checkpoint。
- DeltaStreamer工具支持摄取CSV数据源,同时可chain多个transformers来构建更灵活的ETL作业。
- 引入新的Key生成器
CustomKeyGenerator,对不同类型的Key、Partition路径提供更灵活的配置,另外在TimestampBasedKeyGenerator中还支持更多时间单位。更多详情请参考docs
3.2 查询端改进
- 自0.6.0版本起,Spark DataSource已可支持MoR表的SNAPSHOT功能。
- 在先前版本中,默认情况下仅限于对CoW表的支持,并采用
HoodieCombineHiveInputFormat格式以确保所有查询均只会产生有限数量的mappers。 - 现在,在针对MoR表时可采用
HoodieCombineInputFormat格式以扩大支持范围。 - 在HoodieROPathFilter组件中缓存MetaClient至加速Spark查询流程,在此过程中可减少S3环境中针对Read-Optimized查询进行文件过滤所需的额外开销。
- 在先前版本中,默认情况下仅限于对CoW表的支持,并采用
3.3 易用性提升
- 规范化命名Spark Directed Acyclic Graph(DAG)有助于提升调试效率。
-
用户可根据需求配置指标报告器,并且系统预置了Console、JMX、Prometheus以及DataDog等多种类型的报告器供选择使用。
-
引入了Data Snapshot Exporter这个新工具类,在该工具类的支持下可以将系统中某一特定时刻的Hudi表数据导出为Parquet格式文件。
-
在提交操作中集成写入提交回调机制,在每次提交时能够及时通知相关增量管道运行情况。例如,在新的提交操作完成后会触发一次Apache Airflow作业的任务执行。
-
系统现在支持通过命令行界面实现Savepoints对象的删除操作。
-
新增命令
export instants来导出instant元数据。
-
4. 贡献者
感谢以下贡献者,排名不分先后
hddong, xushiyan, wangxianghu, shenh062326, prashantwason, bvaradar, vinothchandar, baobaoyeye, andreitaleanu, clocklear , linshan-ma, satishkotha, Trevor-zhang, pratyakshsharma, GuoPhilipse, nsivabalan, zhedoubushishi, umehrot2, lw309637554, DeyinZhong, zherenyu831, lamber-ken, garyli1019, bhasudha, n3nash, yihua, liujinhui1994, sreeram26, Yungthuis, cheshta2904, leesf
全部评论 (0)
还没有任何评论哟~
