异构数据迁移工具:DataX、DataX-Web

异构数据迁移工具:DataX、DataX-Web

异构数据迁移工具:DataX、DataX-Web


一、DataX + DataX-Web 简介:

1. DataX 核心特性

DataX 是阿里开源的 基础数据迁移引擎(纯命令行工具,无界面),核心功能是跨数据源同步数据。

  • 架构:通过 “Reader(读数据插件)+ Writer(写数据插件)” 实现跨数据源(MySQL、Oracle、HDFS 等)数据搬运;
  • 局限性:本身不自带分表规则逻辑,需配合脚本预处理或自定义插件实现按分表规则拆分数据;
  • 优势:轻量、开源免费、跨数据源兼容性强,适合中小规模数据迁移。

2. DataX-Web 核心作用

DataX 是阿里开源的 基础数据迁移引擎(纯命令行工具,无界面),核心功能是跨数据源同步数据。

  • 核心功能:可视化配置迁移任务、定时调度(如每日增量同步)、迁移进度监控、日志查询与异常告警;
  • 依赖关系:必须与 DataX 引擎配合使用(部署时需关联 DataX 安装路径,无法独立工作);
  • 优势:降低操作门槛,支持多任务管理,适合非技术人员或批量任务场景。

二、DataX

1. 下载 (两种方式)

方式二:gitcode 下载:https://gitcode.com/gh_mirrors/da/DataX
下滑动到 Quick Start 章节

在这里插入图片描述

方式一:github 下载:https://github.com/alibaba/DataX
下滑动到 Quick Start 章节

在这里插入图片描述

2. 设置 支持 python3(可选)

原因:从github上下载的版本只支持python2.x版本

如果你的python环境是python3.0以上的话,
请到 https://github.com/WeiYe-Jing/datax-web/tree/master/doc/datax-web/datax-python3
下载对应的三个.py文件代替datax文件夹中bin目录下的三个.py文件即可。

在这里插入图片描述

3. 测试安装是否成功

cd的安装位置的bin目录下执行

//查看模板 python datax.py -r streamreader -w streamwriter 
在这里插入图片描述

2、进入windows中cmd命令环境中:
解压后,可直接运行样例,查看是否安装成功:

在这里插入图片描述

1、将datax压缩包解压在安装目录:

在这里插入图片描述

4. 简单的入门测试(mysql案例)

点击一下这个可以找到相关数据库的json脚本格式 进行参考

在这里插入图片描述


我这边就 把同一个库下面的 user表 里面的数据 写到 user_0 表里面,相关 json 如下:(我命名为job001.json)

{"job":{"setting":{"speed":{"channel":2}, "errorLimit":{"record":5, "percentage":0.03}}, "content":[{"reader":{"name":"mysqlreader", "parameter":{"username":"root", "password":"root", "column":["id", "username", "password_hash", "role_id", "real_name", "email", "phone", "deleted_at", "created_at", "updated_at"], "connection":[{"table":["users"], "jdbcUrl":["jdbc:mysql://localhost:3306/student_management?characterEncoding=utf8&useSSL=false"]}]}}, "writer":{"name":"mysqlwriter", "parameter":{"username":"root", "password":"root", "column":["id", "username", "password_hash", "role_id", "real_name", "email", "phone", "deleted_at", "created_at", "updated_at"], "connection":[{"table":["users_0"], "jdbcUrl":"jdbc:mysql://localhost:3306/student_management?characterEncoding=utf8&useSSL=false"}]}}}]}}

放到 datax\job 目录下,然后 到 datax\bin 下 打开 cmd 窗口,执行

python datax.py ../job/job001.json 
在这里插入图片描述


成功 复制过去了

在这里插入图片描述

三、DataX-Web

https://github.com/WeiYe-Jing/datax-web/releases
https://github.com/alibaba/DataX/releases

1. 下载源码

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

2. 创建数据库

执行bin/db下面的datax_web.sql文件
先自己创建一个datax_web的数据库,再把这个脚本执行一下

