Snowflake数据仓库-用字母数字字符而不是整数生成维度ID

时间:2019-03-06 22:25:03

标签: snowflake-datawarehouse snowflake

在Snowflake数据仓库中用字母数字字符组合而不是整数生成尺寸id是一个好主意吗? (https://www.snowflake.com/)例如:假设我必须使用3个组合键从源表中构建维度表。通常,我们将增量整数列代理键构建为维度ID。相反,是否最好创建一个字符串列key1_key2_key3(连接的源键)作为生成维ID的替代键?由于雪花是分布式数据库并且运行良好,因此我认为应该可以。我试图看到任何无法预料的影响?

2 个答案:

答案 0 :(得分:1)

我将创建dimension id为整数,并添加另一列为surrogate key。因此,您将遵循标准并像所有其他维度表一样具有整数键。如果您认为代理键很有意义,并且可以在联接/过滤器中使用,请随时添加。

我要指出的是,在该特定尺寸表中将尺寸ID作​​为整数,可以防止您遵循最佳做法。

此链接说明何时和何处使用代理键是合理的。

https://www.kimballgroup.com/1998/05/surrogate-keys/

答案 1 :(得分:1)

您似乎要问的是:应该使用代理键(单调递增的整数)还是将业务键的级联作为维度中的主键。

除了使用代理密钥的存储和性能优势外,您还需要考虑使用代理密钥的主要原因-缓慢更改尺寸。如果您决定在某个时候跟踪对维记录的更改,则您将希望在维中使用代理键,因为业务键的连接会随着时间重复。