Apache Hudi 0.6.0版本重磅釋出

leesf發表於2020-08-26

1. 下載資訊

2. 遷移指南

  • 如果您從0.5.3以前的版本遷移至0.6.0,請仔細核對每個版本的遷移指南;
  • 0.6.0版本從基於list的rollback策略變更為了基於marker檔案的rollback策略,為進行平穩遷移,會在hoodie.properties檔案中配置一個新屬性hoodie.table.version;無論何時使用Hudi表新版本,如1(從0.6.0以前遷移到0.6.0),將會自動進行升級,並且只會對Hudi表升級一次,升級後hoodie.table.version屬性將會自動更新。
  • 類似也提供了一個降級命令列工具(-downgrade),如使用者想從0.6.0版本回退到之前的版本,此時hoodie.table.version將會從1變為0。
  • 如果你在bulkInsert() RDD API中使用了自定義partitioner,注意0.6.0版本中該介面變為了BulkInsertPartitioner,需要對你的實現做適配。

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表,Hudi僅僅支援HoodieCombineHiveInputFormat來確保對於任何查詢都只會生成有限數量的mappers。Hudi現在對MoR表支援使用HoodieCombineInputFormat
  • 在HoodieROPathFilter中快取MetaClient來加速Spark查詢,這可以減少在S3上對Read-Optimized查詢進行檔案過濾的額外開銷。

3.3 易用性提升

  • 對Spark DAG賦名字以便更好的進行除錯。
  • 支援使用者自定義可插拔指標報告者,另外內建Console,JMX,Prometheus,DataDog指標報告者。
  • 新增Data Snapshot Exporter工具類,通過該工具類可將某一時刻的Hudi表匯出為Parquet檔案。
  • 引入寫入提交回撥鉤子,以便在Commit時可以通知增量pipelines,例如在新的commit到來後觸發Apache Airflow作業。
  • 支援通過CLI刪除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](

相關文章