Bootstrap

DataX数据迁移

DataX数据迁移

访问DataX Web管理页面:

http://ip:9527/index.html

用户名:admin,密码:123456

在这里插入图片描述

本文中示例将SqlServer数据增量同步到MySql中。

  1. 增量同步
  2. 同步时,MySql中的新字段设置默认值

1. 查看执行器是否注册成功

DataX 和DataX Web环境部署完成后,在执行器管理中,可以看到自动注册成功一个datax执行器。

在这里插入图片描述

2. 新增数据源

我们需要实现sqlserver同步数据到mysql,需要配置两个数据源。

在这里插入图片描述

3. 新建项目

任务是以项目维度管理,在新增任务时,需要配置项目名称。所以我们先新建一个项目。

在这里插入图片描述

4. 新建任务模板

创建一个任务模板,每30s执行一次任务。

在这里插入图片描述

5. 任务构建

通过任务构建的配置生成datax可以识别的json配置。

  1. 构建reader

    时间增量: update_time >=REPLACE(${lastTime},'%', ' ') and update_time < REPLACE(${currentTime},'%', ' ')
    

    在这里插入图片描述

    注意:

    • 有where条件时,sql语句可以不写,默认是select *
    • 根据时间增量时,lastTime和currentTime是两个变量,名称可以自定义,在后面的配置中注意匹配就可以
    • 我在配置时,使用REPLACE(${lastTime},‘%’, ’ ') ,将时间中的%替换成空格。是因为我的sqlserver表中update_time字段是datetime类型,格式为yyyy-MM-dd HH:mm:ss,但是在执行任务时,通过查看日志发现,查询的sql中,变量的时间是yyyy-MM-dd%HH:mm:ss这种格式,导致查询报错。所以我使用了REPLACE函数替换%,此处具体配置要看自己的环境。
  2. 构建writer

    在这里插入图片描述

  3. 选择需要映射的字段

    在这里插入图片描述

  4. 构建

    在这里插入图片描述

    配置完成后,点击下一步,此时进入任务管理页面,我们可以看到构建好的一个任务。

    在这里插入图片描述

6. 修改任务

由于我们需要增量同步,并且要对status配置默认值,之前的构建过程中,并没有传入时间参数的位置,也没有配置默认参数的位置。所以我们需要对任务进行修改。

  1. 在任务管理中点击编辑

    在这里插入图片描述

  2. 配置时间自增

    在这里插入图片描述

    • 辅助参数选择时间自增
    • 增量开始时间即第一次执行的起始时间,自定义设置
    • 增量时间格式选择匹配数据库中的时间格式
    • 增量时间字段 -DlastTime=‘%s’ -DcurrentTime=‘%s’
      • -D是datax参数的标识符,必须这么写
      • -D后面的lastTime和currentTime是传入where条件的参数名,可自定义名称。和我们之前配置sql的变量名匹配上就行。
      • %s是用来替换变量的占位符
      • -DlastTime=‘%s’和-DcurrentTime=’%s’中间有一个空格,并且必须是一个空格
  3. 配置status默认值

    我们之前提到,reader和writer的字段必须一一对应,但是之前的配置中,writer比reader多一个status字段,我们需要配置默认参数。

    修改自动生成的json配置,在reader的column中增加一个一个字段,“‘启用’ as status”,意思为:给status字段默认赋值为启用,由于是字符串类型,所以启用也需要加引号。

    在这里插入图片描述

  4. 至此,修改完成,保存后,启动任务。

7. 查看任务执行日志

在这里插入图片描述

;