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

背景:一些客户反馈,增量同步数据到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,optimefrom(
select row_number() over(partition by t.uidorder by record_id desc, after_flag desc) as record_num, record_id, operation_flag, after_flag, uid, uname, deptno,gender,optimefrom(
select incr.record_id, incr.operation_flag, incr.after_flag, incr.uid, incr.uname,incr.deptno,incr.gender,incr.optimefrom user_log incrwhere utc_timestamp <= 1585107804union all
select 0 as record_id, 'I' as operation_flag, 'Y' as after_flag, base.uid, base.uname,base.deptno,base.gender,base.optimefrom 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

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware发布虚拟云网络创新技术,连接和保护分布式多云企业

全球领先的企业软件创新者VMware&#xff08;NYSE&#xff1a;VMW&#xff09;本周在VMworld 2020大会上发布多项虚拟云网络创新&#xff0c;将帮助客户构建现代化网络, 更好地支持当前和未来业务计划。凭借VMware不断升级的网络和安全产品组合&#xff0c;客户将更有效地管理向…

前端_网页编程 Form表单与模板引擎(下)

目录 续上一篇6. 模板引擎的实现原理6.1 正则与字符串操作6.1.1 基本语法6.1.2 分组6.1.3 字符串的replace函数6.1.4 多次replace6.1.5 使用while循环replace6.1.6 replace替换为真值6.2 实现简易的模板引擎6.2.1 实现步骤6.2.2 定义模板结构6.2.3 预调用模板引擎6.2.4 封装 te…

MaxCompute问答整理之2020-03月

本文是基于本人对MaxCompute产品的学习进度&#xff0c;再结合开发者社区里面的一些问题&#xff0c;进而整理成文。希望对大家有所帮助。 问题一、在 MaxCompute SQL执行过程中&#xff0c;报错Table xx has n columns&#xff0c; but query has m columns如何处理&#xff…

vsftpd 源码安装 linux/redhat

以前如果安装过只是为了升级&#xff0c;需要先卸载&#xff0c;在安装停止现有的vsftpd服务 service vsftpd stop在线卸载vsftpd yum remove -y vsftpd删除以前的目录 rm -rf /etc/vsftpd -R软连接 ln -s /lib64/libcap.so.2.16 /usr/lib/libcap.so下载vsftpd、解压 cd /…

攀钢告诉你:钢铁是怎样用AI炼成的?

云栖号案例库&#xff1a;【点击查看更多上云案例】 不知道怎么上云&#xff1f;看云栖号案例库&#xff0c;了解不同行业不同发展阶段的上云方案&#xff0c;助力你上云决策&#xff01; 2018年以来&#xff0c;百货企业仍处在洗牌激荡时期&#xff0c;2019年上半年更不乐观。…

VMware发布面向未来的员工工作解决方案,满足分散办公需求

全球领先的企业软件创新者VMware&#xff08;NYSE&#xff1a;VMW&#xff09; 本周在VMworld 2020大会上发布VMware Future-Ready Workforce解决方案&#xff0c;提供卓越的员工办公体验和端到端零信任安全控制&#xff0c;同时简化管理。通过结合VMware安全访问服务边缘&…

npm 设置淘宝镜像和查看镜像设置

将npm设置为淘宝镜像&#xff1a; npm config set registry https://registry.npm.taobao.org查看cnpm镜像设置&#xff1a; npm config get registry

银泰上云 打造“从-1到0再到1”数字化成长逻辑

云栖号案例库&#xff1a;【点击查看更多上云案例】 不知道怎么上云&#xff1f;看云栖号案例库&#xff0c;了解不同行业不同发展阶段的上云方案&#xff0c;助力你上云决策&#xff01; 2018年以来&#xff0c;百货企业仍处在洗牌激荡时期&#xff0c;2019年上半年更不乐观。…

前端_网页编程 Ajax加强

目录 内容一、XMLHttpRequest的基本使用1. 什么是XMLHttpRequest2. 使用xhr发起GET请求3. xhr对象的readyState属性4. 使用xhr发起带参数的GET请求5. 查询字符串5.1 什么是查询字符串5.2 get请求携带参数的本质6. URL编码与解码6.1 什么是URL编码6.2 如何对URL进行编码与解码6.…

MaxCompute管家详解--管家助力,轻松玩转MaxCompute

精彩视频回顾请点击&#xff1a;MaxCompute管家详解 以下是直播内容精华整理&#xff0c;主要包括以下四个方面&#xff1a; 1.背景速览&#xff1b; 2.功能介绍&#xff1b; 3.案例讲解&#xff1b; 4.新功能预告。 一、背景速览 MaxCompute&#xff08;原ODPS&#xff09;是…

vue+vant 移动端H5 商城项目_01

文章目录一、Rem 布局适配1. 安装 amfe-flexible2. px转化rem3. 全局配置4. 重置样式表5. 引入重置样式表二、组件安装和配置与封装2.1. 安装less 预编译语言2.2. 安装vant-ui2.3. 端口自定义配置三、axios 工具封装3.1. 下载安装axios3.2. axios导入3.3. 创建axios 实例拦截器…

VMware和NVIDIA推出新一代混合云架构

在VMworld 2020大会上&#xff0c;VMware和NVIDIA宣布开展进一步合作&#xff0c;推出面向AI的端到端企业平台以及采用NVIDIA DPU&#xff08;数据处理单元&#xff09;、面向数据中心、云和边缘的全新架构&#xff0c;从而为现有应用和新的一代应用提供支持。 通过此次合作&…

GitHub博客开发上线实战

文章目录 1. git代码管理工具1.1 git简介1.2 git的下载与安装1.2.1 MAC电脑1.2.2 Windows系统1.3 如何开始使用git1.4 git常用命令介绍1.4.1 初始化本地仓库1.4.2 本地的代码如何提交到远程网站中1.4.3 远程的代码如何下载/合并到本地中1.4.4 本地如何进行分支管理1.4.5 其他命…

vue+vant 移动端H5 商城项目_02

文章目录一、路由规划1. 新建路由配置2. 下载vue-router3. 路由注册4. 路由基础配置5. 路由挂载6. AppTabBar7.二、移动端首页2.1.首页效果2.2. 首页接口请求2.3. 首页页面2.4. 首页页面三、首页组件3.1. 轮播图SwiperCom3.2. Grid 居家-志趣组件3.3. 类别页组件3.4. 品牌制造商…

MaxCompute规格详解 让您花更低的成本获得更高的业务价值

精彩视频回看请点击&#xff1a;MaxCompute规格详解 以下为精彩视频内容整理&#xff1a; 在用户使用MaxCompute之前&#xff0c;都会考虑成本和业务两大问题。有些企业处在快速的发展期&#xff0c;在业务上对性能的要求比较高&#xff0c;例如计算业务对资源的需求是弹性的&…

翼方健数邓振:“DRG+AI”助力实现医院精细化管理

日前&#xff0c;第十四届中国医院院长年会在厦门举行&#xff0c;从宏观与微观、管理与学科等不同维度&#xff0c;跟进解读了后疫情时代中国医疗健康行业、中国医院发展的挑战、机遇与对策。 2020年是全面建成小康社会决胜之年&#xff0c;也是“十四五”规划之年。中国医疗…

前端_网页编程 跨域与JSONP- 淘宝搜索案例

文章目录 前言1. 要实现的UI效果2. 实现步骤2.1 获取用户输入的搜索关键词2.2 建议搜索列表的函数封装2.3 渲染建议列表的UI结构2.3.1 定义搜索建议列表2.3.2 定义模板结构2.3.1 定义渲染模板结构的函数2.4 美化搜索建议列表2.4.1 建议列表框美化2.5 输入框的防抖2.5.1 什么是防…

全自动化虽然还早,但机器人劳力确实越来越便宜了

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 编者按&#xff1a;本文来自爱范儿&#xff0c;作者 吴羚&#xff0c;36氪经授权发布。 电影《终结者&#xff1a;黑暗命运》…

vue+vant 移动端H5 商城项目_03

文章目录一、首页搜索功能1. 搜索页面2. 历史记录和热门搜索组件3. 搜索框提示列表组件4. 综合-价格-分类5. 搜索出的产品展示6. 异常修复7. 路由拦截/路由守卫二、详情页2.1. 效果图2.2. 详情api2.3. 配置路由2.4. 详情页面2.5. 详情页源码技术选型组件版本说明vue^2.6.11数据…

一家典型的云原生企业,如何在创业早期数次“弯道超车”?

作者 | 禾易受访 | 张淼&#xff0c;玩物得志 App CTO来源 | 阿里巴巴中间件引言前几天&#xff0c;阿里云研究员毕玄分享了自己作为阿里云技术人的一个感受&#xff1a;做基础技术的同学&#xff0c;当越来越好地满足了业务发展的诉求后&#xff0c;会发现业务方对基础技术的唯…