在这里插入图片描述

3. 修改项目配置

1.修改datax_admin下resources/application.yml文件(按需调整)

修改datax-admin项目中的配置文件application.yml,其配置文件中不少配置项是通过配置环境变量获取的,我这里直接定义在配置文件中了。需要重点调整的就是data.path目录,数据库地址、账号密码、服务端口等
server: port: 8080# port: ${server.port} spring: #数据源 datasource: username: root password: root url: jdbc:mysql://localhost:3306/datax_web?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8 # password: ${DB_PASSWORD:password}# username: ${DB_USERNAME:username}# url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_DATABASE:dataxweb}?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8 driver-class-name: com.mysql.jdbc.Driver hikari: ## 最小空闲连接数量 minimum-idle: 5## 空闲连接存活最大时间,默认600000(10分钟) idle-timeout: 180000## 连接池最大连接数,默认是10 maximum-pool-size: 10## 数据库连接超时时间,默认30秒,即30000 connection-timeout: 30000 connection-test-query: SELECT 1##此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟 max-lifetime: 1800000# datax-web email mail: host: smtp.qq.com port: 25 username: [email protected] password: xxx # username: ${mail.username}# password: ${mail.password} properties: mail: smtp: auth: true starttls: enable: true required: true socketFactory: class: javax.net.ssl.SSLSocketFactory management: health: mail: enabled: false server: servlet: context-path: /actuator mybatis-plus: # mapper.xml文件扫描 mapper-locations: classpath*:/mybatis-mapper/*Mapper.xml # 实体扫描,多个package用逗号或者分号分隔#typeAliasesPackage: com.yibo.essyncclient.*.entity global-config: # 数据库相关配置 db-config: # 主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID"; id-type: AUTO # 字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断" field-strategy: NOT_NULL # 驼峰下划线转换 column-underline: true# 逻辑删除 logic-delete-value: 0 logic-not-delete-value: 1# 数据库类型 db-type: mysql banner: false# mybatis原生配置 configuration: map-underscore-to-camel-case: true cache-enabled: false call-setters-on-nulls: true jdbc-type-for-null: 'null' type-handlers-package: com.wugui.datax.admin.core.handler # 配置mybatis-plus打印sql日志 logging: level: com.wugui.datax.admin.mapper: info path: ./data/applogs/admin # level:# com.wugui.datax.admin.mapper: error# path: ${data.path}/applogs/admin#datax-job, access token datax: job: accessToken: #i18n (default empty as chinese, "en" as english) i18n: ## triggerpool max size triggerpool: fast: max: 200 slow: max: 100### log retention days logretentiondays: 30 datasource: aes: key: AD42F6697B035B75 

2.修改datax_executor下resources/application.yml文件(按需调整)

# web port server: # port: ${server.port} port: 8081# log config logging: config: classpath:logback.xml # path: ${data.path}/applogs/executor/jobhandler path: ./data/applogs/executor/jobhandler datax: job: admin: ### datax admin address list, such as "http://address" or "http://address01,http://address02" addresses: http://127.0.0.1:8080 # addresses: http://127.0.0.1:${datax.admin.port} executor: appname: datax-executor ip: #port: 9999 port: ${executor.port:9999}### job log path logpath: ./data/applogs/executor/jobhandler # logpath: ${data.path}/applogs/executor/jobhandler### job log retention days logretentiondays: 30### job, access token accessToken: executor: jsonpath: D:\\temp\\executor\\json\\# jsonpath: ${json.path} pypath: D:\Develop\MigraTools\datax\bin\datax.py # pypath: ${python.path}
  • admin.addresses datax_admin部署地址,如调度中心集群部署存在多个地址则用逗号分隔,执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";
  • executor.appname 执行器AppName,每个执行器机器集群的唯一标示,执行器心跳注册分组依据;
  • executor.ip 默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 “执行器注册” 和 “调度中心请求并触发任务”;
  • executor.port 执行器Server端口号,默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
  • executor.logpath 执行器运行日志文件存储磁盘路径,需要对该路径拥有读写权限;
  • executor.logretentiondays 执行器日志文件保存天数,过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
  • executor.jsonpath datax json临时文件保存路径
  • pypath DataX启动脚本地址,例如:xxx/datax/bin/datax.py(这个路径是上面搭建 dataX 已经创建好的启动脚本)
    如果系统配置DataX环境变量(DATAX_HOME),logpath、jsonpath、pypath可不配,log文件和临时json存放在环境变量路径下。

