You need to enable JavaScript to run this app.
导航
PostgreSQL_to_ByteHouse 云数仓版实时整库同步
最近更新时间:2024.06.21 17:41:57首次发布时间:2024.06.21 17:41:57

一键实时整库同步方案支持全增量一体化同步,本实践中,先将 PostgreSQL 源端全量数据通过离线任务同步方式迁移,然后再通过实时同步增量任务,将增量数据采集至目标端 ByteHouse 云数仓版(ByteHouse CDW)数据库表中。
本文为您介绍如何创建一键实时同步,将全量和增量数据同步至 ByteHouse CDW 数据库中。

1 前置操作

  1. 已开通并创建 DataLeap 项目,创建的全量增量任务均会同步到该项目下。详见新建项目
  2. 已创建合适资源规格的独享数据集成资源组,并将其绑定至创建成功的 DataLeap 项目下。购买操作详见资源组管理,项目绑定操作详见数据集成资源组
  3. 已开通全域数据集成(DataSail)产品。详见服务开通

2 注意事项

  1. 目标端 ByteHouse CDW 库需要提前在集群中先创建好,暂不支持在解决方案中自动创建。创建 ByteHouse 数据库,详见数据库表及视图
  2. 目前支持读写的 PostgreSQL 可选版本为 PostgreSQL 10、11、12、13、14,配置解决方案通道时,需注意以上 PostgreSQL 版本要求。

3 数据同步解决方案

3.1 数据源配置

3.1.1 PostgreSQL 数据源配置(源端)

在配置实时整库同步解决方案前,您需在数据源管理界面中,配置来源端 PostgreSQL 数据源。详见 PostgreSQL 数据源配置

3.1.2 ByteHouse CDW 数据源配置(目标端)

在配置实时整库同步解决方案前,您需在数据源管理界面中,配置目标端 ByteHouse CDW 数据源。详见 ByteHouse云数仓版 数据源配置

注意

ByteHouse CDW 数据源在配置解决方案时必须配置 API token 信息。

ByteHouse 云数仓版网络配置方式:

网络配置方式

操作方式

火山引擎内网

ByteHouse CDW 支持通过 VPC 内网形式访问连接,主账号需进入 ByteHouse CDW 租户管理界面绑定相关网络信息。操作流程如下:

  1. 主账号登录 ByteHouse CDW 控制台
  2. 在上方导航栏中,切换至租户管理界面。
  3. 网络信息 > 私网域名处,单击绑定按钮,并在右侧弹窗中完成绑定私网操作。
  4. 绑定私网时选择的 VPC、子网、安全组等信息,需和独享集成资源组中绑定的网络信息保持一致,以保障与独享集成资源组网络互通

更多绑定操作,详见设置网络信息

说明

  • ByteHouse CDW 服务中,私有网络仅可绑定一次,绑定后不可修改,需谨慎选择。
  • 若 ByteHouse CDW 服务绑定的私网信息与独享集成资源组网络信息存在不同的 VPC 情况时,您需额外通过云企业网VPN 连接方式,来实现不同 VPC 间的网络互通。

3.2 新建数据实时整库同步

数据源配置操作准备完成后,您可开始进行实时整库同步方案配置:

  1. 登录 DataSail 控制台
  2. 在左侧导航栏中选择数据同步方案,进入同步方案配置界面。
  3. 单击目录树中项目选择入口,选择已创建的 DataLeap 项目。
  4. 单击右上角新建数据同步解决方案按钮,下拉选择实时整库同步按钮,进入整库实时同步方案配置界面。按照以下配置,完成方案新建。

3.2.1 基本配置

基本配置参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项

说明

*方案名称

输入整库实时同步方案名称,如 PostgreSQL2BHCDW。只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需在127个字符以内。

方案描述

输入此方案的描述信息,方便后续维护管理。

*保存至

下拉选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理

*链路类型

下拉选择来源和目标端数据源类型,此处来源类型选择 PostgreSQL,目标数据源类型选择 ByteHouse 云数仓版。

