开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

MySQL CDC 读取数据到第一层hudi表,再从第一层hudi表分组聚合运算加载到第二层hudi

MySQL CDC 读取数据到第一层hudi表,再从第一层hudi表分组聚合运算加载到第二层hudi吧,这时候始终无法自动处理回撤,大家是怎么实现的呢?

展开
收起
十一0204 2023-04-11 09:46:29 322 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    首先,变更数据捕获 (CDC) 工具不是为了处理回撤而设计的,它主要用于捕获数据库中的更改并将其应用于目标系统。但是,在处理CDC数据时,可以应用一些策略来减少回撤的影响:

    目标表设定合适的主键 对于每个表,应该设定一个唯一的主键,这可以帮助保证目标表中没有重复数据。当然,你也可以依赖Hudi自身的merge-on-read功能进行去重。

    使用合适的CDC工具和策略 在选择CDC工具时,可以使用一些具有可靠CDC能力的工具,如Debezium、Maxwell等,这些工具提供了事务级别的变更捕获和处理,并能够向下推送变更事件。

    此外,合理的CDC策略也可以减小回撤造成的影响。比如采用增量更新的方式,只将增量更新应用于目标系统,而不是全量更新。

    客户端数据处理 除了CDC工具和策略,您还可以通过一些客户端数据处理方法来降低回撤的问题。例如,可以使用插入批处理或基于时间戳的条件更新等方法,对数据进行处理。

    总之,在处理MySQL CDC数据时,需要结合CDC工具、技术和策略来减少回撤的影响,并在数据处理过程中进行适当的优化和改进来达到更好的效果。

    2023-04-17 16:40:20
    赞同 展开评论 打赏
  • 坚持这件事孤独又漫长。

    可以通过以下两种方式来实现:

      1. 设置Hudi表的“keepDeletes"参数为“true”

      在创建或更新Hudi表时,可以通过设置"keepDeletes"参数为"true",来指示Hudi在加载数据时保留删除操作。在聚合数据时,如果有任何旧值被删除,则新的聚合值将覆盖他们。

      1. 自定义Hudi表的合并策略

      Hudi提供了自定义合并策略的功能,可以在合并数据时对数据进行更灵活的处理。可以针对表中的每个分区定义自定义合并策略,并根据需要处理回撤操作。具体的实现方式可以参考Hudi官方文档中的合并策略示例。

    需要注意的是,在使用Hudi处理回撤数据时,需要在源系统或者ETL工具中保留完整的历史数据记录,以便后续的数据加载和聚合操作。

    2023-04-11 10:34:22
    赞同 展开评论 打赏

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

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像