配置ClickHouse数据源

  • 产品级协助
  • 文档创建者:Fay
  • 历史版本:19
  • 最近更新:Wendy123456 于 2025-03-14
  • 1. 概述

    1.1 版本

     FineDataLink 版本功能变动
    3.2
    定时任务中支持读取 ClickHouse
    3.7
    定时任务支持写入 ClickHouse
    4.0.28管道任务支持写入 ClickHouse
    4.1.6.3数据服务支持 ClickHouse
    4.1.13.3
    数据开发-实时任务写入支持 ClickHouse
    4.2.1.4数据开发-实时任务中的 DB 输出功能支持新增流的无主键插入

    1.2 简介

    ClickHouse 是面向列的数据库管理系统(DBMS),用于对查询进行联机分析处理(OLAP)。

    FineDataLink 支持连接 ClickHouse,进行定时任务读写、管道任务写入、作为数据服务数据发布源、实时任务写入。

    注:ClickHouse 数据库的引擎需要是 Atomic 引擎,才支持写入时自动建表功能。

    2. 配置数据连接

    2.1 前提条件

    详情请参见:前提条件

    2.2 版本和驱动

    下载驱动,并将其上传至 FineDataLink,如何上传可参见:驱动管理 第 2 节。

    支持的数据库版本驱动下载
    20.1

    clickhouse

    22.6

    clickhouse4j-1.4.4-SNAPSHOT.jar


    2.3 具体连接步骤

    创建数据连接步骤请参见:创建并管理数据源

    配置数据连接时,驱动需要切换为「自定义」,换为本文 2.2 节的驱动。

    39.png

    3. 使用数据源

    3.1 数据开发-定时任务

    配置好数据源后即可在「定时任务」中使用数据源,详情参见:数据开发概述

    3.2 数据开发-实时任务

    当 DB表输出选择 clickhouse:

    选择去向类型说明
    已存在表

    表类型为除 collapsingMergeTree 外的其他表引

    • 字段映射处,不展示主键列

    • 写入方式处,不支持配置主键映射,不支持配置逻辑删除

    表引擎为 collapsingMergeTree 

    字段映射:

    • 展示该表的排序键,即order by字段

    • 展示该表声明的sign字段,且该字段不能配置与来源表字段的映射关系

    • 当选择的表没有排序键时,报错:该表没有声明排序键,不支持写入

    写入方式:

    • 直接使用排序键配置进行映射,不支持自定义

    • 支持配置逻辑删除

    自动建表

    仅支持 collapsingMergeTree 的逻

    字段映射

    • 用户手动设置排序键,且必须配置排序键

    • 自动添加一个字段为sign字段,且该字段不能配置与来源表字段的映射关系在字段行中用提示 icon对sign字段进行说明:用于 clickhouse 表引擎进行数据合并

    写入方式:

    • 直接使用排序键配置进行映射,不支持自定义

    • 支持配置逻辑删除

      1)当输出到除 collapsingMergeTree 外的其他表引擎时:

      • 将插入事件的数据直接插入到目标表。

      • 遇到删除事件、更新事件时则报错。

      2)当输出到 collapsingMergeTree 时,映射说明详情参见本文 3.3 节内容。

      3)目标端使用已存在表时,表中需要有_fdl_sign字段来标记删除情况。

      3.3 数据管道

      配置好数据源后即可在「数据管道」中将使用数据源,详情参见:数据管道概述

      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'。

      3.4 数据服务

      配置好数据源后即可在「数据服务」中将使用数据源,详情参见:数据服务概述



      附件列表


      主题: 配置数据源
      • 有帮助
      • 没帮助
      • 只是浏览
      中文(简体)

      鼠标选中内容,快速反馈问题

      鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

      不再提示

      9s后关闭



      AI

      联系我们
      在线支持
      获取专业技术支持,快速帮助您解决问题
      工作日9:00-12:00,13:30-17:30在线
      页面反馈
      针对当前网页的建议、问题反馈
      售前咨询
      采购需求/获取报价/预约演示
      或拨打: 400-811-8890 转1
      qr
      热线电话
      咨询/故障救援热线:400-811-8890转2
      总裁办24H投诉:17312781526
      提交页面反馈
      仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持

      反馈已提交

      网络繁忙