要实现实时同步PolarDB MySQL版数据源中的部分表到MaxCompute,您需要通过阿里云的数据传输服务(DTS)来完成。以下是详细的步骤和说明:
一、前置准备
-
确认数据源和目标库的连通性
- 确保PolarDB MySQL版实例与MaxCompute之间的网络连通性正常。
- 如果使用的是VPC网络,请确保PolarDB MySQL版和MaxCompute在同一个VPC内,或者通过公网/专线等方式实现网络互通。
-
检查PolarDB MySQL版的配置
- 确保待同步的表具备主键或唯一约束,且字段具有唯一性。
- 开启Binlog日志,并将
loose_polar_log_bin
参数设置为on
,以支持增量同步。
-
创建MaxCompute数据源
- 在DataWorks中创建MaxCompute数据源,用于接收同步过来的数据。
二、创建实时同步任务
1. 登录DTS控制台
- 登录DMS数据管理服务。
- 在顶部菜单栏中,单击“集成与开发(DTS)”。
- 在左侧导航栏,选择“数据传输(DTS)” > “数据同步”。
2. 创建同步任务
3. 配置源库和目标库信息
- 源库信息:
- 数据库类型:选择
PolarDB for MySQL
。
- 接入方式:选择
云实例
。
- 填写实例地区、PolarDB实例ID、数据库账号和密码。
- 目标库信息:
- 数据库类型:选择
MaxCompute
。
- 接入方式:选择
云实例
。
- 填写MaxCompute实例的相关信息(如项目名称、AccessKey等)。
4. 配置同步对象
- 选择同步类型:
- 支持全量同步和增量同步。如果需要实时同步,建议同时勾选“全量同步”和“增量同步”。
- 选择同步的表:
- 在同步对象列表中,选择需要同步的部分表。
- 可以通过过滤条件指定表名前缀或后缀,仅同步符合条件的表。
- 处理目标库已存在的表:
- 选择“预检查并报错拦截”或“忽略报错并继续执行”。
5. 高级配置
- 调度任务专属集群:可选配置,用于提升同步性能。
- 同步速率限制:根据业务需求,设置全量和增量同步的速率上限。
- 重试机制:配置源库或目标库连接失败后的重试时间。
6. 保存任务并进行预检查
- 单击“下一步保存任务并预检查”。
- 预检查通过后,单击“下一步购买”。
7. 购买实例
- 选择计费方式(预付费或后付费)。
- 选择链路规格和订购时长。
- 阅读并勾选《数据传输(按量付费)服务条款》。
- 单击“购买并启动”,同步任务正式开始。
三、同步数据格式
-
数据存储格式
- 同步到MaxCompute的数据会以表的形式存储,表结构与PolarDB MySQL版中的表结构一致。
- 数据类型会根据MaxCompute的支持情况进行映射。例如:
- MySQL的
INT
类型会映射为MaxCompute的BIGINT
。
- MySQL的
VARCHAR
类型会映射为MaxCompute的STRING
。
-
分区信息
- 如果目标表是分区表,可以通过``格式定义分区变量(如
bizdate=${yyyymmdd}
),并在调度属性中为其赋值。
- 分区字段通常用于按时间划分数据,便于后续查询和分析。
-
增量数据更新
- 增量同步会基于PolarDB MySQL版的Binlog日志,将新增、修改或删除的操作实时同步到MaxCompute。
- MaxCompute中的数据会以追加的方式存储,不会覆盖已有数据。
四、注意事项
- 数据一致性
- 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则可能导致数据不一致。
- 性能影响
- 全量初始化会并发执行INSERT操作,可能导致目标数据库的表产生碎片。
- 增量同步对源库的性能影响较小,但仍需在业务低峰期执行。
- 费用说明
- 库表结构同步和全量数据同步不收费。
- 增量数据同步收费,具体费用请参考官方计费说明。
通过以上步骤,您可以成功建立从PolarDB MySQL版到MaxCompute的实时同步任务,并确保同步数据的格式和内容符合预期。