【发布时间】:2018-06-05 12:18:25
【问题描述】:
我想建立一个数据仓库,并且我想使用代理键作为我的事实表的主键。但问题是,在我的情况下,事实表应该更新。
第一个问题是如何在源系统中为自然键找到对应的自动生成的代理键?我看到一些答案提到了存储自然键和代理键之间对应关系的查找表,但我不明白它们是如何实现的。该表应该存储在哪里:数据仓库本身还是其他地方?
还有第二个问题。源系统已经包含事实的代理键,但它们具有 16 字节的 UUID 数据类型。而且事实的数量不太可能超过最大整数值(4 个字节)。我应该使用源系统提供的 UUID 来简化 ETL,还是应该执行更复杂的 ETL 并实现自己的整数代理键以获得更好的性能?
【问题讨论】:
-
感谢您的评论!
-
我还有一个问题。我打算将 RDBMS 用于数据仓库,并且我想使用自增主键。当我第一次向表中插入任何内容时,我如何知道 RDBMS 生成了什么主键?插入后是否必须立即选择该行才能知道生成了什么键?
-
嗨 Denis .. 您使用哪个技术平台来构建数据仓库?您会采用 Kimball 方法还是 Inmon 方法?
-
我将使用 Kimball 方法。源系统是一个 JSON API,我将使用 PostgreSQL 作为我的 RDBMS。对于 ETL,我将使用 python,因为它适合我的情况。我想我已经在这个帖子中找到了我第二个问题的答案:stackoverflow.com/questions/5247685/…
标签: database-design etl data-warehouse