为什么要做增量导入? 例如mysql表中的数据导入hive,如果第一天抽取了mysql中t_user表中的全部数据,则第二天只需要抽取新增数据即可! 增加导入是利用where 条件查询实现的,查询条件一般是自增的id或者时间列 下面演示基于时间列的数据增量抽取。
1.数据准备
# 1. 在mysql数据库创建如下表结构:
create table t_order(
id int primary key auto_increment,
amt decimal(10,2),
`status` int default 0,
user_id int,
create_time timestamp DEFAULT CURRENT_TIMESTAMP,
modify_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
# 2.插入数据
insert into t_order values(null,100,0,1001,'2023-07-01 10:10:10','2023-07-01 10:10:10');
insert into t_order values(null,99,0,1002,'2023-07-01 10:10:10','2023-07-01 10:10:10');
select *
from t_order;
-- 2.在hive创建如下表结构
create table t_order(
id int,
amt decimal(10,2),
`status` int,
user_id int,
create_time string,
modify_time string
)partitioned by (dt string)
row format delimited fields terminated by '\t';
-- 手动添加分区
alter table t_order add partition (dt='2023-07-01');
show partitions t_order;
2.编写增量数据导入datax配置文件
{
"job": {
"content": [
{