4. 启动项目

  • 1.运行datax_admin下 DataXAdminApplication

2.运行datax_executor下 DataXExecutorApplication

在这里插入图片描述


admin启动成功后日志会输出三个地址,两个接口文档地址,一个前端页面地址

在这里插入图片描述

5. 启动成功

启动成功后打开页面(默认管理员用户名:admin 密码:123456)
http://127.0.0.1:8080/index.html

在这里插入图片描述

6. 实战

1. 项目管理-添加项目

2. 配置数据源

注意:驱动和数据库版本一定要一致!!!

DataX-Admin 的 MySQL 驱动默认是 用的 5.1.49 , DataX 的 mysqlreader 和 mysqlwriter 的 mysql 驱动插件 默认也是 5.1.49
而我的mysql数据库是8.0.44版本的,所以导致定时任务一直是在连接中,没有往下跑
所以我将 DataX-Admin 的 MySQL 驱动 和 DataX 的 mysqlreader 和 mysqlwriter 的 mysql 驱动插件 都换成了 8.0.33版本的
DataX-Admin 具体操作如下

DataX 的 mysqlreader 和 mysqlwriter 的 操作如下
旧的mysql驱动版本我删除掉了
mysql8.0.33这个jar的下载地址为https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.0.33

在这里插入图片描述

DataX-Admin 具体操作如下

在这里插入图片描述


在这里插入图片描述
3. 创建执行器
在这里插入图片描述
4. 创建DataX任务模板
在这里插入图片描述
5. 构建任务生成同步 json
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
  • 再点击下一步

点击选择模板

在这里插入图片描述


以下情况才是表示选中成功

在这里插入图片描述

点击构建

在这里插入图片描述
6. 任务管理
在这里插入图片描述

数据库的情况

在这里插入图片描述

点击执行一次看看效果

在这里插入图片描述


在这里插入图片描述

四、报错

1.在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数

原来的如下:

"setting":{"speed":{"byte":1048576,"channel":3}}

删除 speed.byte 配置,仅保留 channel 数(由 DataX 自动适配):

"setting":{"speed":{"channel":3}}

2.windows下乱码修复

cmd窗口下,输入指令:chcp 65001

3.报winutils缺失请下载

在这里插入图片描述

下载后的路径

在这里插入图片描述
在这里插入图片描述

五、参考文章

【1】window10本地运行datax与datax-web

Read more

LabVIEW巡检机器人高精度轨迹跟踪虚拟仿真系统

LabVIEW巡检机器人高精度轨迹跟踪虚拟仿真系统

基于LabVIEW 2019通实现算法可视化集成、多维度数据实时监测与仿真场景动态交互,解决传统轨迹跟踪依赖预设路径、抗干扰能力弱、误差累积等问题,可直接复用于电力、化工、仓储等领域的巡检机器人研发与调试。 LabVIEW功能 1. 轨迹建模与参数配置模块 (1)节点与运动模型构建 * 基于 LabVIEW “数组与簇” 控件定义巡检节点属性,支持导入 Excel 格式的节点坐标表(含巡检点编号、世界坐标 (x,y)、优先级、电量补给点标记),最多可支持 100 个巡检节点的批量导入与管理。 * 通过 LabVIEW 数学脚本节点(MathScript Node)编写运动学模型公式,直接嵌入原文核心算法: * 支持动态配置电量阈值(默认 20%,可通过滑动控件调整),当机器人剩余电量低于阈值时,自动触发 “返回充电桩” 路径重规划。 (2)算法参数可视化配置 * 遗传算法参数面板:通过 LabVIEW

