歷經大約3個月時間,Apache Hudi 社區終於發佈了0.5.1版本,這是Apache Hudi發佈的第二個Apache版本,該版本中一些關鍵點以下html
重要:Hudi 0.5.1版本須要將spark的版本升級到2.4+java
Hudi如今支持Scala 2.11和2.12,能夠參考Scala 2.12構建來使用Scala 2.12來構建Hudi,另外, hudi-spark, hudi-utilities, hudi-spark-bundle and hudi-utilities-bundle包名現已經對應變動爲 hudi-spark_{scala_version}, hudi-spark_{scala_version}, hudi-utilities_{scala_version}, hudi-spark-bundle_{scala_version}和 hudi-utilities-bundle_{scala_version}. 注意這裏的scala_version爲2.11或2.12。git
在0.5.1版本中,對於timeline元數據的操做再也不使用重命名方式,這個特性在建立Hudi表時默認是打開的。對於已存在的表,這個特性默認是關閉的,在已存在表開啓這個特性以前,請參考這部分(https://hudi.apache.org/docs/deployment.html#upgrading)。若開啓新的Hudi timeline佈局方式(layout),即避免重命名,可設置寫配置項hoodie.timeline.layout.version=1
。固然,你也能夠在CLI中使用repair overwrite-hoodie-props
命令來添加hoodie.timeline.layout.version=1
至hoodie.properties文件。注意,不管使用哪一種方式,在升級Writer以前請先升級Hudi Reader(查詢引擎)版本至0.5.1版本。github
CLI支持repair overwrite-hoodie-props
來指定文件來重寫表的hoodie.properties文件,可使用此命令來的更新表名或者使用新的timeline佈局方式。注意當寫hoodie.properties文件時(毫秒),一些查詢將會暫時失敗,失敗後從新運行便可。shell
DeltaStreamer用來指定表類型的參數從--storage-type
變動爲了--table-type
,能夠參考wiki來了解更多的最新變化的術語。apache
配置Kafka Reset Offset策略的值變化了。枚舉值從LARGEST變動爲LATEST,SMALLEST變動爲EARLIEST,對應DeltaStreamer中的配置項爲auto.offset.reset
。ide
當使用spark-shell來了解Hudi時,須要提供額外的--packages org.apache.spark:spark-avro_2.11:2.4.4
,能夠參考quickstart瞭解更多細節。工具
Key generator(鍵生成器)移動到了單獨的包下org.apache.hudi.keygen
,若是你使用重載鍵生成器類(對應配置項:hoodie.datasource.write.keygenerator.class
),請確保類的全路徑名也對應進行變動。oop
Hive同步工具將會爲MOR註冊帶有_ro後綴的RO表,因此查詢也請帶_ro後綴,你可使用--skip-ro-suffix
配置項來保持舊的表名,即同步時不添加_ro後綴。佈局
0.5.1版本中,供presto/hive查詢引擎使用的hudi-hadoop-mr-bundle
包shaded了avro包,以便支持real time queries(實時查詢)。Hudi支持可插拔的記錄合併邏輯,用戶只需自定義實現HoodieRecordPayload。若是你使用這個特性,你須要在你的代碼中relocate avro依賴,這樣能夠確保你代碼的行爲和Hudi保持一致,你可使用以下方式來relocation。
<relocation> <pattern>org.apache.avro.</pattern> <shadedPattern>org.apache.hudi.org.apache.avro.</shadedPattern> </relocation>
DeltaStreamer更好的支持Delete,可參考blog瞭解更多細節。
DeltaStreamer支持AWS Database Migration Service(DMS) ,可參考blog瞭解更多細節。
支持DynamicBloomFilter(動態布隆過濾器),默認是關閉的,可使用索引配置項hoodie.bloom.index.filter.type=DYNAMIC_V0
來開啓。
HDFSParquetImporter支持bulkinsert,可配置--command
爲bulkinsert
。
支持AWS WASB和 WASBS雲存儲。