我在hive中创建了一个以uuid为主键的表,例如
create table if not exists mydb.mytable as SELECT uuid() as uni_id, c.name, g.city, g.country FROM client c INNER JOIN geo g ON c.geo_id = g.id
每天,我需要插入数据到mytable中,如何确保每天的增量数据没有重复的uuid作为pk?
sc4hvdpw1#
如果通过uuid,你要找的是一个系列通用的唯一标识符,那么我认为你可以使用一个自动增加的id。在纯hql中,它可以通过row_numer和交叉连接来实现。
row_numer
insert overwrite table dest_tbl select a.rn + b.mid as id, col1, col2,... from ( select *, row_number() over(order by rand()) as rn from src_tbl ) a join (select max(id) as mid from dst_tbl) b
1条答案
按热度按时间sc4hvdpw1#
如果通过uuid,你要找的是一个系列通用的唯一标识符,那么我认为你可以使用一个自动增加的id。在纯hql中,它可以通过
row_numer
和交叉连接来实现。