Hadoop 向配置单元表加载增量数据

Hadoop 向配置单元表加载增量数据,hadoop,hive,load,Hadoop,Hive,Load,我正在尝试将增量数据从一个配置单元外部表加载到另一个配置单元表。我在源表上有一个日期时间戳字段,用于每天标识新添加的行。我的任务是提取新添加到源中的行,并将它们插入到目标表中 我使用的是蜂巢0.14 我尝试了以下查询,但无法使其工作 INSERT INTO TABLE TARGET PARTITION (FIELD_DATE) SELECT A.FIELD1, A.FIELD2, A.FIELD3, CASE WHEN LENGTH(A.FIELD4)=0 THEN 0 ELSE 1 END,

我正在尝试将增量数据从一个配置单元外部表加载到另一个配置单元表。我在源表上有一个日期时间戳字段,用于每天标识新添加的行。我的任务是提取新添加到源中的行,并将它们插入到目标表中

我使用的是蜂巢0.14

我尝试了以下查询,但无法使其工作

INSERT INTO TABLE TARGET PARTITION (FIELD_DATE)
SELECT A.FIELD1, A.FIELD2, A.FIELD3,
CASE WHEN LENGTH(A.FIELD4)=0 THEN 0 ELSE 1 END,
CASE WHEN LENGTH(A.FIELD5)=0 THEN 0 ELSE 1 END,
FROM SOURCE A, (Select max(FIELD_TIMESTAMP) from TARGET) T
where A.FIELD_TIMESTAMP > T.FIELD_TIMESTAMP;
上面的代码花了几个小时,没有给出任何结果

我还尝试执行下面的查询,后来发现配置单元不支持WHERE子句中的子查询。(获得解析异常)

请帮助我仅选择初始加载后添加的行

谢谢。

试试这个

INSERT INTO TABLE TARGET PARTITION (FIELD_DATE)
SELECT A.FIELD1, A.FIELD2, A.FIELD3,
CASE WHEN LENGTH(A.FIELD4)=0 THEN 0 ELSE 1 END,
CASE WHEN LENGTH(A.FIELD5)=0 THEN 0 ELSE 1 END,
FROM SOURCE A JOIN 
(Select max(FIELD_TIMESTAMP) as FIELD_TIMESTAMP from TARGET) T
on 1=1
where A.FIELD_TIMESTAMP > T.FIELD_TIMESTAMP;
这是供您参考的已测试查询:

insert into orders_target
select o.* from orders_source o join
(select max(o1.order_date) order_date from orders_target o1) o2
on 1=1
where o.order_date > o2.order_date;
insert into orders_target
select o.* from orders_source o join
(select max(o1.order_date) order_date from orders_target o1) o2
on 1=1
where o.order_date > o2.order_date;