Advertisement

Apache Hudi 0.6.0版本重磅发布

阅读量:

1. 下载信息

2. 迁移指南

  • 若您计划从旧版(如 0.5.x)升级至新版本(如 1.x),请务必查阅最新的迁移指南。
    • 新版系统采用 marker 文件作为回滚策略,并在 hoodie.properties 中新增 hoodie.table.version 属性以辅助记录环境信息。
      在应用 Hudi 表的新版时,默认会自动完成升级操作,并仅执行一次表级别升级。升级完成后将自动更新 hoodie.table.version 属性。
    • 系统还提供降级功能(-downgrade 命令),允许用户将当前环境切换至旧版状态时会重置 hoodie.table.version 属性为初始值。
    • 在使用自定义 partitioner 的情况下请注意:自 1.x 版本起,默认参数已更改,请确保现有代码与新接口兼容。

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 V2AlluxioTencent 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查询进行文件过滤所需的额外开销。

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)

还没有任何评论哟~