本文以ClickHouse离线同步写入Hologres场景为例,为您介绍如何一次性把ClickHouse整个数据库的数据离线同步至Hologres。

使用限制

  • ClickHouse离线同步仅支持阿里云ClickHouse 20.8、21.8版本。
  • ClickHouse离线同步仅支持使用独享数据集成资源组。

准备独享数据集成资源组并与数据源网络连通

在进行数据同步前,需要完成您的独享数据集成资源组和数据源的网络连通,详情请参见配置网络连通

  • 如果您的独享数据集成资源组和数据源属于同一地域,可使用同地域VPC内网连通独享资源组和数据源。实现网络连通需要执行:
    1. 在DataWorks侧新增专有网络绑定和自定义路由。
    2. 在数据源侧添加数据库白名单。
  • 如果您的独享数据集成资源组和数据源属于不同地域,可使用公网连通独享资源组和数据源。实现网络连通需要执行:在数据源侧添加数据库白名单。

步骤1 新增专有网络绑定和自定义路由

说明 如果您使用公网连通独享资源组和数据源,可跳过此步骤。
  1. 新增专有网络绑定。
    1. 进入DataWorks管控台资源组列表页面,找到您要连通的独享数据集成资源组,单击资源组右侧的网络设置,进入资源组网络设置页面。
    2. 专有网络绑定页签下,单击新增绑定,在弹出的新增专有网络绑定窗口中,填写专有网络信息。
      • 专有网络:请选择数据源(ClickHouse或Hologre)所在的专有网络。
      • 可用区、交换机:优先选择数据源(ClickHouse或Hologre)所在的可用区和交换机;如果所在的可用区不可选择,则选择其他任意可用区和交换机。但您需要确保VPC网络跟数据源所在的VPC网络可连通。
      • 安全组:可以选择您名下任意自建安全组,但所选择的安全组需满足以下条件:
        • 安全组产品控制台查看安全组,访问规则的入方向允许放行ClickHouse集群HTTP端口(通常为8123)。
        • 安全组的授权对象网段包含上一步所选择的交换机网段。
  2. 添加自定义路由。
    说明 如果您在上述步骤中选择了数据源所在的可用区和交换机,可跳过此步骤。如果您选择了其他可用区和交换机,则需要参考以下指导进行自定义路由的操作。
    1. 进入DataWorks管控台资源组列表页面,找到您要连通的独享数据集成资源组,单击资源组右侧的网络设置,进入资源组网络设置页面。
    2. 专有网络绑定页签下,找到刚才绑定的专有网络记录,单击右侧的自定义路由
    3. 在弹出的自定义路由窗口,单击新增路由,填写路由信息,关键配置信息如下。
      • 目的VPC:选择数据源所在的地域和专有网络。
      • 目的Switch实例:选择数据源所在的交换机。

步骤2 添加数据库白名单

  1. 获取需要绑定的白名单IP。
    • 如果您使用VPC内网连通独享资源组和数据源,则白名单内填写的网段为独享资源组上专有网络绑定时选择的交换机所在网段。您可以在独享资源组列表页面单击网络设置按钮,在专有网络绑定页面找到交换机所在网段。独享绑定的交换机网段
    • 如果您使用公网连通独享资源组和数据源,则白名单为独享资源组的EIP地址。您可以在独享资源组列表页面单击查看信息按钮,获得EIP地址。查看独享资源组EIP
  2. 数据源绑定白名单。
    1. ClickHouse绑定白名单。
      进入ClickHouse产品控制台。找到您要进行数据同步的ClickHouse集群,在数据安全页面,单击添加分组白名单按钮。绑定白名单
    2. Hologres绑定白名单。
      进入Hologres产品控制台。找到您要进行数据同步的Hologres数据源,在安全中心页面,单击IP白名单按钮。holo

添加数据源

新建ClickHouse数据源

在DataWorks数据源管理页面,单击新建数据源,根据界面提示手动添加ClickHouse数据源。配置要点如下。
说明 您可以进入ClickHouse产品控制台,找到您要进行数据同步的ClickHouse集群,在集群信息页面获取ClickHouse集群的外网地址、内网地址、Http端口号、Vswitch ID、可用区等。
  • JDBC URL:格式为jdbc:clickhouse://<ip>:<port>/<dbname>,其中:
    • <ip>:需替换为您ClickHouse集群的内网地址或外网地址。
      • 如果您选择使用VPC内网连通独享资源组和ClickHouse,则此处填写ClickHouse内网地址。
      • 如果您选择使用公网连通独享资源组和ClickHouse,则此处填写ClickHouse外网地址。
    • <port>:需替换为您ClickHouse集群的HTTP端口号(通常为8123)。
    • <dbname>:需替换为您要同步的ClickHouse库名。
  • 用户名、密码:为对应ClickHouse库有访问权限的用户名和密码。
  • 测试连通性:选择您已经完成与ClickHouse网络连通的独享数据集成资源组,确保连通状态为可连通
    说明 完成上述步骤中的网络连通后,仅可实现ClickHouse与对应独享数据集成资源组的网络连通。如您期望完成ClickHouse与数据服务资源组、调度资源组的网络连通,需分别进行网络连通的配置与连通测试。

