一个非常简单的问题:哪个版本的 CityHash 隐藏在HASH
BigQuery 的功能?它总是最新的(今天 v1.1),还是固定版本?
现在,介绍一点背景。我计划严重依赖 BigQuery 来存储大量数据。从这些数据中,我想第一次计算一些哈希值并存储它(类似于hashed_value = HASH(CONCAT(column_0, column_1))
)。到目前为止,一切都很好。
第二次,我想通过以下请求检索具有给定哈希值的行SELECT something FROM [mytable] WHERE hashed_value = HASH(CONCAT('12345', 'foobar'))
。
我在这里担心的是,CityHash 网页上指定这些功能不应向后兼容。因此,如果 BigQuery 始终依赖于latest版本的 CityHash,在下次 CityHash 更新后,我将无法根据某些计算列的哈希值检索我的数据。对于我的应用程序来说,我的大型数据库基本上将变得毫无用处。
如果是这样,除了以下功能之外,是否还可以访问固定(或向后兼容)的哈希函数HASH
?一个在SHA
, MD
等等,甚至是CityHash的固定版本。
谢谢。
BigQuery 中使用的 CityHash 版本来自http://code.google.com/p/cityhash/ http://code.google.com/p/cityhash/纵观历史,价值似乎会随着时间的推移而变化。这可能是一个很好的问题:https://groups.google.com/forum/?fromgroups#!forum/cityhash-discuss https://groups.google.com/forum/?fromgroups#!forum/cityhash-discuss
BigQuery 应支持一致的哈希。我们确实支持 sha1,但目前由于编码问题,结果无法使用。但是,您可以这样做SELECT TO_BASE64(SHA1(CONCAT('12345', 'foobar')))
请注意,我们可能会改变SHA1
在不久的将来自动对结果进行 Base64 编码。我已提交内部错误来进行此更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)