首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哈希函数的一致性

哈希函数的一致性
EN

Stack Overflow用户
提问于 2012-12-13 13:58:35
回答 1查看 1.5K关注 0票数 1

一个非常简单的问题: CityHash的哪个版本隐藏在BigQuery的HASH函数后面?它总是最新的版本(今天的1.1版),或者说是一个固定的版本?

现在,有一点背景。我计划在很大程度上依赖BigQuery来存储大量数据集。从这些数据中,我第一次想要计算一些哈希值并存储它(类似于hashed_value = HASH(CONCAT(column_0, column_1)))。到目前一切尚好。在第二次,我想检索具有给定哈希值的行,请求包括SELECT something FROM [mytable] WHERE hashed_value = HASH(CONCAT('12345', 'foobar'))。我在这里担心的是,在CityHash网页上指定这些函数不应该向后兼容。因此,如果BigQuery总是依赖于最新的版本的CityHash,那么在下一次CityHash更新之后,我将无法根据某些计算列的哈希值检索数据。对于我的应用程序来说,我的大型数据库基本上是无用的。

如果是这样的话,除了HASH之外,还可能提供对固定的(或向后兼容的)哈希函数的访问吗?例如SHAMD等,甚至是CityHash的固定版本。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-12-14 19:18:27

在CityHash中使用的BigQuery是http://code.google.com/p/cityhash/的版本,从历史来看,它的值似乎会随着时间的推移而改变。这可能是一个很好的问题:https://groups.google.com/forum/?fromgroups#!forum/cityhash-discuss

BigQuery应该支持一致的散列。我们确实支持sha1,但是现在由于编码问题,结果是不可用的。但是,你可以做SELECT TO_BASE64(SHA1(CONCAT('12345', 'foobar')))

注意,我们可能会在不久的将来将SHA1更改为自动对结果进行base64编码。我已经提交了一个内部缺陷来做这个修改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13861380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档