在Google BigQuery中创建一列UUID

时间:2018-03-21 11:09:23

标签: google-bigquery uuid

Google BigQuery不支持UUID作为数据类型。那么,哪个选项最好存储它:

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

1 个答案:

答案 0 :(得分:5)

编辑:BigQuery现在支持function called GENERATE_UUID。这将返回一个STRING,其中包含5个组中的32个十六进制数字,以8-4-4-4-12形式的连字符分隔。

原创内容:

关于权衡的一些讨论:

使用STRING

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

使用BYTES

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