DataX和xxl-job的应用实践
一、需求背景
由于公司业务原因,需要下线大数据平台,而在线上继续运营的服务中,存在不少BI报表数据来源于大数据平台,为了在下线大数据平台之后,仍然能够保证BI报表数据的正常输出,决定采用DataX同步业务数据表,xxl-job实现中间表和最终数据表的逻辑计算和输出:
- 需求一:将业务库中的业务数据表定时(例如每晚0-1时执行)同步到数据库中
- 需求二:通过SQL代替原来的大数据平台hive逻辑,定时(例如每晚2-3时执行)通过业务表生成中间表及数据表
二、开发方案
-
通过DataX实现表数据同步:
-
DataX简介
DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。
-
开源地址:https://github.com/alibaba/DataX
-
-
通过xxl-job实现定时SQL执行
-
xxl-job简介
XXL-JOB is a distributed task scheduling framework. It’s core design goal is to develop quickly and learn simple, lightweight, and easy to expand. Now, it’s already open source, and many companies use it in production environments, real “out-of-the-box”.
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
-
开源地址:https://github.com/xuxueli/xxl-job
-
三、脚本配置
-
DataX脚本配置(以Mysql为例)
{ "job": { "content": [ { "reader": { "name": "mysqlreader",