大家好,我是岳哥。
今天给大家分享一下常用的一款数据调动工具:DolphinSchedule。
下载地址
https://dolphinscheduler.apache.org/en-us/download/3.2.2前置条件
JDK:下载JDK (1.8+),安装并配置 JAVA_HOME 环境变量,并将其下的 bin 目录追加到 PATH 环境变量中。如果你的环境中已存在,可以跳过这步。
解压并启动
# 解压并运行 Standalone Server
tar -xvzf apache-dolphinscheduler-*-bin.tar.gz
chmod -R 755 apache-dolphinscheduler-*-bin
cd apache-dolphinscheduler-*-bin
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
功能介绍
DolphinSchedule(以下简称小海豚)是一款可跨平台跨库的数据同步和调度工具,常用在作大数据调度工具,当然也支持关系数据库的调度,具有可视化操作界面,只需要配置相关参数即可快速执行相关调度任务,目前仅支持Linux系统。
这里我们以不同的关系数据库同步数据,来给大家介绍一下具体用法。
操作步骤
1、登录小海豚的web界面
账号密码在安装的时候由管理员设定,默认地址是:
http://localhost:12345/dolphinscheduler/ui
即可登录系统 UI。
默认的用户名和密码是:
admin/dolphinscheduler123
2、配置数据源中心
进入首页后,我们需要配置数据库连接,点击菜单栏里的“数据源中心”即可开始配置数据源
进入数据源配置中心,点击“创建数据源”,在弹出的页面上填写你需要连接的数据库信息
按页面要求填写数据库的对应信息即可。
填完后点击“测试连接”,在弹出连接成功点“确定”即可。
3、创建项目
1)点击菜单栏的“项目管理”,在打开的页面点击“创建项目”,在弹出的页面上填写项目名称即可。
2)创建成功后,点击创建好的项目名称,进入项目配置界面
点击左侧菜单栏中的“工作流定义”—“创建工作流”
在显示的页面中开始配置你的数据同步工作流
从左侧的控件中找到“DataX”控件(DataX的用法此前分享过,具体用法可见这篇:阿里开源的数据同步工具 DataX,稳定又高效,好用到爆!),将其拖入右边的工作区,开始配置工作流
节点名称填写当前工作流需要完成的任务即可,其它标红色“*”的为必选项,用默认配置即可,拉到页面底部开始配置同步任务。
在“SQL语句”的上下部分分别是源数据库和目标数据库,我们选择对应的源和目标数据库和表即可。
然后将我们的需要进行同步代码填写在“SQL语句”区域
注意:SQL语句区域通常只能写SELECT查询语句,因为默认是通过INSERT INTO操作来同步源和目标的,所以这里不能写其它DML语句(增,删,改)
其次SQL语句的列必须与目标数据库中目标表的字段数量一致,不抽取的字段可以用NULL代替,但不能缺失,否则会造成抽取数据列数不一致的错误。
3)创建成功后回到工作流界面,点击已经配置好的工作流右侧按钮“上线”,然后点击“运行”按钮,检查配置是否成功
4、配置定时任务
1)在工作流运行状态显示成功后,表示可以正常执行,接着点击“定时任务”按钮开始配置定时任务。
在打开的页面选择右侧按钮“编辑”
在弹出的页面中点击“定时”即可开始配置具体的执行时间和执行周期。
配置参数与Linux的定时任务类似,配置完成后记得点击“执行时间”查看定时任务接下来5次的执行具体时间,看是否与我们想要执行的时间一致。
确认时间和执行执行周期没问题后点击确定完成定时任务配置。
2)配置完定时任务务必记得要点击“上线”才能生效,如不点击则定时任务不会按时执行。
1)点击左侧菜单栏“工作流实例”可以看到我们的工作流的执行情况
如发现有非“成功”状态,则需检查工作流的工作日志。
2)点击“工作流实例”进入到工作流执行界面,双击具体的工作流
双击后我们可以看到弹出的工作流节点设置页面,
点击查看日志即可查看当前工作流的最新执行情况
通常如果有报错,会在最后面几行显示error提示,可以根据提示去调整工作流任务。
附:DataX脏数据问题解决办法
在进行抽数过程中,DataX转存数据时会出现的脏数据问题,此时需要自定义json模板来扩大脏数据阈值
1、编辑好SQL后运行,注意运行会失败,在失败日志中找到包含“content”,“setting”字段的json语句
2、复制整段json语句,注意密码为“*****”需要手动替换,并以这段语句为值,增加键"job",如
3、找到“setting”字段,修改percentage和record,#对脏数据最大记录数阈值(record值)或者脏数据占比阈值(percentage值,当数量或百分比)
在工作流定义中,选择“自定义模板”并将编辑好的json复制,即可