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

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在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、付费专栏及课程。

余额充值