目录
2.每日全量(适合没有任何时间字段且数据量较小的表,但是可能会经常变化)
这个星期一直在熟悉阿里云的dataworks,由于我们准备搭建数据仓库,因此要将存储在MySQL当中的业务数据导入至maxcompute中,自己摸索也是相当的困难,于是打算写一篇文章给大家一起分享我的经验。
进入dataworks首页,打开dataworks的数据集成页面
点击“同步解决方案”,再点击任务列表
点击右上角的新建任务,可以新增同步任务
数据来源选择MySQL,数据去向选择maxcompute。
0.说明(一定要看)
下面的同步策略是我自己摸索出来的,不一定正确。
Q:为什么首日导入全量数据要用“一次性增量同步”?
A:因为如果首日用一次性全量同步,会在任务调度时运行同步,如果该任务1点运行,则会将当日0点~1点的数据一并导入至maxcompute,第二日的增量导入同样也会将这笔数据导入至maxcompute,这会造成数据重复,因此要使用“一次性增量同步”
1.首日全量同步,之后每日增量(包括新增或者新增及变化)
1.先选择一次性增量(增量能筛选条件)
2.配置数据源
需要配置数据源,没有数据的新增一个数据源,参考官方文档配置,同时需要一个独享数据集成资源组(单独付费,不是很贵),配置完后测试连通性,进入下一步
3.设置同步来源与规则
填写你的方案名与描述,并勾选需要同步的表,放入右边
设置表名的转换规则,如所有表加“ods_”前缀:源:(.+) 加号前面有个点! 目标:ods_$1
且都为英文字符
4.设置目标表
点击刷新源表和maxcompute表映射,注意maxcompute中的表名已经改好,如果maxcompute中有该表,就用原表,没有该表就直接自动建表
这个同步主键并没有什么用,不用管它
5.设置同步规则
这是增量同步中最重要的环节,语法为MySQL语法,里面的参数参考官方文档,点击蓝色按钮
图中${bizdate}表示业务日期,就是当前日期的前一天
6.运行资源设置
该改名字的改名称,然后选择调度资源组,然后就完成了
选择下面的执行,先执行等它成功!
7.再配置每日的增量
记得改成使用已有表
同步调度规则这里注意一下,设置一下调度时间,有可能数据库更新不是很及时
其他操作不变
8.运行任务
点击箭头指向位置的执行(我已经执行过了),先点击一次性增量同步,确保该任务完成后,再点击周期性增量同步。
9.查询数据
查看里面的数据是否为非今天更改的数据,进入数据开发中写代码查询。
等待第二天0点导入增量数据即可。
10.将相同条件的表添加至该任务
点击“更多”->修改配置
将勾选的表添加到右侧
再次点击刷新
配置好了就可以运行。
该任务只会运行刚配置好的表,前面运行过的表不会再运行