DataX从入门到精通 第3课 ETL之DataX datax-web单表数据同步

1、创建项目

1)项目管理-》添加

2)项目列表

2、数据源管理

1)添加数据源test1

test1数据库中创建表student,然后插入几条数据。

复制代码
-- 创建 student 表
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` INT NOT NULL AUTO_INCREMENT COMMENT '学生ID',
  `name` VARCHAR(50) NOT NULL COMMENT '姓名',
  `sex` TINYINT NOT NULL COMMENT '性别(0:女,1:男)',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';

-- 插入几条测试数据
INSERT INTO `student` (`name`, `sex`) VALUES
('张三', 1),
('李四', 0),
('王五', 1),
('赵六', 0),
('孙七', 1);

2)添加数据源test2

3、 任务管理

1)DataX任务模板

2)任务构建

构建reader:从哪个数据源读取数据。

构建writer:将数据写入哪个数据源。

前置sql语句:前置sql在insert之前执行,如

复制代码
-- 关闭外键约束检查
SET FOREIGN_KEY_CHECKS = 0;

postSql:sql执行结束之后执行,如

复制代码
-- 重新开启外键约束检查
SET FOREIGN_KEY_CHECKS = 1;

字段映射

构建,点击构建后自动生成json,然后选择datax任务模板。

3)任务管理

构建成功的任务会展示在这里。

点击操作中的执行一次进行触发job

查看执行日志,任务执行失败,原因是我系统没有安装python2,只安装了python3。

改造执行器(步骤略),使其可以支持配置python的安装路径,在application.yml文件中添加python配置即可。

重写执行一次,成功执行任务

查看日志

查看test2中的student表,发现中文存在乱码,继续查找原因。

经查看任务配置文件中dbc连接中没有添加字符集编码,添加utf8即可,如

jdbc:mysql://127.0.0.1:3308/test1?useSSL=false&characterEncoding=utf8&useUnicode=true

在使用datax-web的过程中也会发现一些功能不够完善的地方,比如数据源只能新增,不能编辑和删除操作等,后续这些问题都会陆续修复。

相关推荐
德昂信息dataondemand2 天前
数仓ETL避坑指南:如何攻克时序指标中的数据问题
数据仓库·商务智能
哥本哈士奇2 天前
dbt+SQLServer构建数据仓库(3):dbt_project.yml配置精讲
数据仓库·sqlserver
哥本哈士奇2 天前
dbt+SQLServer构建数据仓库(4):分层建模实战
数据仓库·sqlserver
l1t3 天前
kryonix提交的DuckDB 统一并优化标量执行器基础设施 - #24564 PR
开发语言·数据库·数据仓库·sql
SeaTunnel3 天前
Apache SeaTunnel 提交一个任务都经过了什么?
java·大数据·服务器·apache·etl·seatunnel
ZCBUS实时计算4 天前
政务海量分库分表汇聚实战:基于 3 节点 ZCBUS 集群完成医保 10TB 数据实时整合
大数据·数据库·数据仓库·sql·dba·etl·政务
hopsky5 天前
数据架构与商业智能
数据仓库·bi
APItesterCris7 天前
Open Claw 实战教程:5 分钟搭建京东商品自动化监控与数据分析系统
大数据·运维·数据库·数据仓库·自动化
RestCloud9 天前
ETL、ELT、CDC区别详解,2026数据集成模式选型指南与落地实战
数据仓库·etl·cdc·数据同步·数据集成平台·实时数据同步·elt
江晓鱼未暖9 天前
十七、Redis 核心原理与架构详解
大数据·数据库·数据仓库·redis·缓存·架构