方案基本配置完成后,单击右下角下一步按钮,进行方案的数据来源配置。

3.2.2 数据来源配置

在数据来源配置界面中,完成数据来源设置与库表映射规则匹配策略:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项

说明

数据源设置

*数据源

下拉选择数据源管理中创建的 PostgreSQL 数据源。若此前仍未创建相应数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。

*表选择模式

支持通过指定表或正则方式进行表的选择,本文通过指定表模式来实践:

  • 指定表:您可通过数据库 > Schema > 数据表路径,手动指定选择一个库中的部分表进行实时同步。

    说明

    指定表模式,后续无法自动响应新增表 DDL 消息。

  • 正则:您可通过正则匹配的方式,监控指定库,并同步对应库下所有符合规则的表。

*数据表

在左侧您可选择 PostgreSQL 数据库:

  1. 以整库,或单表多表形式展开进行勾选。

    说明

    1. 暂不支持同时选择多个数据库下的表。
    2. 数据库下没有表存在时,不支持勾选同步。
  2. 单击中间添加图标,将已选择的库表,添加至已选列表中,同理,您也可以通过撤回图标,撤回已选中的表。
  3. 此处选择已创建的成功并插入数据的表:datasail_pg_demo_four10

映射规则

*库表匹配策略

选择与来源库表同名的匹配策略:

  • 与来源库表同名:来源库表选择完成后,解决方案默认将目标端的库表名称,与源端库表信息同名。
  • 自定义:您也可通过自定义匹配方式,设置源端与目标库表的匹配策略,配置方式详见“库表映射规则说明”。 此处选择已在 ByteHouse 云数仓版控制台已创建成功的数据库名称:dts_test

说明

目前 ByteHouse 目标端暂不支持自动创建目标数据库,您需先在目标端 ByteHouse CDW 集群中创建目标库。

数据来源配置完成后,单击右下角下一步按钮,进行方案的数据缓存配置。

3.2.3 数据缓存配置

使用缓存,可对同步任务进行缓冲,在性能和稳定性上有所提升,适合对稳定性要求高以及数据量大的场景,但需额外增加缓存数据源及相应成本,请按需配置。
整库实时同步解决方案,目前支持“使用缓存”、“无需缓存,直接同步”这两种缓存配置方式。本次 PostgreSQL2ByteHouse_CDW 通道中,目前仅支持“无需缓存,直接同步”方式,单击右下角下一步按钮,进入数据目标设置。

3.2.4 数据目标设置

在数据目标配置界面中,完成数据源目标端设置与映射相关配置:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项

说明

数据源设置

*数据源

下拉选择数据源管理中创建成功的 Bytehouse CDW 数据源。
若此前仍未创建相应数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。

映射配置

高级配置

使用已有表配置

当目标表已存在,即下方“表建立方式”为“使用已有表”时,若此时源表与目标表中已有字段列不一致时,可通过列匹配规则,根据实际场景进行列映射规则设置,目前支持自动映射、同名取交映射两种匹配规则配置:

  • 自动映射:默认映射规则,字段列不一致时,提示目标检查异常。
  • 同名取交映射:字段列不一致时,仅同名映射匹配到的字段进行数据同步,未匹配到的字段不做同步,任务正常执行。

高级参数配置

您可为同步解决方案配置全局的高级参数,以 key-value 的形式输入。

*刷新源表和目标表映射

单击刷新源表和目标表映射按钮,自动加载源表和目标表信息,您可以在列表中进行以下操作:

  • 全量同步:打开全量同步按钮,同步解决方案将创建全量离线任务和实时增量任务,进行历史全量数据和增量数据的同步。
  • 查看字段信息:可以查看来源表 datasail_pg_demo_four10、目标同名表的字段名和其对应的字段类型等信息。

数据目标配置完成后,单击右下角下一步按钮,进行方案运行参数配置。

3.2.5 DDL 策略配置

