任务开发
配置数据连接
详情请参见:配置ClickHouse数据源
数据开发
详情请参见:数据开发概述
数据管道
详情请参见:数据管道概述
clickhouse 作为写入端时字段映射说明
当向目标表写入数据时,按照 collapsingMergeTree 表引擎进行写入。
选择去向类型 | 说明 |
---|---|
自动建表 | 使用 collapsingMergeTree 表引擎,将逻辑主键设置为 order by 字段 注:创建表时,来源表字段不能出现 sign ,会和标识增删改的 sign 字段重名导致同步失败。 |
已存在表 | 当选择已存在表时,只能选择由 collapsingMergeTree 表引擎创建的表,并且要指定 order by 字段,在逻辑主键一列中进行展示。 注:如果能获取表的 order by 字段,则支持设置已存在表为目标表,否则不支持设置为目标表。 |
clickhouse 作为目标端的写入逻辑为:
对于插入的数据,直接 insert,并标记其 sign 为 1
对于删除的数据,直接insert一条,逻辑主键的数据,并标记其sign为-1 如果是逻辑删除,insert 更新数据、sign 为 1 的数据即可
对于更新的数据, insert 更新数据、sign 为 1 的数据即可。
注:因为 collapsingMergeTree 表的合并不定时,所以使用实时同步的表时,需要在使用前手动触发一次合并,或者在查询 SQL 使用集合方式,计算时去除掉重复数据的影响。
方式一:直接在 SQL 中使用集合方式,集合示例如下所示:
select name, sum(order_amt*sign) as order_amt from default.test_version_collapsing
group by name
having sum(sign) > 0
方式二:在使用前触发一次合并,「OPTIMIZE TABLE test.ods_real_time_order FINAL」
方式三:直接在查询的 SQL 。select 表名后加 final ,比如 SELECT * FROM gbn_onl_mix.union_order_onl_all_test final WHERE dt = '2023-05-28'。