cdc 同步数据至hudi并映射为hive外表,compact过程中hive中的表为何短暂性不可查?

cdc 同步数据至hudi并映射为hive外表,hudi会进行数据compact,compact过程中hive中的表会存在短暂性不可查,这类问题是否有解决方案 ?

展开
收起
wenti 2023-02-13 15:21:09 249 分享 版权
1 条回答
写回答
取消 提交回答
  • 在使用 Change Data Capture (CDC) 同步数据到 Hudi 并映射为 Hive 外表时,在 Hudi 执行 compaction 过程中,Hive 中的表可能会出现短暂性不可查的情况。这是因为:

    Hudi compaction 会生成新的文件:当 Hudi 执行 compaction 时,它会生成新的数据文件,其中包含经过合并和优化后的数据。
    Hive 外表指向旧文件:Hive 外表最初指向 Hudi 中的原始数据文件。当 compaction 发生时,Hive 外表尚未更新以指向新的数据文件。
    Hive 缓存:Hive 会缓存表元数据,包括指向数据文件的位置。在 compaction 期间,Hive 缓存可能不会立即更新,导致 Hive 继续指向旧的数据文件。
    因此,在 compaction 过程中,Hive 可能无法找到最新的数据文件,从而导致表暂时不可查。

    解决方法:

    有几种方法可以解决这个问题:

    使用增量刷新:使用增量刷新,Hive 外表会在每次 CDC 同步后更新,以指向最新的数据文件。这可以最大限度地减少 compaction 期间表不可查的时间。
    手动刷新 Hive 元数据:在 compaction 完成后,可以手动刷新 Hive 元数据,以强制 Hive 识别新的数据文件。可以使用以下命令:
    MSCK REPAIR TABLE ;
    使用 Hive 的 LLAP:Hive 的 LLAP(低延迟分析协议)功能可以减少缓存问题的影响。LLAP 会在查询时动态加载数据文件,而不会依赖于缓存。
    注意:

    compaction 的持续时间和 Hive 表不可查的程度取决于数据量和 Hudi 配置。
    频繁的 compaction 或大规模的数据更新可能会导致更长的不可查时间。

    2024-02-26 16:21:52
    赞同 展开评论

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理