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的过程中也会发现一些功能不够完善的地方,比如数据源只能新增,不能编辑和删除操作等,后续这些问题都会陆续修复。

相关推荐
Database_Cool_12 天前
大规模数据分析降本指南:AnalyticDB Serverless 弹性架构实战
数据仓库·阿里云·架构·数据分析·serverless
Database_Cool_12 天前
什么是湖仓一体?和数据仓库的本质区别(附 AnalyticDB MySQL 湖仓一体方案)
数据库·数据仓库·mysql
递归尽头是星辰13 天前
AI 访问数据仓库:从直连到微服务化
数据仓库·人工智能·微服务·dataagent·ai数据治理
TPBoreas14 天前
springboot3.5比2.x做了哪儿些提升
数据仓库·hive·hadoop
Nefu_lyh15 天前
【Hive】七、Hive 函数:聚合 / 统计 / 分位数 / 集合 / 高级分组
数据仓库·hive·hadoop
KANGBboy15 天前
hive UDF函数
数据仓库·hive·hadoop
云器科技17 天前
螳螂科技:从组装到统一,如何用云器 Lakehouse 完美替代“MC+DW+ADB”三件套?
数据库·数据仓库·人工智能
白日与明月18 天前
Hive子查询中的ORDER BY陷阱:为什么排序“消失”了?
数据仓库·hive·hadoop
isNotNullX19 天前
企业数据中台建设,ETL工具选错了会踩哪些坑?
数据仓库·etl·原型模式
SelectDB技术团队19 天前
预约发布会|核心产品力首发,如何构建面向 Agent 时代的企业级数据引擎
数据库·数据仓库·人工智能·数据分析·可观测·apache doris·selectdb