本人使用canal + kafka + sparkstructedstreaming 将mysql数据同步至hudi,并将hudi与hive集成。
想利用hive查询hudi数据。
hudi 在hive中有两张表:
xxx_ro:历史(compact策略触发后能查询到的数据)
xxx_rt:实时
查询ro表发现更新数据未与历史数据合并
查询rt表为实时数据,但是无法使用count()
hudi在 hdfs以 log+parquet格式保存,更新数据存储至log
查看了官网的配置
.option(DataSourceWriteOptions.ASYNC_COMPACT_ENABLE.key(),"true")
.option(HoodieCompactionConfig.INLINE_COMPACT_TRIGGER_STRATEGY.key(),"NUM_OR_TIME")
.option(HoodieCompactionConfig.INLINE_COMPACT_NUM_DELTA_COMMITS.key(), "3")
.option(HoodieCompactionConfig.INLINE_COMPACT_TIME_DELTA_SECONDS.key(),"60")
尝试一下看看
2022-03-03
昨天试了spark-sql查 rt表 报错
2022-03-03 09:33:45
直接更新时compact
上面配置就都不要了
测试ro表数据 是“实时”更新数据