本文档将介绍DMS数据开发如何实现周期数据同步与数据报表(T+1数据报表)。
背景信息

DMS数据开发使用场景
- 离线数据:T+1报表。
- 实时数据:五分钟实时报表。
- 智能数据:直接对接AI计算等框架。
- 冷数据:冷数据OSS定期备份。
- 事务数据:大批量数据定期删除、更新。

DMS周期数据同步与数据报表
如今由于数据量越来越大,也不再会出现一款数据库包揽所有功能的状况,数据库开始出现了两大类:OLTP和OLAP。OLTP数据库主要用于处理事务数据,如订单数据,这类数据库以阿里云的RDS for MySQL为代表;OLAP数据库主要用于分析数据,如日常分析报表生成,这类数据库以阿里云的ADB for MySQL为代表。在OLAP数据库进行数据分析之前,需要先将数据按照日期中从RDS for MySQL中同步到ADB for MySQL中,然后进行数据分析,生成数据报表。
DMS提供的数据库管理能力能够同时管理RDS for MySQL以及ADB for MySQL,一站式地实现从RDS for MySQL同步数据到ADB for MySQL和数据报表生成。同时,DMS提供的任务编排功能,能够定期实现数据同步功能和数据报表生成。
案例背景
本文档提供一个具体案例,该案例将RDS中一个表rds_db.rds_table中的数据,按天迁移到到ADB中的adb_db.adb_detail_table中,然后对adb_db.adb_detail_table中的数据做汇总操作。每天5点针对前一天的数据进行迁移和汇总。rds_db.rds_table的表结构如下:
CREATE TABLE rds_table(
id INT,
price DECIMAL(10,2),
trx_time TIMESTAMP
);

准备工作
首先,我们需要在rds_db.rds_table表中准备一些数据,这些数据通过SQLConsole直接插入:
insert into rds_table values(1, 10.9, date_add(now(), interval -1 day));
insert into rds_table values(2, 20.9, date_add(now(), interval -1 day));
insert into rds_table values(3, 30.9, date_add(now(), interval -1 day));
insert into rds_table values(4, 40.9, date_add(now(), interval -1 day));
insert into rds_table values(5, 50.9, now());
insert into rds_table values(6, 60.9, now());
insert into rds_table values(7, 70.9, now());
insert into rds_table values(8, 80.9, now());

- RDS的dblink:dblink_rds。
- ADB的dblink:dblink_adb。

实现任务流
本章节介绍如何实现从RDS迁移数据到ADB以及数据汇总的步骤。
注意事项
- RDS中的rds_db.rds_table表,以及ADB中的数据库adb_db需要事先准备好。
- rds_db.rds_table表中需要有一列或者多列记录数据插入的时间。
- rds_db.rds_table表数据插入在安全协同模式下,需要申请更改权限以及调整安全规则以允许在SQLConsole中运行。
- 所有任务节点的SQL内容在安全协同模式下,需要申请权限以及调整安全规则以便其正常运行。
总结
本文档介绍了在DMS中从RDS中周期迁移数据到ADB中并生成汇总报表用例的详细步骤。该用例能够定期自动生成RDS T+1数据报表,提高了RDS中数据的使用效率,节省用户的时间,它体现了DMS在数据迁移以及T+1报表方面强大的能力。
正如前文介绍,DMS数据开发功能能够用于多种场景,RDS数据迁移以及数据报表生成只是其中一个,单击功能总览,您将了解更多关于DMS的详细信息。