一、目的
本文实现的是,十分钟调度的mysql数据增量同步到maxcompute最新分区中。
二、配置
- 创建rds表,建表语句如下
drop table if exists mysql_test; create table if not exists mysql_test( id INT, addtime DATETIME );
2.创建maxcompute表,建表语句如下
```create table if not exists maxcompute_test(
id bigint,
addtime datetime
) partitioned by (intime string);
3.配置同步任务,截图如下
其中数据过滤参数配置为
```date_format(addtime,'%Y-%m-%d %H:%i:%s') >= '${key1} ${key2}' and
date_format(addtime,'%Y-%m-%d %H:%i:%s') <= '${key1} ${key3}'
分区信息为
```intime = '${key1} ${key2}'
含义是将最近十分钟的数据过滤出来,同步到maxcompute表的最新分区中(每十分钟创建一个分区)。
4.同步任务调度配置(主要是参数配置和时间间隔,以及生成实例方式),截图如下
![dataworks2](https://yqfile.alicdn.com/9c61896a8c62549818da3f8ff0b664b49b5ec94e.png)
其中参数为
key1=$[yyyy-mm-dd] key2=$[hh24:mi:ss-10/24/60] key3=$[hh24:mi:ss]
key1:当前的日期,格式是yyyy-mm-dd
key2:十分钟前的时间,格式是hh24:mi:ss
key3:当前时间,格式是hh24:mi:ss
[参数说明参考]
时间间隔配置为10分钟
生成实例方式为发布后及时生成
5.保存同步任务、提交
# 三、验证
1.确定十分钟的周期实例已经生成,可以在运维中心查看
![dataworks3](https://yqfile.alicdn.com/1d604b9b3f292ea107882f88b91f3b78843218e3.png)
2.向mysql的表mysql_test插入两条数据,具体sql如下
```Insert into mysql_test values(1,now());
Insert into mysql_test values(2,date_add(now(), interval 10 MINUTE_SECOND));
数据如下
(上面两条数据是之前插入的,忽略就好)
3.之前插入数据的addtime分别是2019-12-25 23:39:28和2019-12-25 23:39:38,这两条数据会插入到intime=2019-12-25 23:40:00的分区中,等待10分钟后查看结果,~~~10分钟过去了,截图如下,可以使用如下语句验证select * from maxcompute_test
4.大功告成!