在Google BigQuery中创建一列UUID

tas*_*hka 2 uuid google-bigquery

Google BigQuery不支持将UUID作为数据类型。因此,哪个选项更好地存储它:

  • STRING:格式为8-4-4-4-12的字符串
  • BYTES:16个字节的数组(128位)

Ell*_*ard 5

编辑:BigQuery现在支持名为GENERATE_UUID函数。这会返回STRING5组中由32个十六进制数字组成的a,并以8-4-4-4-12的形式用连字符分隔。

原始内容:

有关权衡的一些讨论:

使用 STRING

  • UUID与其他系统中的表示兼容,例如,如果您导出到CSV,然后希望与其他位置的导出合并。
  • UUID与BigQuery 可能的UUID实现兼容。您将能够使用一个函数(实现该功能时)来生成这种形式的UUID。
  • 如果您决定以后再表示UUID BYTES,则可以使用UDF进行转换。
  • 缺点:BYTES由于字符串比较必须考虑UTF-8编码,因此比较操作可能不如根据运算符快。(听起来这对您来说不是问题)。
  • 缺点:存储成本较高。(听起来这对您来说不是问题)。

使用 BYTES

  • UUID的存储更加紧凑;存储更便宜,比较也更快。
  • 如果您决定在以后表示UUID STRING,则可以使用UDF进行转换。
  • 缺点:导出后,UUID与其他系统不兼容,也可能与BigQuery的实现也不兼容。