DDM数据库到Kafka同步实例
本小节以DDM->Kafka的出云实时同步为示例,介绍如何使用数据复制服务配置实时同步任务。
操作步骤
- 在“实时同步管理”页面,单击“创建同步任务”。
- 在“同步实例”页面,填选区域、任务名称、任务异常通知信息、SMN主题、时延阈值、任务异常自动结束时间、描述、同步实例信息,单击“下一步”。图1 同步任务信息
表1 任务和描述 参数
描述
区域
当前所在区域,可进行切换。
任务名称
任务名称在4-50位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他的特殊字符。
任务异常通知设置
该项为可选参数,开启之后,选择对应的SMN主题。当同步任务状态异常时,系统将发送通知。
SMN主题
“任务异常通知设置”项开启后可见,需提前在SMN上申请主题并添加订阅。
SMN主题申请和订阅可参考《消息通知服务用户指南》。
时延阈值
在增量同步阶段,源数据库和目标数据库之间的同步有时会存在一个时间差,称为时延,单位为秒。
时延阈值设置是指时延超过一定的值后(时延阈值范围为1—3600s),DRS可以发送告警通知。告警通知将在时延稳定超过设定的阈值6min后发送,避免出现由于时延波动反复发送告警通知的情况。
说明:- 首次进入增量同步阶段,会有较多数据等待同步,存在较大的时延,属于正常情况,不在此功能的监控范围之内。
- 设置时延阈值之前,需要设置任务异常通知。
任务异常自动结束时间(天)
设置任务异常自动结束天数,输入值必须在14-100之间。
说明:异常状态下的任务仍然会计费,而长时间异常的任务无法续传和恢复。设置任务异常自动结束天数后,异常且超时的任务将会自动结束,以免产生不必要的费用。
描述
描述不能超过256位,且不能包含! = < > & ' " \ 特殊字符。
图2 同步实例信息表2 同步实例信息 参数
描述
数据流动方向
选择“出云”。
源数据库引擎
选择“DDM”。
目标数据库引擎
选择“Kafka”。
网络类型
此处以“公网网络”为示例。目前支持可选公网网络、VPC网络和VPN、专线网络。
源数据库实例
可用的DDM实例。
同步实例所在子网
请选择同步实例所在的子网。也可以单击“查看子网”,跳转至“网络控制台”查看实例所在子网帮助选择。
默认值为当前所选数据库实例所在子网,请选择有可用IP地址的子网。为确保同步实例创建成功,仅显示已经开启DHCP的子网。
同步类型
增量。
增量同步通过解析日志等技术,将源端产生的增量实时同步至目标端。
无需中断业务,实现同步过程中源业务和数据库继续对外提供访问。
企业项目
对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。
如果需要自定义企业项目,请前往项目管理服务进行创建。关于如何创建项目,详见《项目管理用户指南》。
标签
可选配置,对同步任务的标识。使用标签可方便管理您的实时同步任务。每个任务最多支持10个标签配额。
任务创建成功后,您可以单击实例名称,在“标签”页签下查看对应标签。关于标签的详细操作,请参见标签管理。
- 在“源库及目标库”页面,同步实例创建成功后,填选源库信息和目标库信息,建议您单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和目标库连通后,单击“下一步”。图3 源库信息
表3 源库信息 参数
描述
数据库实例名称
默认为创建迁移任务时选择的关系型数据库实例,不可进行修改。
数据库用户名
源数据库的用户名。
数据库密码
源数据库的用户名所对应的密码。
源数据库IP地址、端口、用户名和密码将在同步过程中被加密暂存到数据库和同步实例主机上,待该任务删除后会永久清除。
图4 目标库信息表4 源库信息 参数
描述
IP地址或域名
目标数据库的IP地址或域名。
目标数据库的用户名和密码将在同步过程中被加密暂存到数据库和同步实例主机上,待该任务删除后会永久清除。
- 在“设置同步”页面,选择同步策略、数据格式和同步对象,单击“下一步”。图5 同步模式
表5 同步对象 参数
描述
同步Topic策略
同步Topic策略,可选择“集中投递到一个Topic”或者“自动生成Topic名字”。
Topic
选择目标端需要同步到的Topic,同步Topic策略选择“集中投递到一个Topic”时可见。
Topic名字格式
Topic名字格式,同步Topic策略选择“自动生成Topic名字”时可见。
Topic名字格式支持database和tablename两个变量,其他字符都当做常量。分别用$database$代替数据库名,$tablename$代替表名。
例如:配置成$database$-$tablename$时,如果数据库名称为db1,表名为tab1,则Topic名字为db1-tab1。如果是DDL语句,$tablename$为空,则Topic名字为db1.
同步到kafka partition策略
同步到kafka partition策略。
- 按库名+表名的hash值投递到不同Partition:适用于单表的查询场景,表内保序,表与表之间不保序,可以提高单表读写性能,推荐使用此选项。
- 全部投递到Partition 0:适用于有事务要求的场景,事务保序,可以保证完全按照事务顺序消费,写入性能比较差,如果没有强事务要求,不推荐使用此选项。投递到Partition 0必须是自动创建Topic,选择已有Topic不支持该选项。
- 按表的主键值hash值投递到不同的Partion:适用于一个表一个Topic的场景。
投送到kafka的数据格式
选择投送到kafka的数据格式。
- Avro:可以显示Avro二进制编码,高效获取数据。
- JSON:为Json消息格式,方便解释格式,但需要占用更多的空间。
- JSON-C:一种能够兼容多个批量,流式计算框架的数据格式。
详细格式可参考Kafka消息格式。
同步对象
同步对象支持表级同步和库级同步,您可以根据业务场景选择对应的数据进行同步。
选择对象的时候支持搜索,以便您快速选择需要的数据库对象。
- 在“预检查”页面,进行同步任务预校验,校验是否可进行实时同步。
- 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。
预检查不通过项处理建议请参见《数据复制服务用户指南》中的“预检查不通过项修复方法”。
- 预检查完成后,且所有检查项结果均通过时,单击“下一步”。图6 预检查
所有检查项结果均通过时,若存在待确认项,需要阅读并确认详情后才可以继续执行下一步操作。
- 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。
- 在“任务确认”页面,设置同步任务的启动时间,并确认同步任务信息无误后,勾选协议,单击“启动任务”,提交同步任务。
- 同步任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”。
- 预计同步任务启动后,会对源数据库和目标数据库的性能产生影响,建议选择业务低峰期,合理设置同步任务的启动时间。
- 同步任务提交后,您可在“实时同步管理”页面,查看并管理自己的任务。
- 您可查看任务提交后的状态,状态请参见任务状态。
- 在任务列表的右上角,单击
刷新列表,可查看到最新的任务状态。
