一键实时整库同步方案支持全增量一体化同步,本实践中,先将 Mongo 源端全量数据通过离线任务同步方式迁移,然后再通过实时同步增量任务,将增量数据采集至目标端 ByteHouse 云数仓版(ByteHouse CDW)数据库表中。
本文为您介绍如何创建一键实时同步,将全量和增量数据同步至 ByteHouse CDW 数据库中。
mongo配置如下:
// 必须 MongoDB 6.0+(6.0 才正式支持 pre-image)。
// 连接 primary 节点,在 admin 库执行
// 黄色部分需要替换成自己的数据表
use admin;
db.runCommand({
collMod: "users_chenchen",
changeStreamPreAndPostImages: { enabled: true }
})
DataSail 任务集成高级参数配置如下:
job.reader.mongodb_full_document_before_change_enabled=true
在配置实时整库同步解决方案前,您需在数据源管理界面中,配置来源端 Mongo 数据源。详见 Mongo 数据源配置。
在配置实时整库同步解决方案前,您需在数据源管理界面中,配置目标端 ByteHouse CDW 数据源。详见 ByteHouse云数仓版 数据源配置。
:::tip
ByteHouse CDW 数据源在配置解决方案时必须配置 API token 信息。
:::
ByteHouse 云数仓版网络配置方式
| | | \
| 网络配置方式 | 操作方式 |
|---|---|
| 火山引擎内网 | ByteHouse CDW 支持通过 VPC 内网形式访问连接,主账号需进入 ByteHouse CDW 租户管理界面绑定相关网络信息。操作流程如下: |
| 1. 主账号登录 ByteHouse CDW 控制台。 | |
| 2. 在上方导航栏中,切换至租户管理界面。 | |
| 3. 在网络信息 > 私网域名处,单击绑定按钮,并在右侧弹窗中完成绑定私网操作。 | |
| 4. 绑定私网时选择的 VPC、子网、安全组等信息,需和独享集成资源组中绑定的网络信息保持一致,以保障与独享集成资源组网络互通 | |
| 更多绑定操作,详见设置网络信息。 | |
| :::tip | |
| * ByteHouse CDW 服务中,私有网络仅可绑定一次,绑定后不可修改,需谨慎选择。 | |
| * 若 ByteHouse CDW 服务绑定的私网信息与独享集成资源组网络信息存在不同的 VPC 情况时,您需额外通过云企业网或 VPN 连接方式,来实现不同 VPC 间的网络互通。 | |
| ::: |
数据源配置操作准备完成后,您可开始进行实时整库同步方案配置:
基本配置参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
| | | \
| 配置项 | 说明 |
|---|---|
| *方案名称 | 输入整库实时同步方案名称,如 Mongo2BHCDW。只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需在127个字符以内。 |
| 方案描述 | 输入此方案的描述信息,方便后续维护管理。 |
| *保存至 | 下拉选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理。 |
| *链路类型 | 下拉选择来源和目标端数据源类型,此处来源类型选择 Mongo,目标数据源类型选择 ByteHouse 云数仓版。 |
方案基本配置完成后,单击右下角下一步按钮,进行方案的数据来源配置。
在数据来源配置界面中,完成数据来源设置与库表映射规则匹配策略:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
| | | \
| 配置项 | 说明 |
|---|---|
| 数据源设置 | |
| *数据源 | 下拉选择数据源管理中创建的 Mongo 数据源。若此前仍未创建相应数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。 |
| *表选择模式 | 支持通过指定表或正则方式进行表的选择,本文通过正则模式来实践: |
| * 指定表:您可通过手动指定选择一个库中的部分集合进行实时同步。 | |
| :::tip | |
| 指定表模式,后续无法自动响应新增表 DDL 消息。 | |
| ::: | |
| * 正则:您可通过正则匹配的方式,监控指定库,并同步对应库下所有符合规则的表。 | |
| *源库、源集合选择限定条件 | 正则模式选择时,您可通过设置源库、源集合的限定条件,来获取源表信息。 |
|  | |
| 单击添加规则按钮,完成限定条件规则的添加,源集合条件支持添加多个规则,取合集; | |
| * 限定条件:您可通过指定源库、源集合的名称来限定,其中源集合也可通过正则表达式匹配的方式,快速获取源端库表信息。 | |
| * 类型:依据限定条件中输入的条件,下拉选择匹配的类型,支持正则和个例类型配置。 | |
| :::tip | |
| 实时整库同步解决方案,同时仅支持一个库的同步,因此源库选择时,仅支持个例类型配置,且不支持删除操作。 | |
| ::: | |
| * 删除:您也可以单击操作列下的删除按钮,完成规则删除。 | |
| 集合 | 单击获取源集合按钮,平台根据源库、源集合限定条件的设置,自动加载符合条件的表/集合。 |
| :::warning | |
| * 选择的多个集合,需保证其 Schema 信息一致(包括字段名称、字段类型)。 | |
| * 数据字段模块内系统默认展示第一个数据源中第一张表的元数据字段信息,若多表间字段不一致可能会导致运行失败。 | |
| ::: | |
| 映射规则 | |
| *库表匹配策略 | 选择与来源库表同名的匹配策略: |
| * 与来源库表同名:来源库表选择完成后,解决方案默认将目标端的库表名称,与源端库表信息同名。 | |
| * 自定义:您也可通过自定义匹配方式,设置源端与目标库表的匹配策略,配置方式详见“9 库表映射规则说明”。 此处选择已在 ByteHouse 云数仓版控制台已创建成功的数据库名称:dts_test | |
| :::tip | |
| 目前 ByteHouse 目标端暂不支持自动创建目标数据库,您需先在目标端 ByteHouse CDW 集群中创建目标库。 | |
| ::: |
数据来源配置完成后,单击右下角下一步按钮,进行方案的数据缓存配置。
使用缓存,可对同步任务进行缓冲,在性能和稳定性上有所提升,适合对稳定性要求高以及数据量大的场景,但需额外增加缓存数据源及相应成本,请按需配置。
整库实时同步解决方案,目前支持“使用缓存”、“无需缓存,直接同步”这两种缓存配置方式:
本次实例中,以“无需缓存,直接同步”方式进行实时同步,确认数据缓存同步方式后,单击右下角下一步按钮,进入数据目标设置。
在数据目标配置界面中,完成数据源目标端设置与映射相关配置:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
| | || \
| 配置项 | 说明 | |
|---|---|---|
| 数据源设置 | ||
| *数据源 | 下拉选择数据源管理中创建成功的 Bytehouse CDW 数据源。 | \ |
| 若此前仍未创建相应数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。 | ||
| 映射配置 | ||
| 高级配置 | 使用已有表配置 | 当目标表已存在,即下方“表建立方式”为“使用已有表”时,若此时源表与目标表中已有字段列不一致时,可通过列匹配规则,根据实际场景进行列映射规则设置,目前支持自动映射、同名取交映射两种匹配规则配置: |
| * 自动映射:默认映射规则,字段列不一致时,提示目标检查异常。 | ||
| * 同名取交映射:字段列不一致时,仅同名映射匹配到的字段进行数据同步,未匹配到的字段不做同步,任务正常执行。 | ||
| ^^ | ||
| 高级参数配置 | 您可为同步解决方案配置全局的高级参数,以 key-value 的形式输入。 | |
| *刷新源表和目标表映射 | 单击刷新源表和目标表映射按钮,自动加载源表和目标表信息,您可以在列表中进行以下操作: | \ |
| \ | ||
| * 全量同步:打开全量同步按钮,同步解决方案将创建全量离线任务和实时增量任务,进行历史全量数据和增量数据的同步。 | \ | |
| * 查看字段信息:可以查看来源表 dts_mongo_test、目标同名表的字段名和其对应的字段类型等信息。 |
数据目标配置完成后,单击右下角下一步按钮,进行方案运行参数配置。
Mongo2ByteHouse_CDW 解决方案通道,所有 DDL 消息均只支持忽略变更的策略,即暂不支持配置 DDL 策略,后续敬请期待。其余通道支持能力详见解决方案 DDL 策略配置。
DDL 策略配置完成后,单击右下角下一步按钮,进行任务运行配置。
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
| | | \
| 配置项 | 说明 |
|---|---|
| *离线集成任务资源组 | 下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组: |
| * 选择的资源组,需要确保能与源端、目标端数据源连通,您可单击右侧的连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。 | |
| * 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理。 | |
| *默认 Quota 数 | 设置可同时提交执行的集成任务数量,可根据独享集成资源组规格进行配置,如资源组的大小为 40CU,则 Quoto 配置需必须小于 20(40/2),否则会因资源问题导致任务执行时异常。 |
| *期望最大并发数 | 设置离线任务同步时,可以从源端并行读取或并行写入目标端的最大线程数。 |
| 并发数影响数据同步的效率,并发设置越高对应资源消耗也越多,由于资源原因或者任务本身特性等原因,实际执行时并发数可能小于等于设置的期望最大并发数。 | |
| 集成高级参数设置 | 打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入离线任务所需的高级参数。支持参数详见高级参数。 |
设置解决方案中实时增量任务的运行参数情况。
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
| | | \
| 配置项 | 说明 |
|---|---|
| *实时集成任务资源组 | 下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组,选择的资源组,需要确保能与源端、目标端数据源连通,您可单击右侧的连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。 |
| *资源设置 | 可通过自定义和默认两种设置方式,进行实时任务运行资源的设定,如单TaskManager CPU数量、单TaskManager内存大小、JobManager CPU数量等。 |
| :::tip | |
| 默认设置中,各运行资源设置如下: | |
| * 单 TaskManager CPU 数:2 | |
| * 单 TaskManager 内存:4096 MB | |
| * 单 TaskManager slot 数:4 | |
| * JobManager CPU 数:1 | |
| * JobManager 内存:2048 MB | |
| ::: | |
| 集成高级参数设置 | 打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入实时任务所需的高级参数。支持参数详见高级参数。 |
| Flink 运行参数设置 | 支持输入 Flink 相关的动态参数和执行参数,具体参数设置详见 Flink 官方文档。 |
方案创建完成后,进入到方案列表界面,便可查看方案的执行概况。
一次性全量批任务和增量流任务执行成功后,您可前往 ByteHouse云数仓版目的端数据库中,验证数据的实时接收情况。
前往 ByteHouse 控制台 ,进入 SQL 工作表页签,详见 SQL工作表 使用说明。
在 SQL 编辑器窗口中,选择可运行的 ByteHouse 云数仓版计算组。
执行以下语句,查询对应表数据进行验证:
SELECT * from `dts_test`.`dts_mongo_test`;

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