Hadoop 蜂巢生成ID

Hadoop 蜂巢生成ID,hadoop,hive,Hadoop,Hive,我正在尝试为一个表生成唯一id,该表最初是在DB2中使用以下方法完成的: insert into database.table select next value for database.sequence, current_timestamp, from source 序列具有定义的起始值(例如25430) 我当前使用的代码是: insert into database.table select row_number() over() + select max(id) fr

我正在尝试为一个表生成唯一id,该表最初是在DB2中使用以下方法完成的:

insert into database.table
select next value for database.sequence,
       current_timestamp,
from source
序列具有定义的起始值(例如25430)

我当前使用的代码是:

insert into database.table
select 
 row_number() over() + select max(id) from table,
 from_unixtime(unix_timestamp())
from source;
除了嵌套的select语句不起作用之外,现在我必须运行

select max(id) from table
并手动将其放入查询中


有人能在一个查询中提出这样做的方法吗?

您必须强制进行交叉连接,类似这样:

select 
...
from source,
(select max(id)as maxid from table) as m_id
;
通过这种方式,您可以为max id返回一个值,并使用该值生成新的值

不幸的是,用蜂巢生成代理密钥有点痛苦