ETL工具datax任务构建可视化管理datax

Stella981
• 阅读 2633

一 登录datax可视化管理系统datax-web

网址:http://127.0.0.1:8080/index.html (根据实际地址填写,url中必须带/index.html)

默认用户名/密码:admin/123456

ETL工具datax任务构建可视化管理datax

登录后

ETL工具datax任务构建可视化管理datax

二 使用操作

1 项目管理

ETL工具datax任务构建可视化管理datax

项目管理,用于对构建的job任务进行分类,此处根据实际项目创建即可。

2 执行器管理

ETL工具datax任务构建可视化管理datax

执行器会在启动时,自行注册,无需手动添加。自动注册,同时也表明管理端和执行端是连通的。不推荐手动添加,手动添加不能保证执行器是可靠的。

如果没有自动注册,则需要去检测执行器的配置及是否启动成功。

3 数据源管理

ETL工具datax任务构建可视化管理datax

3.1 数据源说明

数据源分两种:源数据源和目标数据源

源数据源是指:数据抽取来源的数据库

目标数据源:数据最后插入的目的地数据库。

比如:从SqlServer 同步数据到 mysql。

这里SqlServer就是源数据库,mysql就是目标数据库。

3.2 数据源添加

ETL工具datax任务构建可视化管理datax

驱动程序不用修改,默认即可。点击“测试连接”,连接成功,保存即可。如果连接不上,查找具体原因,修改相应参数。

例子:mysql

ETL工具datax任务构建可视化管理datax

4 任务管理-DataX任务模板

ETL工具datax任务构建可视化管理datax

任务模板配置好之后,供“任务构建”阶段选择用。

任务模板:

ETL工具datax任务构建可视化管理datax

参数说明:

  1. 执行器:非集群模式下,执行器只有一个,即默认自动注册的那一个。
  2. 任务描述:为模板起个名字,最好带上执行周期。如:用户相关数据_1分钟同步一次
  3. 路由策略:路由策略有很多个,建议选择“轮询”,即执行器集群部署时,选择哪个执行器。轮询策略,能保证每个执行器都有机会。
  4. 阻塞处理:选择单机串行。任务排队,串行执行。其他处理方式都会导致有任务不执行。
  5. Cron表达式:根据实际要求的同步周期进行配置。要细心,容易配错。

ETL工具datax任务构建可视化管理datax

举例:周期为每分钟执行一次,如下:

秒:指定00

分:每秒

时:每小时

日:每日

周:不指定

月:每月

年:每年

翻译一下:每年每月每天每个小时每分钟的第0秒执行这个任务。

  1. 任务类型:选择DataX任务。
  2. 所属项目:根据自己的配置选择。
  3. 子任务:这里会显示已经配置好的其他任务。当前任务执行完成之后,会触发一次子任务执行。但是不保证子任务一定执行成功,也不会对当前任务造成影响,只是触发而已。
  4. Jvm启动参数:这里不用配置,除非数据量特别大。任务执行时,默认1G的jvm内存。

每个任务调度执行时,都会分配。如果配置集群,执行器的个数要小于内存总大小/1G.比如服务器内存8G,执行器个数要小于8个,最好是6个以下。因为操作系统和应用程序运行也需要内存。执行器有几个,最大并行执行任务就有几个。并行任务并不等于并发线程数。一个任务在调度执行时也可能会产生并发。

  1. 报警邮件、超时时间、重试次数等,根据字面意思理解,按需配置。

5 任务管理-任务构建

ETL工具datax任务构建可视化管理datax

任务构建,是数据同步最核心的模块。绝大部分工作都是围绕这个模块进行了。

Datax 任务构建的目标是job.json文件,通过Datax-web可视化的四个步骤,简化了构建任务的过程,大大减少了工作量。

构建任务之前,目标数据库需要提前建立好同步需要的表结构。

5.1 步骤1 构建reader

配置数据来源及对应的表和字段。

  1. 数据库源:选择数据来源,即在“数据源管理”中配置的数据源。
  2. 数据库表名:下拉列表,自动补全。选择本次要同步的表。
  3. Sql语句:如果是单表,这个地方不需要写sql。只有关联查询时才需要写。

(如果关联查询用到多张表,第二步中的数据库表名,只选择一个即可)

  1. 切分主键:这里要填的是主键或关联查询中确定的主键。这里填了主键后,任务执行时,会根据数据量自动对数据分片,启动多个线程并发执行。加快执行速度。数据量小,可不填。
  2. 表所有字段:根据需要选择。
  3. Where条件:如果没有条件,可不填。

如果选择“时间增量”进行增量数据抽取,这里填,operationDate >= ${lastTime} and operationDate < ${currentTime}

