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

一、安装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"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}
  1. 达梦数据库:因为数据库介绍没有dm数据库,所以只能使用“通用RDBMS(支持所有关系型数据库)”这种模式进行传输。
{
    "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": "rdbmswriter",
                    "parameter": {
                        "username": "AES",
                        "password": "ffcsict123",
                        "column": [
                            "id",
                            "name",
							"time"
                        ],
                        "preSql": [
                            "delete from datax"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:dm://127.0.0.1:5236/AES?zeroDateTimeBehavior=converToNull&useUnicode=true&characterEncoding=utf-8",
                                "table": [
                                    "datax"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}
  1. 文件流:只能读取规则的二维表结构文件,并且只能读取本地文件及远程服务器的文件,只能调用api接口获取流
{
    "setting": {},
    "job": {
        "setting": {
            "speed": {
                "channel": 2
            }
        },
        "content": [
            {
                "reader": {
                    "name": "ftpreader",
                    "parameter": {
                        "protocol": "sftp",
                        "host": "192.168.248.11",
                        "port": 22,
                        "username": "root",
                        "password": "ffcsict123",
                        "path": [
                            "/root/datax/datax.txt","/root/datax/datax.csv"
                        ],
                        "column": [
                            {
                                "index": 0,
                                "type": "string"
                            },
                            {
                                "index": 1,
                                "type": "string"
                            },
                            {
                                "index": 2,
                                "type": "string",
                            
                            }
                        ],
                        "encoding": "GBK",
                        "fieldDelimiter": ",",
						"skipHeader": "true"
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "root",
                        "password": "tiger",
                        "column": [
                            "id",
                            "name",
							"time"
                        ],
                        "session": [
                        	"set session sql_mode='ANSI'"
                        ],
                        "preSql": [
                            "delete from datax1"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/datax?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8",
                                "table": [
                                    "datax1"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}

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

要在Linux上安装DataXDataX Web,您可以按照以下步骤进行操作: 1. 安装Java:DataX是基于Java开发的,所以首先需要安装Java运行环境。您可以使用以下命令来安装OpenJDK(Java的一个开源实现): ``` sudo apt update sudo apt install openjdk-8-jdk ``` 2. 下载DataX:您可以从DataX的官方GitHub页面(https://github.com/alibaba/DataX)上下载DataX的最新版本使用以下命令将其下载到您的Linux系统中: ``` wget https://github.com/alibaba/DataX/archive/refs/tags/vx.x.x.tar.gz ``` 3. 解压DataX使用以下命令解压下载的DataX压缩包: ``` tar -zxvf vx.x.x.tar.gz ``` 4. 配置DataX:进入解压后的DataX目录,并编辑`job`目录下的配置文件`job.json`,根据您的需要配置数据源和目标源的连接信息。 5. 运行DataX使用以下命令启动DataX并执行数据迁移任务: ``` cd DataX-x.x.x python bin/datax.py job/job.json ``` 至此,您已成功在Linux上安装和运行DataX。 如果您还希望安装DataX Web,可以按照以下步骤进行操作: 1. 安装Python和pip:DataX Web是基于Python和Flask框架开发的,所以需要安装Python和pip包管理工具。使用以下命令安装: ``` sudo apt install python3 python3-pip ``` 2. 下载DataX Web:您可以从DataX Web的官方GitHub页面(https://github.com/WeiYe-Jing/datax-web)下载最新版本使用以下命令将其下载到您的Linux系统中: ``` wget https://github.com/WeiYe-Jing/datax-web/archive/refs/tags/vx.x.x.tar.gz ``` 3. 解压DataX Web使用以下命令解压下载的DataX Web压缩包: ``` tar -zxvf vx.x.x.tar.gz ``` 4. 安装依赖:进入解压后的DataX Web目录,使用pip安装所需的依赖包: ``` cd datax-web-x.x.x pip3 install -r requirements.txt ``` 5. 配置DataX Web:编辑`config.py`文件,根据您的需要配置数据库连接等信息。 6. 初始化数据库使用以下命令初始化数据库: ``` python3 manage.py db init python3 manage.py db migrate python3 manage.py db upgrade ``` 7. 启动DataX Web使用以下命令启动DataX Web服务: ``` python3 manage.py runserver ``` 现在,您可以通过访问`http://localhost:8888`在浏览器中访问DataX Web界面,并使用DataX Web来执行和管理数据迁移任务。 希望对您有所帮助!如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值