BigQuery中是否有自动增量?

Jos*_*ilo 6 google-bigquery google-cloud-platform

在BigQuery中有类似AUTO_INCREMENT,SERIAL,IDENTITY或序列的东西吗?

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

Ada*_*ick 6

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

如您所述,ROW_NUMBER将为您提供每一行的唯一索引,但是您可能会遇到特别大的表的大小限制(因为您需要在所有内容上使用未分区的窗口函数)。

如果您可以容忍较大的字符串键,则可以考虑为每一行生成一个UUID(可以随机进行,不需要与其余数据进行协调)。不幸的是,BigQuery没有内置的UUID()函数,但是您可以通过多次调用RAND()来进行等效的操作。这可能更容易表达为Javascript UDF。

在链接的答案中,Felipe构造了一个复合键,如果您的键组合是不同的,它也可能对您有用。