Mysql5.7使用DTS增量同步数据到MaxCompute

简介: 本文介绍了使用适应增量同步Mysql5.7数据同步到MaxCompute同步方式,主要过程为设置mysql5.7的binlog,以及使用DTS同步Mysql同步所有数据之前的全量数据操作,以及增量数据同步的配置,以及最后整合最后数据之前的全部数据。

背景:一些客户反馈,增量同步数据到MaxCompute按照全天的数据做增量数据同步数据量太大,且不使用按天的增量同步数据,进行在MaxCompute上进行数据处理得出增量数据对于delete的相关数据不能做到很好的支持,在次给大家一个对增量数据同步的方案使用DTS做增量同步数据到MaxCompute,数据源为ECS上自建的mysql5.7。

一、为自建MySQL创建账号并设置

1.1登陆自建Mysql数据库

image.png

1.2创建mysql数据库中用于数据迁移/同步的账号

CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456';

说明:

  • username:待创建的账号。
  • host:允许该账号登录的主机,如果允许该账号从任意主机登录数据库,可以使用百分号(%)。
  • password:账号的密码。

1.3对账号进行授权操作

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;




说明:

  • privileges:授予该账号的操作权限,如SELECT、INSERT、UPDATE等,如果要授予该账号所有权限,则使用ALL。
  • databasename:数据库名。如果要授予该账号具备所有数据库的操作权限,则使用星号(*)。
  • tablename:表名。如果要授予该账号具备所有表的操作权限,则使用星号(*)。
  • username:待授权的账号。
  • host:允许该账号登录的主机,如果允许该账号从任意主机登录,则使用百分号(%)。
  • WITH GRANT OPTION:授予该账号使用GRANT命令的权限,该参数为可选。


如果要给账户赋予所有数据库和表的权限,并容许从任意主机登陆数据库

GRANT ALL ON *.* TO 'dtsmigration'@'%';

1.4开启并设置自建Mysql数据库binlog

到指定目录下找到该文件
image.png

a.使用vim命令,修改配置文件my.cnf中的如下参数

log_bin=mysql_bin
binlog_format=row
server_id=2 //设置大于1的整数
binlog_row_image=full //当自建MySQL的版本大于5.6时,则必须设置该项。


image.png

b.修改完成后,重启Mysql进程。

image.png

service mysqld restart

image.png

二、同步过程介绍

2.1结构初始化

DTS将源库中待同步表的结构定义信息同步至MaxCompute中,初始化时DTS会为表名增加_base后缀。例如源表为customer,那么MaxCompute中的表即为customer_base。

2.2全量数据初始化

DTS将源库中待同步表的存量数据,全部同步至MaxCompute中的目标表名_base表中(例如从源库的customer表同步至MaxCompute的customer_base表),作为后续增量同步数据的基线数据。

2.3增量数据同步

DTS在MaxCompute中创建一个增量日志表,表名为同步的目标表名_log,例如customer_log,然后将源库产生的增量数据实时同步到该表中。

三、增量同步实践

3.1购买DTS同步


image.png

3.2查看购买的DTS同步,点击配置同步链路

image.png

3.3配置对应的数据源和相应的MaxCompute项目


image.png

3.4点击授予权限的同步账号操作

image.png

3.5选择对应的增量同步数据的同步实践,并选择需要同步的表

image.png


3.6同步配置预检查

image.png

3.7查询同步的全量数据

image.png

3.8查看同步成功的增量数据分区user_log

image.png

3.9查看增量数据同步的数据

image.png


元数据的字段介绍

字段 说明
record_id 增量日志的记录id,为该日志唯一标识。
说明
- id的值唯一且递增。
- 如果增量日志的操作类型为UPDATE,那么增量更新会被拆分成两条记录,且record_id的值相同。
operation_flag 操作类型,取值:
- I:INSERT操作。
- D:DELETE操作。
- U:UPDATE操作。
utc_timestamp 操作时间戳,即binlog的时间戳(UTC 时间)。
before_flag 所有列的值是否为更新前的值,取值:Y或N。
after_flag 所有列的值是否为更新后的值,取值:Y或N。

四、根据时间点位,整合该时间点位之前的全量数据

4.1建立全量数据表

CREATE TABLE IF NOT EXISTS maxcomputeone_dev.user_all(uid BIGINT,uname STRING,deptno BIGINT,gender STRING,optime DATETIME,record_id BIGINT,operation_flag STRING,utc_timestamp BIGINT,before_flag STRING,after_flag STRING);