2026年低代码软件开发工具推荐合集

2026年低代码软件开发工具推荐合集

预算三万、工期三周、没有程序员——这就是小企业数字化的“死亡三角”。传统外包听到需求就报价十五万,时间排期半年起步;低代码的AI软件开发工具却用大语言模型把死亡三角变成黄金三角:业务人员输入需求→获取PRD→获取原型图&界面设计→同步获得前端代码,Saas、电商、餐饮平台三天上线。本文针对5款热门低代码AI开发工具做了横向对比,帮你快速找到契合自身需求的工具。 1.UXbot 核心优势:主打 “AI 原型设计+ 低代码”,不用懂技术,输入文字描述就能生成完整应用。不管是想做 APP、网页还是平板端只要说清需求(比如 “设计医疗Saas管理系统,包在线医生咨询系统、预约挂号、提醒与通知等”),AI 会自动生成可视化PRD,支持拖拽修改,删减,软件交互逻辑和内容板块,确定好后,UXbot直接生成多页面可交互的原型+设计,颜色、布局、组件都能自定义,还能补全页面跳转逻辑。 最重要的是,UXbot支持把高保真界面转换成Web前端代码,

MediaPipe Holistic案例解析:虚拟现实动作合成技术

MediaPipe Holistic案例解析:虚拟现实动作合成技术 1. 引言:AI 全身全息感知的技术演进 随着虚拟现实(VR)、增强现实(AR)和元宇宙概念的持续升温,对高精度、低延迟的人体动作捕捉技术需求日益增长。传统动捕系统依赖昂贵的传感器设备与专业场地,难以普及。而基于计算机视觉的单目摄像头动捕方案,正成为消费级应用的核心突破口。 Google 推出的 MediaPipe Holistic 模型,正是这一趋势下的里程碑式成果。它将人脸、手势与身体姿态三大感知任务统一建模,在无需专用硬件的前提下,仅通过普通摄像头即可实现接近电影级的动作合成效果。该技术不仅降低了动捕门槛,更为虚拟主播、远程协作、体感交互等场景提供了端到端的轻量化解决方案。 本文将以一个集成 WebUI 的 CPU 可运行镜像为实践载体,深入剖析 MediaPipe Holistic 在虚拟现实动作合成中的关键技术实现路径,涵盖其架构设计、关键点分布、性能优化策略及实际应用限制。 2. 技术原理:Holistic 模型的多模态融合机制 2.1

智能交通系统的FPGA进化论:从基础信号灯到动态调优

智能交通系统的FPGA进化论:从基础信号灯到动态调优 十字路口的红绿灯控制系统正在经历一场由FPGA技术驱动的革命。十年前,固定时长的信号灯还是城市道路的标配,而今天,能够感知车流、自动调整配时的智能交通系统已成为智慧城市建设的关键基础设施。这种转变背后,是FPGA(现场可编程门阵列)技术从实验室走向实际应用的生动写照。 1. 传统交通信号灯系统的局限与FPGA的机遇 固定时长的交通信号灯系统存在明显的效率瓶颈。在车流量波动较大的路口,预设的定时方案往往导致空等或拥堵。我曾在一个晚高峰观察到,东西向车流早已排起长龙,而南北向的绿灯却依然按照固定时长亮着,面对空荡荡的马路"尽职尽责"。 FPGA的并行处理能力和硬件可重构特性,使其成为解决这一问题的理想选择。与通用处理器相比,FPGA能够: * 实时响应:纳秒级的延迟确保对突发交通事件的即时反应 * 并行处理:同时监控多个方向的车辆检测传感器 * 灵活配置:通过VHDL/Verilog代码更新即可调整控制算法 -- 基础定时控制模块示例 entity traffic_timer is Port ( clk : in S