在使用dolphinscheduler基于datax进行mysql表数据同步到hive时, 当mysql表数量较大时,配置的dolphin datax任务链的工作量大且容易出错,所有开发了此简易web项目自动生成datax json文件,自动创建hive表,一键生成dolophin任务链实现自动化数据同步。 源码github地址:https://github.com/zz-big/gather.git 如果觉得还不错,请star下。
dolphinscheduler官网:https://dolphinscheduler.apache.org/zh-cn/docs/1.3.6/user_doc/quick-start.html 项目暂没有实现数据同步初始化,因为数据源的表实在太乱了,全部适配感觉工作量太大,可以先生成dolphin任务链后自己手动修改下执行一次完成数据初始化。
编译:
mvn clean install
项目流程:
数据流向:mysql–>datax–>hive_stg–>hive_ods
整体项目流程图:
时序图:
运行
创建测试数据:
? 1.运行resource/gather.sql创建mysql测试库和表
? 2.创建hive dc_stg和dc_ods库
create database dc_stg;
create database dc_ods;
gather.properties需要修改的配置项:
#mysql
MysqlUrl=jdbc:mysql://localhost:3306
MysqlUser=xxx
MysqlPassword=xxx
MysqlDB=gather
MysqlTableName=gather_data
#是否创建hive表
createTable=true
#hive jdbc
hiveUrl=jdbc:hive2://pd-cdh-192-168-xx-node:10000
hiveUser=xxx
hivePassword=xxx
#dolphin url
url=http://159.75.252.xxx:xx
#dolphin个人用户token
token=xxx
#dolphin个人用户数据源
dolphinSqlDatasourceName=xxx
#dolphin的个人用户租户id,default租户id为-1
tenantId=-1
本地idea运行项目
点击run启动项目
使用
新增要采集的表信息:
采集信息显示,新增采集信息默认上线dolphin项目是false,点击上线后会创建dolphin任务流,
并且隐藏掉上线按钮(重复上线会在donphin单个任务中生成多个定时任务)。
上线项目
点击上线,会提示上线成功或失败,上线成功后可点击dolphin主页按钮跳转dolphin主页查看任务信息。
|