BigQuery 中是否有 AUTO_INCRMENT、SERIAL、IDENTITY 或序列之类的内容?
我知道 ROW_NUMBERhttps://cloud.google.com/bigquery/query-reference#row-number https://cloud.google.com/bigquery/query-reference#row-number
但我想为表中的每一行保留生成的唯一 ID。
BigQuery 没有加载时生成行键的概念。你可以用查询重写表 https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language为您的行生成任意键。
正如您所指出的,ROW_NUMBER 将为您提供每行的唯一索引,但您可能会遇到特别大的表的大小限制 https://stackoverflow.com/questions/33247703/rank-or-row-number-in-bigquery-over-a-large-dataset(因为你需要一个未分区的窗口函数一切).
如果您可以容忍更大的字符串键,您可以考虑为每行生成一个 UUID(这可以随机完成,不需要与其余数据协调)。如果您使用标准 SQL(而且您应该!)GENERATE_UUID() 函数 https://cloud.google.com/bigquery/docs/reference/standard-sql/uuid_functions将实现这一点。
在链接的答案中,Felipe 构造了一个复合键,如果组合你的钥匙是不同的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)