BigQuery中是否有自动增量?

时间:2016-09-08 12:00:36

标签: google-bigquery google-cloud-platform

BigQuery中是否存在类似AUTO_INCREMENT,SERIAL,IDENTITY或序列的内容?

我知道ROW_NUMBER https://cloud.google.com/bigquery/query-reference#row-number
但是我希望为表格中的每一行保留一个生成的唯一ID。

1 个答案:

答案 0 :(得分:6)

BigQuery没有加载时生成行密钥的概念。您可以使用查询重写表,以便为您的行生成任意键。

正如您所指出的,ROW_NUMBER会为每行提供一个唯一索引,但您可以点击size limits for particularly large tables(因为您需要一个未分区的窗口功能而不是所有)。

如果您可以容忍更大的字符串键,您可以考虑为每一行生成一个UUID(可以随机完成,并且不需要与其余数据协调)。不幸的是,BigQuery没有内置的UUID()函数,但你可以做几件与RAND()相同的调用。这可能更容易表达为Javascript UDF。

在链接的答案中,如果您的密钥的组合不同,Felipe会构建一个复合密钥,这也可能对您有用。