operationDate是表中对应的记录操作时间的字段,具体是什么,以表中的字段名为准。

${lastTime}、${currentTime} 与 配置增量更新时,写的参数一致。

如果选择“ID增量”进行增量数据抽取,这里填 id>= ${startId} and id< ${endId}

${startId} 、${endId} 与配置增量更新时写的参数一致。

举例:

ETL工具datax任务构建可视化管理datax

5.2 步骤2 构建writer

选择目标数据库,对应的表和字段。

ETL工具datax任务构建可视化管理datax

  1. 数据库源:选择在数据源管理中配置的目标数据源。
  2. 数据库表名:目标表,根据需要选择
  3. 字段:目标表的字段,根据需要选择
  4. 前置sql语句:数据插入表之前执行的语句。如果是全量定时同步,则每次同步前都要清空表。这里需要填:truncate table 表名。如果是增量定时同步,则不需要清空表。只能填一条语句。
  5. postSql:数据插入表完成后,执行的后置sql语句,可以填多条,用;隔开。

举例:

ETL工具datax任务构建可视化管理datax

5.3 步骤3 字段映射

根据同步要求,选择对应的字段。如果顺序不对,则在构建后进行修改。

ETL工具datax任务构建可视化管理datax

5.4 步骤4 构建

ETL工具datax任务构建可视化管理datax

  1. 先点“构建”
  2. 再点“选择模板”

ETL工具datax任务构建可视化管理datax

ETL工具datax任务构建可视化管理datax

ETL工具datax任务构建可视化管理datax

5.5 提示构建成功后转向“任务管理”模块

ETL工具datax任务构建可视化管理datax

这里可以看到刚才“构建”的任务。

6 任务管理-任务管理

任务管理中可以对任务开启、停止、编辑、删除、执行、查看对应日志等操作

ETL工具datax任务构建可视化管理datax

  1. 状态:绿色代表任务启动,会定时执行。红色代表任务停止,不会定时执行。
  2. 注册节点:查看这个任务可以被哪些执行器执行。
  3. 下次触发时间:定时任务的下次执行时间。
  4. 执行状态:无,成功,失败。第一次创建,未执行前,状态是无。
  5. 操作:执行一次、查询日志、编辑、删除。

执行一次:手动触发任务,执行一次。

查询日志:跳转到本任务的日志列表

编辑:打开编辑窗口,显示任务的所有信息,可以修改。

删除:这个不用说了,任务不要了。

重点说一下编辑:点击编辑按钮,打开编辑页面。

ETL工具datax任务构建可视化管理datax

辅助参数:辅助增量数据抽取的。目前推荐使用“时间自增”。ID自增存在缺陷,历史ID对应的数据如果被修改过,在增量抽取时,永远不会更新。而“时间自增”这种方式对增量数据进行抽取,也可以抽取ID不变,其他字段修改过的数据。只要源数据库表中操作时间字段根据实际操作的时间更新过即可。

7 任务管理-批量构建

ETL工具datax任务构建可视化管理datax

批量构建适合同构表的批量同步,比如:1天一张订单表,现在要同步一年的365张订单表,这些表的结构完全一致,此时就可以选择批量构建。

非同构表批量同步也可以,因为没有字段的匹配过程,所以构建完成后,还需要在任务管理中找到任务进行编辑修改。

三 DataX和Datax-web 安装配置

Datax 和 Datax-web的关系:

Datax是异构数据库(同构也可以)离线同步的ETL工具。

Datax-web是可视化的管理系统,可以简化构建任务、管理任务、定时设置及调度执行,属于辅助datax使用的配套工具,提高工作效率。

DataX

gitee地址:

https://gitee.com/mirrors/DataX

github地址:

https://github.com/alibaba/DataX

DataX-web

gitee地址:

https://gitee.com/WeiYe-Jing/datax-web

github地址:

https://github.com/WeiYe-Jing/datax-web

关于文档说明:在以上开源地址打开后或者源码中都可以看到详细的说明.

1  Datax

ETL工具datax任务构建可视化管理datax

除了readme.md之外,还有其他文档

ETL工具datax任务构建可视化管理datax

除此之外,每个插件都有对应的介绍。

ETL工具datax任务构建可视化管理datax

2  Datax-web

ETL工具datax任务构建可视化管理datax

除了readme.md之外,还有其他文档

ETL工具datax任务构建可视化管理datax

ETL工具datax任务构建可视化管理datax

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
List的Select 和Select().tolist()
List<PersondelpnewList<Person{newPerson{Id1,Name"小明1",Age11,Sign0},newPerson{Id2,Name"小明2",Age12,
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这