1.实现原理

基于datax同步功能,datax-web增量功能,clickhouse的ReplacingMergeTree分区合并功能实现增量同步(包含单条数据的修改后同步)

2.前置条件

datax没有clickhousewriter插件,需要下载插件并反正plugin的writer目录下
clickhousewriter插件下载(为了方便下载,已上传至csdn)
在这里插入图片描述

3.实现方案

1.基于datax_web的增量功能
时间戳参数

-DlastTime=%s -DcurrentTime=’%s’

在这里插入图片描述

2.增量同步数据到clickhourse,涉及到单条数据的更新
https://clickhouse.com/docs/zh/engines/table-engines/mergetree-family/replacingmergetree/

DROP TABLE IF EXISTS tms.datax_test_incr;
CREATE TABLE tms.datax_test_incr (
	id BIGINT,
	name VARCHAR(100),
	update_time_stamp TIMESTAMP
) ENGINE = ReplacingMergeTree(update_time_stamp)
PARTITION BY toYYYYMM(update_time_stamp)
PRIMARY KEY id
ORDER BY id

//手动合并分区
optimize table datax_test_incr final;

//查询去重
select * from datax_test_incr final;


dataxweb配置

    "postSql": [
      "optimize table datax_test_incr final"
    ],

在这里插入图片描述

4.实现后效果

在这里插入图片描述

更多推荐