PostgreSQL2ByteHouse_CDW 解决方案通道,暂不支持配置 DDL 策略,后续敬请期待。其余通道支持能力详见解决方案 DDL 策略配置
DDL 策略配置完成后,单击右下角下一步按钮,进行任务运行配置。

3.2.6 运行配置

  1. 离线全量同步
    其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    配置项

    说明

    *离线集成任务资源组

    下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组:

    • 选择的资源组,需要确保能与源端、目标端数据源连通,您可单击右侧的连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。
    • 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理

    *默认 Quota 数

    设置可同时提交执行的集成任务数量,可根据独享集成资源组规格进行配置,如资源组的大小为 40CU,则 Quoto 配置需必须小于 20(40/2),否则会因资源问题导致任务执行时异常。

    *期望最大并发数

    设置离线任务同步时,可以从源端并行读取或并行写入目标端的最大线程数。
    并发数影响数据同步的效率,并发设置越高对应资源消耗也越多,由于资源原因或者任务本身特性等原因,实际执行时并发数可能小于等于设置的期望最大并发数。

    集成高级参数设置

    打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入离线任务所需的高级参数。支持参数详见高级参数

  2. 实时增量同步
    设置解决方案中实时增量任务的运行参数情况。
    其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    配置项

    说明

    *实时集成任务资源组

    下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组,选择的资源组,需要确保能与源端、目标端数据源连通,您可单击右侧的连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。

    *资源设置

    可通过自定义和默认两种设置方式,进行实时任务运行资源的设定,如单TaskManager CPU数量、单TaskManager内存大小、JobManager CPU数量等。

    说明

    默认设置中,各运行资源设置如下:

    • 单 TaskManager CPU 数:2
    • 单 TaskManager 内存:4096 MB
    • 单 TaskManager slot 数:4
    • JobManager CPU 数:1
    • JobManager 内存:2048 MB

    集成高级参数设置

    打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入实时任务所需的高级参数。支持参数详见高级参数

    Flink 运行参数设置

    支持输入 Flink 相关的动态参数和执行参数,具体参数设置详见 Flink 官方文档

  3. 调度设置
    选择全量离线任务运行时所使用的调度资源组,主要用来支持离线全量任务执行时,将任务下发分配至独享数据集成资源组中运行,即离线集成任务需调度资源组独享数据集成资源组来共同承载任务的运行。
    目前调度资源组仅支持选择公共调度资源组

  4. 提交方案
    方案运行配置完成后,单击右下角提交方案按钮,进行方案的提交,在弹窗中,勾选方案立即执行,并单击确定按钮,完成实时数据同步解决方案的创建。

4 执行详情查看

方案创建完成后,进入到方案列表界面,便可查看方案的执行概况。

  1. 单击运维操作列的执行详情按钮,进入解决方案执行详情界面:

  2. 在执行详情界面,等待所有步骤执行完成,您可根据步骤完成情况,查看各个步骤的执行详情:

    1. 您可在“一次性全量批任务启动”步骤执行详情中,查看批式任务的运维与执行日志情况。批式任务运维操作详见离线任务运维

    2. 在“增量流任务启动”步骤详情中,查看增量流式任务的运维、执行日志和 Application Url 等任务详情。

    3. 单击更多 > Application Url 按钮,进入查看增量流式任务的执行详情,您可在该界面中看到实时同步成功数据量、失败数据量、数据量大小等详情。

5 数据验证

一次性全量批任务和增量流任务执行成功后,您可前往 ByteHouse云数仓版目的端数据库中,验证数据的实时接收情况。

  1. 前往 ByteHouse 控制台 ,进入 SQL 工作表页签,详见 SQL工作表 使用说明。

  2. 在 SQL 编辑器窗口中,选择可运行的 ByteHouse 云数仓版计算组。

  3. 执行以下语句,查询对应表数据进行验证:

    SELECT * from `dts_test`.`datasail_pg_demo_four10`;
    

6 监控报警配置

数据验证无误后,您可以对已创建的任务进行管理,如同步方案的编辑、重启、暂停、添加任务监控等操作。
DataSail 实时任务报警设置最佳实践