版本
FineDataLink 版本 | 功能变动 |
---|---|
4.2.1.4 | 数据开发-实时任务中的 DB 输出功能支持新增流的无主键插入,详情参见使用限制下的实时任务说明 |
使用限制
FineDataLink 支持连接 clickhouse ,进行定时任务读写和管道任务写入、实时任务写入。
数据开发-实时任务
当 DB表输出选择 clickhouse:
选择去向类型 | 说明 |
---|---|
已存在表 | 表类型为除 collapsingMergeTree 外的其他表引擎
|
表引擎为 collapsingMergeTree 时 字段映射:
写入方式:
| |
自动建表 | 仅支持 collapsingMergeTree 的逻辑 字段映射
写入方式:
|
1)当输出到除 collapsingMergeTree 外的其他表引擎时
将插入事件的数据直接插入到目标表
遇到删除事件、更新事件时则报错
2)当输出到 collapsingMergeTree 时,映射说明详情参见:clickhouse 作为写入端时字段映射说明
任务开发
配置数据连接
详情请参见:配置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'。