哈希码是否适合连接

Are hashcodes good for joins

我是 Snowflake 的新手,想知道我们能否使用哈希码来连接表或查找唯一记录或删除 Snowflake(或任何其他一般数据库)中的重复记录? 我正在设计一个 ETL 流程,使用散列码的优点或缺点是什么?为什么在大多数数据仓库设计中通常不经常使用它们?

如果您的意思是用 md5_binary 或 sha1_binary 之类的东西进行散列,那么绝对可以,

二进制值是等效 varchar 长度字节长度的一半,因此您应该使用它。使用哈希键(有效地)的好处是,如果 table 的自然键可能是复合键,您只需要一个连接列。现在您可以改用 numeric/int 数据类型、序列键,但这会强加加载顺序。示例仅在相关维度 table 加载后才应该构建相关事实 table --- 如果你正在这样做。

Data Vault 更喜欢持久的散列键,因为它不强加任何加载顺序,独立地以任何顺序加载。

无论如何我跑题了,是的散列键有很大的优势,只要确保它们在加载时是二进制数据类型即可。