4.2查看增量数据最后同步的点位,最后整合全量数据到user_all

image.png


合并语句

set odps.sql.allow.fullscan=true;
insert overwrite table user_all
select uid,
       uname,
       deptno,
       gender,
       optime
  from(
select row_number() over(partition by t.uid
 order by record_id desc, after_flag desc) as record_num, record_id, operation_flag, after_flag, uid, uname, deptno,gender,optime
  from(
select incr.record_id, incr.operation_flag, incr.after_flag, incr.uid, incr.uname,incr.deptno,incr.gender,incr.optime
  from user_log incr
 where utc_timestamp <= 1585107804
 union all
select 0 as record_id, 'I' as operation_flag, 'Y' as after_flag, base.uid, base.uname,base.deptno,base.gender,base.optime
  from user_base base) t) gt
where record_num=1 
  and after_flag='Y';

欢迎加入“MaxCompute开发者社区2群”,点击链接申请加入或扫描二维码
https://h5.dingtalk.com/invite-page/index.html?bizSource=____source____&corpId=dingb682fb31ec15e09f35c2f4657eb6378f&inviterUid=E3F28CD2308408A8&encodeDeptId=0054DC2B53AFE745
image

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
12月前
|
存储 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL 数据库课程设计:开启数据宇宙的传奇之旅
本文全面剖析数据库课程设计 MySQL,展现其奇幻魅力与严峻挑战。通过实际案例凸显数据库设计重要性,详述数据安全要点及学习目标。深入阐述备份与恢复方法,并分享优秀实践项目案例。为开发者提供 MySQL 数据库课程设计的全面指南,助力提升数据库设计与管理能力,保障数据安全稳定。
大数据新视界--大数据大厂之MySQL 数据库课程设计:开启数据宇宙的传奇之旅
|
11月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
11月前
|
存储 关系型数据库 MySQL
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
本文详细介绍了在 MySQL 中创建数据库和表的方法。包括安装 MySQL、用命令行和图形化工具创建数据库、选择数据库、创建表(含数据类型介绍与选择建议、案例分析、最佳实践与注意事项)以及查看数据库和表的内容。文章专业、严谨且具可操作性,对数据管理有实际帮助。
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
|
12月前
|
关系型数据库 MySQL 数据安全/隐私保护
大数据新视界--大数据大厂之MySQL 数据库课程设计:数据安全深度剖析与未来展望
本文深入探讨数据库课程设计 MySQL 的数据安全。以医疗、电商、企业案例,详述用户管理、数据加密、备份恢复及网络安全等措施,结合数据安全技术发展趋势,与《大数据新视界 -- 大数据大厂之 MySQL 数据库课程设计》紧密关联,为 MySQL 数据安全提供全面指南。
大数据新视界--大数据大厂之MySQL 数据库课程设计:数据安全深度剖析与未来展望
|
12月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
12月前
|
SQL 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL 数据库 SQL 语句调优方法详解(2-1)
本文深入介绍 MySQL 数据库 SQL 语句调优方法。涵盖分析查询执行计划,如使用 EXPLAIN 命令及理解关键指标;优化查询语句结构,包括避免子查询、减少函数使用、合理用索引列及避免 “OR”。还介绍了索引类型知识,如 B 树索引、哈希索引等。结合与 MySQL 数据库课程设计相关文章,强调 SQL 语句调优重要性。为提升数据库性能提供实用方法,适合数据库管理员和开发人员。
|
12月前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
SQL 容灾 关系型数据库
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
SQL Server 以其卓越的易用性和丰富的软件生态系统,在数据库行业中占据了显著的市场份额。作为一款商业数据库,外部厂商在通过解析原生日志实现增量数据捕获上面临很大的挑战,DTS 在 SQL Sever 数据通道上深研多年,提供了多种模式以实现 SQL Server 增量数据捕获。用户可以通过 DTS 数据传输服务,一键打破自建 SQL Server、RDS SQL Server、Azure、AWS等他云 SQL Server 数据孤岛,实现 SQL Server 数据源的流动。
785 0
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
|
存储 数据采集 监控
阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群
作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。
673 9
|
弹性计算 安全 容灾
阿里云DTS踩坑经验分享系列|使用VPC数据通道解决网络冲突问题
阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。本文介绍如何使用VPC数据通道解决网络冲突问题。
602 0

热门文章

最新文章

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 推荐镜像

    更多