在 Google BigQuery 中创建一列 UUID

Create a column of UUIDs in Google BigQuery

Google BigQuery doesn't support UUID 作为数据类型。那么,哪个选项更好地存储它:

编辑:BigQuery 现在支持 function called GENERATE_UUID。这个 returns a STRING 有 32 个十六进制数字,分为五组,由连字符分隔,格式为 8-4-4-4-12.

原文内容:

权衡的一些讨论:

使用STRING

  • UUID 与其他系统中的表示兼容,例如,如果您导出为 CSV,然后想与来自其他地方的导出合并。
  • UUID 与 BigQuery 的 probably UUID implementation 兼容。您将能够使用函数生成相同形式的 UUID(在实现该功能时)。
  • 如果您稍后决定将 UUID 表示为 BYTES,则可以使用 UDF 进行转换。
  • 缺点:比较可能不如 BYTES 快,具体取决于运算符,因为字符串比较必须考虑 UTF-8 编码。 (听起来这对你来说不是问题)。
  • 缺点:存储成本较高。 (听起来这对你来说不是问题)。

使用BYTES

  • UUID存储更紧凑;存储更便宜,比较更快。
  • 如果您稍后决定将 UUID 表示为 STRINGs,则可以使用 UDF 转换它们。
  • 缺点:UUID 导出后与其他系统不兼容,并且可能与 BigQuery 的实现也不兼容。