本文将为您介绍如何在腾讯云数据仓库 TCHouse-D 控制台直接进行实时数据同步,介绍实时同步任务的配置及操作实践。
前提条件
已购买 腾讯云数据仓库 TCHouse-D 集群。
已开通 腾讯云数据集成 DataInlong 服务。
注意:
1. 仅腾讯云数据仓库 TCHouse-D、数据集成 DataInlong 同时支持的地域可在腾讯云数据仓库 TCHouse-D 控制台一键开启实时同步;
2. 开启实时同步的过程中,需付费购买 DataInlong 的实时集成资源组;
3. 当前此功能暂开白,请联系我们进行试用。
操作步骤
进入腾讯云数据仓库 TCHouse-D 控制台
1. 进入 腾讯云数据仓库 TCHouse-D控制台,在集群列表页面选择需要开启数据实时同步的腾讯云数据仓库 TCHouse-D 集群,点击集群名称进入集群。
2. 进入湖仓一体菜单 ,可查看实时同步功能开启情况,并通过点击开关开启服务。
打开实时同步开关
点击实时同步开关开启实时同步服务,开启过程中,会进行以下几个操作。
1. 授予 Inlong CAM 策略
2. 关联/创建并关联 Inlong 项目
方式 | 方式说明 |
创建 InLong 项目并关联 | 若当前没有 Inlong 项目(或期望新建 Inlong 项目),需填写 Inlong 项目名称(默认填充腾讯云数据仓库 TCHouse-D 的集群名称,可修改)后,点击下一步进行创建。 |
选择已有 InLong 项目并关联 | 也可选择当前已有项目,通过下拉列表选择。 注:一个腾讯云数据仓库 TCHouse-D 集群只能绑定唯一项目,且开通实时同步服务后不支持修改,请谨慎选择。 |
3. 关联/创建并关联 Inlong 实时资源组
方式 | 方式说明 |
新建实时资源组 | 可点击“新建实时资源组”的快捷链接,跳转资源组购买页面进行新建,资源组名称默认是腾讯云数据仓库 TCHouse-D 的集群ID,此名称也可在购买页面修改。 |
选择已有实时资源组 | 也可选择当前已有的实时资源组,通过下拉列表选择。 注:为避免不同项目间资源互相抢占,不同集群不支持绑定相同实时资源组。 |
4. 新建 Inlong 的腾讯云数据仓库 TCHouse-D 数据源
管理项目及实时资源组
1. 打开开关后,即可查看集群同 Inlong 项目、实时资源组的绑定关系:
字段 | 字段说明 |
已关联 Inlong 项目 | 即腾讯云数据仓库 TCHouse-D 集群绑定的项目,点击项目名称可跳转项目列表 |
集成资源组 | 一个腾讯云数据仓库 TCHouse-D 集群可以绑定多个 Inlong 的实时集成资源组,也可对资源组进行管理操作: 添加资源组:增加绑定 Inlong 实时集成资源组 接触绑定:解除同 Inlong 实时集成资源组的绑定关系 变配:对 Inlong 实时集成资源组进行变配操作 续费:未 Inlong 实时集成资源组进行续费,当前仅支持包年包月计费模式 |
创建实时同步任务
创建实时同步任务
点击创建同步任务,新建实时同步作业,可选择“仅创建任务”或 “创建并配置任务”。
配置实时同步任务
选择“仅创建任务”的,在任务列表中会展示此任务,且运行状态显示为“未配置”,此时点击“任务名称”或“配置任务”即可进行具体配置。
选择数据同步链路
源端支持 MySQL、TDSQL-C Mysql、TDSQL MySQL、Kafka 等数据源,可按需选择。
数据来源设置
字段 | 字段说明 |
数据源 | 选择已配置好数据源名称,若当前暂无源端,可点击“新建数据源” 前往 Inlong 项目进行创建。 |
来源表 | 所有库表:监控数据源下所有库。任务运行期间新增库、表默认将同步至目标端。 指定表:此选项下需指定到具体表名称,设置后任务仅同步指定表。 指定库:此选项下需指定具体库名、以表名正则表达式,设置后,任务运行期间符合表名表达式的新增表默认将同步至目标端。示例如下: 多表使用"," 多表匹配 ".*" 表示全表匹配 "(a|b)_.*" 表示a_或者b_开头的表 |
读取模式 | 全量+增量:数据同步分为全量和增量同步阶段,全量阶段完成后任务进入增量阶段。全量阶段将同步库内历史数据,增量阶段从任务启动后 binlog cdc 的位点开始同步。 增量:仅从任务启动后的 binlog cdc 位点开始同步数据。 |
过滤操作 | 支持插入、更新和删除三种操作,设置后将不同步指定操作类型的数据。 |
时区 | 设置日志时间所属时区,默认上海。 |
数据目标设置
字段 | 字段说明 |
数据源 | 选择已经创建的腾讯云数据仓库 TCHouse-D 数据源。 |
库/表匹配策略 | 设置任务运行时腾讯云数据仓库 TCHouse-D 中数据库以及数据表对象的名称匹配规则: 与来源库/表同名:任务运行时系统将默认在目标数据源内匹配与来源库/表同名对象。 自定义:自定义规则支持设置来源与目标之间特殊关系,例如统一将源端库名或表名加上统一固定前缀或者后缀在写入目标库或表任务运行时。此策略下,任务运行时系统将默认根据命名规则匹配目标对象。 |
高级设置 - 参数 | 设置腾讯云数据仓库 TCHouse-D 写入端的运行参数,此参数可根据业务需求配置。 腾讯云数据仓库 TCHouse-D 端已支持参数详情,请参见实时节点高级参数。 |
运行设置
参数 | 策略名 | 策略说明 |
集成资源配置 集成资源组 | | 按需选择可用的实时集成资源组,同时设定运行时 JM、TM 规格以及任务运行并行度。其中,当前任务实际运行时实际占用 CU 数= JobManager 规格 + TaskManager 规格 × 并行度。 |
消息处理策略 | 新建表 | 1. 自动建表:当来源端被监控的库中出现新建表时,Doris 端将自动创建同结构的表及字段: 若来源端表包含主键,任务默认创建 Unique key 模型表。 若来源端表包含主键,任务默认创建 Duplicate 模型表。 2. 忽略变更:目标端忽略来源端的产生的 DDL 变更消息,Doris 端及日志不做任何响应或消息提醒。 3. 日志告警:目标端仅接收 DDL 变更消息,并在日志内打印消息内容,不触发新建表操作。 4. 任务出错:目标端接收 DDL 变更消息并持续重启任务,重启过程中任务日志报错并出现数据写入异常。 |
| 新增列 | 1. 新增列:当来源端被监控的库中出现表增加字段时,Doris 端将自动同步新增同名字段。 2. 忽略变更:目标端忽略来源端的产生的 DDL 变更消息,Doris 端及日志不做任何响应或消息提醒。 3. 日志告警:目标端仅接收 DDL 变更消息,并在日志内打印消息内容。此策略并不触发新增列操作。 4. 任务出错:目标端接收 DDL 变更消息并持续重启任务,重启过程中任务日志报错并出现数据写入异常。 |
| 删除表 | 除新建表、新增字段外其他 DDL 变更消息不支持自动响应,目前提供忽略变更、日志告警、任务出错三种策略选择: 1. 忽略变更:目标端忽略来源端的产生的 DDL 变更消息,Doris 端及日志不做任何响应或消息提醒。 2. 日志告警:目标端仅接收 DDL 变更消息,并在日志内打印消息内容。此策略并不触发新建表操作。 3. 任务出错:目标端接收 DDL 变更消息并持续重启任务,重启过程中任务日志报错并出现数据写入异常。 |
| 重命名表 | |
| 删除列 | |
| 重命名列 | |
| 修改列 | |
| 删除列 | |
写入异常 | 部分停止 | 数据无法写入目标表时丢弃数据,后续该异常表对应的数据自动丢弃不再同步 |
| 异常重启 | 任意表数据写入异常后任务将异常退出并自动重启。重启后任务将持续尝试写入,直到所有表均可正常同步。重启期间可能导致部分表数据重复写入。 |
| 忽略异常 | 忽略表内无法写入的异常数据并标记为脏数据,任务继续读取并写入剩下的数据。 |
脏数据 | COS 归档 | 写入异常策略配置为 忽略异常 时,将未写入至目标端的数据同步写入到指定的 COS 桶及文件内。 |
| 不归档 | 不归档保存未写入的异常的数据 |
配置预览及提交
配置完成后可进行预览,确认后单击保存。
实时同步任务运维
在实时同步任务列表,点击 前往运维 即可进入 Inlong 任务运维页面。
在任务运维页面,可查看并监控当前任务状态、读写指标统计、日志及配置当前任务监控规则。
统计指标
统计指标页面展示了任务内读写及资源运行情况。
读写指标
展示当前任务读写整体条数、全增量同步阶段、以及读写速度等。
| 指标参数 | 说明 |
同步概览 | 累计读取 | 本次任务运行期间,从来源端实际读取数据条数。此指标不包含筛选过滤等方式剔除的数据总量。 |
累计成功写入 | 本次任务运行期间,已读取的数据中成功写入到目标端的数据总量。 | |
累计脏数据 | 本次任务运行期间,已读取的数据中异常写入失败的数据总量。此指标不包含任务配置中主动忽略/过滤而导致未写入的数据,包括指定部分停止、异常重启等运行策略,以及数据过滤等。 | |
累计运行时长 | 本次任务启动后,累计总运行时长(包含暂停时间)。 | |
累计读取库 | 本次任务运行期间,从来源端实际读取数据库数量。 | |
累计读取表 | 本次任务运行期间,从来源端实际读取数据表数量,并且分别全量同步阶段和增量同步阶段数量。 | |
全增量同步进度 | 全量/增量状态 | 提供未启动、进行中和已完成三种状态。 |
全量同步阶段 | 读取源端库表中的所有记录,本阶段内仅统计读取成功且有存量业务数据的表,并且同步展示增量启动时间、统计时间、全量结束时间。 | |
增量同步阶段 | 从 binlog 消费变更数据,本阶段内仅统计读取成功且有新增业务数据的表,并且同步展示增量启动时间。 | |
读取速度 | 读取速度 = 统计间隔内总读取条数/统计间隔。 | |
读取吞吐 | 读取吞吐 = 统计间隔内总读取总量/统计间隔。 | |
写入速度 | 写入速度 = 统计间隔内成功写入条数/统计间隔。 | |
读写详情 | 写入吞吐 | 写入吞吐 = 统计间隔内成功写入总量/统计间隔。 |
写入延时 | 来源 Source 端至写入 Sink 端之间的链路延迟,写入延时=系统时间-记录读取时间(读取端 LatencyMarker 时间戳)。 | |
作业重启次数 | 统计间隔内当前任务重启次数。 |
资源指标
展示当前任务使用资源情况。
| 指标参数 | 说明 |
CheckPoint | 上次 Checkpoint 大小 | 当前作业最近一次的 Checkpoint 大小。 |
Checkpoint 耗时 | 当前作业的 Checkpoint 耗时。 | |
Checkpoint 失败总次数 | 当前作业的 Checkpoint 的失败总次数。 | |
TaskManager | TaskManager CPU 使用率 | 当前作业 TaskManager 的 CPU 使用率。 |
TaskManager 堆内存使用量 | 当前作业 TaskManager 堆内存的用量。 | |
TaskManager 老年代总 GC 次数 | 当前作业 TaskManager 老年代 GC 次数。 | |
TaskManager 老年代总 GC 时间 | 当前作业 TaskManager 老年代 GC 时间。 | |
TaskManager 物理内存用量 | 当前作业 TaskManager 所在的 JVM 的物理内存用量(RSS),包括堆内、堆外、Native 等所有区域的总内存用量。 | |
JobManager | JM CPU Load | TaskManager 维度的 JVM 最近 CPU 利用率。 |
JM Head Memory | TaskManager 维度的堆内存使用情况。 | |
JM GC Count | TaskManager 维度的 Status.JVM.GarbageCollector.<GarbageCollector>.Count,GC(垃圾回收)次数。 | |
JM GC Time | TaskManager 维度的 Status.JVM.GarbageCollector.<GarbageCollector>.Time,GC(垃圾回收)时间。 |
链路详情
展示整库任务下每张表的读写情况(仅整库同步时会展示此页面)。
运行日志
展示运行日志。
配置告警
配置告警页面支持对实时任务创建监控规则及告警渠道。