希望可以实现:hive更新数据时如果新数据中的id与旧数据id重复,那么就不执行更新
我的疑问:在进行数据更新时遇到的困难,查询了大部分相关帖子都是用新数据去覆盖旧数据,在mysql中可以用ignore和unique,但是hive并没有这个能力。
旧数据 left join 新数据 选出旧数据关联不上的(也就是旧数据有,新数据没有的),
然后再与新数据union ,这样没更新的旧数据就和新数据在一个表了
SELECT
CONCAT(' select ',GROUP_CONCAT(COLUMN_NAME),' from ', TABLE_NAME,' ;')
FROM information_schema.COLUMNS
WHERE table_name = 'xxxx'
AND TABLE_SCHEMA = 'ccms_xxx' and COLUMN_NAME != 'id';
用于
快速写出Select表中除了某个字段的所有字段最后使用了再新建一个旧数据表
left join 旧数据 on 新数据.id=旧数据.id
where 旧数据.id is null
的方法