雪花架构维度

时间:2013-08-26 12:39:54

标签: data-modeling data-warehouse business-intelligence snowflake-schema

这是我第一次开展BI项目并且我不熟悉Pentaho产品,所以我需要知道以下模型是否正确以及以后在创建层次结构时我不会遇到困难BI服务器!

谢谢。

时间维度 enter image description here

并发症维度,每个并发症都可能出现并发症: enter image description here

1 个答案:

答案 0 :(得分:3)

不是个好主意。

您的日历维度表应如下所示:

create table calendar (
  calendar_id int primary key,
  name text not null unique,
  date_iso date unique,
  year smallint,
  quarter smallint,
  month smallint,
  month_name text
  ...
);

insert into calendar values 
(0, 'N/A', null, null, null, null, null),
(20130826, 'Aug 26, 2013', '2013-08-26', 2013, 3, 8, 'August');

数据仓库的重点是易于分析 。让你的BI分析师做三个连接以获得日期并不能简化分析。

calendar_id是一个“智能密钥”,即不是无意义的代理密钥。您的日历表是​​唯一应该使用智能密钥的表,因为它极大地帮助按日期进行表分区。还要注意可空字段,它允许“N / A”(不可用)日期。没有0年,所以0是一个很好的“N / A”值。

基本上,您应该有一个级别的规范化:事实表和维度表。