新建Hologres数据源

可通过绑定Hologres计算引擎自动添加Hologres数据源,或者手动添加Hologres数据源

创建同步任务

  1. 选择同步方案。
    创建同步解决方案任务,选择需要同步的源端数据源ClickHouse,目标端数据源Hologres,并选择整库离线同步方案。
  2. 配置网络连通。
    源端选择已创建的ClickHouse数据源,目标数据源为已创建的Hologres数据源,同步资源组选择已创建的独享数据集成资源组,单击测试所有连通性,待界面提示测试完成且所有连通状态均为网络连通,根据界面提示进行后续操作。
  3. 选择要同步的库表。
    您可根据在左侧选择同步的源表区域,选中ClickHouse中需要同步的源表,单击迁移图标,将其移动右侧已选库表区域。
  4. 目标表映射区域,全选目标表映射框中的表信息,单击批量刷新映射按钮。
    您还可以选中列表中的表信息,单击批量修改,配置如下信息。
    配置项描述
    目标表字段赋值支持为目标表添加常量,变量。
    目标Schema名映射自定义可以使用内置变量和手动输入的字符串拼接成为最终目标Schema名。其中,支持您编辑内置变量,例如,做字符串替换。
    目标表名映射自定义可以使用内置变量和手动输入的字符串拼接成为最终目标表名。其中,支持您编辑内置变量,例如,做字符串替换。
    是否有主键通过获取目标表的主键信息自动映射。
    • 如果是可视化建表,则可以单击目标表名列的编辑图标,编辑目标表结构选择主键,然后重新刷新表映射。
    • 如果目标表有主键,则系统会使用新数据覆盖旧数据,整行所有列全部覆盖,没有配置列映射的字段会强制写NULL。
  5. 编辑字段类型映射。
    在Hologres目标表为待建立的状态下,系统有一份默认的ClickHouse表转换到Hologres表的字段类型映射(如下表所示),您还可以单击右上角的编辑字段类型映射自定义字段类型映射。修改后单击应用并刷新映射
    类别ClickHouseHologres
    日期DateDate
    DateTimeTIMESTAMPTZ
    DateTime(timezone)TIMESTAMPTZ
    DateTime64TIMESTAMPTZ
    数值Int8SMALLINT
    Int16SMALLINT
    Int32INTEGER
    Int64BIGINT
    UInt8INTEGER
    UInt16INTEGER
    UInt32BIGINT
    UInt64BIGINT
    Float32FLOAT
    Float64DOUBLE PRECISION
    Decimal(P, S)DECIMAL
    Decimal32(S)DECIMAL
    Decimal64(S)DECIMAL
    Decimal128(S)DECIMAL
    布尔无,使用UInt8代替。BOOLEAN
    字符StringTEXT
  6. 高级参数配置。
    您可以单击右上角的高级参数配置,对同步任务读端与写端进行精细化配置,例如最大连接数、离线任务限流相关参数。
  7. 资源组配置。
    您可以在右上角的资源组配置处修改任务运行使用的独享数据集成资源组。
  8. 完成上述配置后,您可以单击完成配置,完成同步任务的创建。

执行同步任务

  1. 进入数据集成 > 同步任务界面,找到已创建的同步方案。
  2. 单击操作列的启动/提交执行按钮,启动同步的运行。
  3. 单击操作列的执行详情,查看任务的详细执行过程。

同步任务运维

查看任务运行状态

创建完成同步任务后,您可以在同步任务页面查看当前已创建的同步任务列表及各个同步任务的基本信息。同步任务列表
  • 您可以在操作列启动或停止某个同步任务,在更多中可以对同步任务进行编辑、查看详情等操作。
  • 已启动的任务您可以在执行概况中看到任务运行的基本情况,也可以单击对应的概况区域查看执行详情。执行详情

任务重跑

在某些特殊情况下,如果您需要增减表、修改目标表schema信息或者表名信息时,您还可以单击同步任务操作列的重跑,系统会将新增的表或有变更的表进行同步,之前同步过的表或者未修改的表将不会再进行同步。