本人使用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表数据 是“实时”更新数据

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