内容纲要
基于ID增量导入
一. TDT侧配置
1.1 配置oracle和inceptor连接
1.2 JDBC Reader配置
Oracle侧表 lkw.emp01
create table EMP01
(
empno NUMBER(4) not null,
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(7,2),
deptno NUMBER(2)
)
tablespace PFM;
Inceptor 侧orc事务表 new_emp01(需要提前创建):
CREATE TABLE lkw.new_emp01(
empno int DEFAULT NULL COMMENT '雇员编号',
ename string DEFAULT NULL COMMENT '雇员姓名',
job string DEFAULT NULL COMMENT '工作职位',
mgr int DEFAULT NULL COMMENT '领导编号',
hiredate date DEFAULT NULL COMMENT '雇佣日期',
sal int DEFAULT NULL COMMENT '月薪',
comm int DEFAULT NULL COMMENT '奖金,或者为佣金',
deptno int DEFAULT NULL COMMENT '部门编号'
)
CLUSTERED BY (
empno)
INTO 1 BUCKETS stored as orc_transaction;
1.3 JDBCBunch WRITER配置
二. Workflow侧配置
2.1 SQL任务
2.2 数据流任务
2.3 工作流参数配置
2.4 调度周期
按需求定义调度周期,测试的话设置成一分钟一次
三. 测试
3.1 首次调度
第一次调度,会将所有empno>0的全部导入
3.2 插入数据测试
Oracle侧插入一条测试数据,等待wf调度,调度成功之后,检查inceptor侧数据是否导入成功
基于TIME增量导入
一. TDT侧配置
1.1 JDBC Reader配置
Oracle侧表 lkw.emp01
Inceptor 侧orc事务表 tdt_dataflow_with_date (需要提前创建):
CREATE TABLE lkw.tdt_dataflow_with_date(
empno decimal(38,0) DEFAULT NULL,
ename string DEFAULT NULL,
job string DEFAULT NULL,
mgr decimal(38,0) DEFAULT NULL,
hiredate timestamp DEFAULT NULL,
sal decimal(7,2) DEFAULT NULL,
comm decimal(7,2) DEFAULT NULL,
deptno decimal(38,0) DEFAULT NULL
)
CLUSTERED BY (
empno)
INTO 3 BUCKETS STORED AS ORC_TRANSACTION;
1.2 JDBCBunch WRITER配置
二. Workflow侧配置
2.1 数据流任务
2.2 调度周期
参数设置是按照天增量导入的,为了测试方便,我们把调度周期设置成1min
三. 测试
3.1 插入数据测试
执行insert语句,
insert into emp01 (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values ('8000', 'lkw1', 'master', '7839', to_date('17-6-2019', 'dd-mm-yyyy'), '99999', 99999, '20');
insert into emp01(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values ('8001', 'lkw1', 'master', '7839', to_date('18-6-2019', 'dd-mm-yyyy'), '99999', 99999, '20');
insert into emp01(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values ('8002', 'lkw1', 'master', '7839', to_date('19-6-2019', 'dd-mm-yyyy'), '99999', 99999, '20');
由于调度周期是1min,每分钟都会把最近1d内新增的这3条数据插入到目标表,所以会看到很多重复数据,测试通过
下面也会看到4份新增数据