pyspark.我如何确保在hive中每天的增量数据没有重复的uuid作为pk

rqcrx0a6  于 2021-04-03  发布在  Hive
关注(0)|答案(1)|浏览(552)

我在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?

sc4hvdpw

sc4hvdpw1#

如果通过uuid,你要找的是一个系列通用的唯一标识符,那么我认为你可以使用一个自动增加的id。在纯hql中,它可以通过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

相关问题