0
点赞
收藏
分享

微信扫一扫

datax和datax_web的搭建与入门使用(windows版本)

精进的医生 2022-03-23 阅读 54
数据库

文章目录

一、安装datax环境

  1. 安装python2.7.18(配置环境变量):https://www.python.org/downloads/release/python-2718/
  2. 安装jdk8(配置环境变量)
  3. 安装 maven 3.x(配置环境变量)
  4. datax.tar.gz包下载并解压:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
  5. datax源码下载:https://github.com/alibaba/DataX。(下载源码主要是因为某些源码需要自己修改,然后重新打包覆盖导datax,如下述的mysql版本不一致例子)
    ps1:自动下载依赖,如果hitsdb-client报错,则将hitsdb-client依赖版本改为0.3.7即可
    ps2:因为我的项目用的是mysql8,所以需要将mysqlReadermysqlWriter服务的mysql的依赖改为8.0.17,默认是5.x
    ps3:datax-all服务执行clean-install
    ps4:将mysqlReadermysqlWriter生成的target–>datax–>plugins复制到dataxbin同级的目录下,覆盖即可
    ps5:将“datax\plugin\reader\mysqlreader\libs”、“datax\plugin\writer\mysqlwriter\libs”目录下的mysql5的包删除

二、使用datatx

  1. 打开cmd界面
  2. 进入dataxbin目录下
  3. 输入CHCP 65001 防止中文乱码
  4. 查看模板命令行: python datax.py -r streamreader -w streamwriter
  5. 执行脚本:python datax.py E:\datax\datax\datax\job\job.json
    ps1:报错:提供的配置文件[E:\datax\datax\datax\plugin\reader._cassandrareader\plugin.json]不存在. 请检查您的配置文件.
    ​ —>解决:删除datax\plugin\writerdatax\plugin\reader底下"._"开头文件
  6. 编写脚本,将脚本存放到datax\datax\job目录底下,然后执行后python datax.py datax\job\你的脚本.json运行
    ps1:脚本格式信息可以去https://github.com/alibaba/DataX/查看
    在这里插入图片描述
    ps1:脚本基础参数说明(mysql、oracle)
{
    "job": {
        "setting": {
            "speed": {
                "channel": 并发数
            }
        },
        "content": [
            {
                 "reader": {
                    "name": "固定的名字",
                    "parameter": {
                        "username": "账号",
                        "password": "密码",
                        "column": [
                            "字段1",
                            "字段2",
							"字段3"
							ps:[*]表示所有列,但是不建议使用
                        ],
                        "splitPk": "分片字段,丢给task,所以必须是整形。一般用主键即可(非必须)",
                        "connection": [
                            {
                                "table": [ "表"],
                                "jdbcUrl": [  "数据库连接地址"],
								"querySql":["这里可以写查询数据的sql语句,但是如果这里写了,则不允许再配置table,否则会报错(非必须,table和querySql只能存在一个)"]
                            }
                        ],
						"where":"过滤条件"
                    }
                },
                "writer": {
                    "name": "固定的名字",
                    "parameter": {
                        "writeMode": "写入策略",
                        "username": "账户",
                        "password": "密码",
                        "column": [
                            "字段1",
                            "字段2",
							"字段3"
                        ],
                        "session": [
                        	"DataX在获取Mysql连接时,执行session指定的SQL语句,修改当前connection session属性(非必须)"
                        ],
                        "preSql": [
                            "写入数据到目的表前,会先执行这里的标准语句(非必须)"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "数据库连接地址",
                                "table": [
                                    "表"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}

ps3:将mysql的datax数据过滤后迁移到oracle实例

{
    "job": {
        "setting": {
            "speed": {
                "channel": 1
            }
        },
        "content": [
            {
                 "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "tiger",
                        "column": [
                            "id",
                            "name",
							"time"
                        ],
                        "splitPk": "id",
                        "connection": [
                            {
                                "table": [
                                    "datax"
                                ],
                                "jdbcUrl": [
     "jdbc:mysql://127.0.0.1:3306/datax?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8"
                                ]
                            }
                        ],
						"where":"id < 10"
                    }
                },
                 "writer": {
                    "name": "oraclewriter",
                    "parameter": {
                        "username": "HYDROPOWER_JIANGXI",
                        "password": "ffcsict123",
                        "column": [
                            "id",
                            "name",
							"time"
                        ],
                        "preSql": [
                            "delete from datax"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:oracle:thin:@192.168.35.9:1521:orcl",
                                "table": [
                                    "datax"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}

三、安装datax_web

  1. datax_web下载源码:https://github.com/WeiYe-Jing/datax-web
    ps1:创建数据库:脚本文件路径–>datax-web\bin\db
    ps2:修改配置文件:修改datax-admindatax-executor下的application.yml,将变量路径与端口都根据注释内容放开,数据库和目录根据电脑情况自行修改。
    ps3:数据库路径后面记得加上“&allowPublicKeyRetrieval=true
    ps4:mail部分直接放开xx即可
  2. hadoop2.7.4下载:https://github.com/vhma/winutils
    ps1:下载完,解压,需要配置环境变量。HADOOP_HOME:地址。path%HADOOP_HOME%/bin
  3. 启动datax-admindatax-executor服务,访问地址:http://localhost:8080/index.html,账号密码:admin/123456
    在这里插入图片描述

四、datax_web的使用

  1. 创建项目
    在这里插入图片描述

  2. 执行器管理中新建执行器(原来库里已有默认的,可直接使用)
    在这里插入图片描述

  3. 新建数据源
    在这里插入图片描述

  4. 任务管理中Datax任务模板创建
    在这里插入图片描述

  5. 任务构建
    在这里插入图片描述
    选对应的目标库与目标库,字段对应上即可。可以在执行前编写前置sql,比如清除表数据操作等
    在这里插入图片描述
    勾选对应的标和字段,按顺序匹配
    在这里插入图片描述
    然后构建,点击生成模板,下一步即可
    在这里插入图片描述

  6. 任务管理模块就可以看到生成的任务管理了。可以点击启动,或者执行一次,然后查看日志看看是否成功
    在这里插入图片描述
    在这里插入图片描述
    如果报错的话,可以查看日志以及检查相关的脚本信息
    在这里插入图片描述
    在这里插入图片描述

举报

相关推荐

0 条评论