谷歌大查询不支持UUID作为数据类型。那么,哪个选项更好地存储它:
-
STRING
:格式为 8-4-4-4-12 的字符串
-
BYTES
:16字节(128位)的数组
编辑:BigQuery 现在支持函数称为GENERATE_UUID。这会返回一个STRING
32 个十六进制数字分为五组,用连字符分隔,格式为 8-4-4-4-12。
原文内容:
关于权衡的一些讨论:
Using STRING
- UUID 与其他系统中的表示兼容,例如,如果您导出到 CSV,然后想要与其他地方的导出合并。
- UUID 与 BigQuery 兼容可能是 UUID 实现。您将能够使用函数生成相同形式的 UUID(当实现该功能时)。
- 如果您决定将 UUID 表示为
BYTES
稍后,您可以使用 UDF 进行转换。
- 缺点:比较速度可能不如
BYTES
取决于运算符,因为字符串比较必须考虑 UTF-8 编码。 (听起来这对你来说不是问题)。
- 缺点:存储成本较高。 (听起来这对你来说不是问题)。
Using BYTES
- UUID存储更加紧凑;存储更便宜,比较速度更快。
- 如果您决定将 UUID 表示为
STRING
稍后,您可以使用 UDF 转换它们。
- 缺点:UUID 导出后与其他系统不兼容,并且也可能与 BigQuery 的实现不兼容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)