0
在Legacy sql中,我们可以使用SELECT ABS(HASH('12345'))
来获取值的唯一哈希数。如何将ABS(HASH(...))从Legacy sql转换为标准SQL
我正在将遗留的sql转换为GBQ中的标准sql, 所以想知道最好的方法来转换上面的函数,以便它给我相同的价值回遗传的SQL。
在Legacy sql中,我们可以使用SELECT ABS(HASH('12345'))
来获取值的唯一哈希数。如何将ABS(HASH(...))从Legacy sql转换为标准SQL
我正在将遗留的sql转换为GBQ中的标准sql, 所以想知道最好的方法来转换上面的函数,以便它给我相同的价值回遗传的SQL。
我们不会公开一个返回与传统SQL相同值的函数;它使用一个无证的实现。使用标准SQL时最接近的是FARM_FINGERPRINT
,它使用open-source FarmHash library。
对于您提供的表达式,您将改为使用ABS(FARM_FINGERPRINT('12345'))
。
啊,理想情况下应该有类似的功能,当你希望用户从遗产迁移到标准。如果没有标准sql中的类似实现,我将不得不保留一些查询在传统sql中以及标准sql中的任何新事物。我希望谷歌不会立即废弃对遗留SQL的支持。 –
只是为了澄清,这些散列ID是使用中的永久性和客户已经在使用它,所以那些现在不能改变,这就是我不能将该查询切换到标准的SQL与不同的哈希算法的原因 –
是的,这是不幸的。如果'FARM_FINGERPRINT'在传统SQL中可用,是否可以迁移? –