转载

035-解决streamsets jdbc全量模式数据重复问题

这是坚持技术写作计划(含翻译)的第35篇,定个小目标999,每周最少2篇。

本文主要解决在使用streamsets的JDBC Query Consumer Origin组件消费时,使用全量模式(Full Mode),数据重复问题。

在之前一篇《 033-史上最全-mysql迁移到clickhouse的5种办法 》中,有介绍如何使用JDBC Query Consumer全量导出,但是有人反馈因为streamsets的管道(pipeline)一直在重复运行,导致最后数据是重复的。

实际上在官方文档有讲 Full and Incremental Mode

035-解决streamsets jdbc全量模式数据重复问题

主要看提示(Tip)部分,如果只想执行一次查询后就停止pipeline,应该配置origin的generate events 并且使用Pipeline Finisher来自动停止pipeline,更多信息参见 Event Generation.

在jdbc origin勾选 Produce Events

035-解决streamsets jdbc全量模式数据重复问题

从组件选则Pipeline Finisher,并且配置 Preconditions 为 ${record:eventType() == 'no-more-data'} 即可

035-解决streamsets jdbc全量模式数据重复问题
原文  https://anjia0532.github.io/2019/07/22/sdc-jdbc-full-mode/
正文到此结束
Loading...