我是数据仓库的新手,所以如果这是超级基本的,我很抱歉,但我对这个概念很好奇。
示例:假设我有一个表,用于存储网站的汇总分析(例如,给定日期的url的总浏览量)。
dbo。PageFacts
<表类>
日期
Url_Id
Page_Views
tbody><<tr>2020-01-01 1 280 2020-01-01 2 50 2020-01-02 3 10 表类>
如果更改了事实表的粒度,通常需要重建事实表。这是对维度模型的一个相当重要的设计更改,我看不出为了避免重建事实表而使模式复杂化有什么好处。
如果您愿意,您可以将其作为附加的事实表引入,但它不会有"percentages"只是一个普通的事实表:
CREATE TABLE PageDeviceFacts
(
Date DATE references DimDate,
Url_Id INT references DimUrl,
Device_ID INT references DimDevice,
Page_Views INT,
constraint pk_PageDeviceFacts
primary key (Date,Url_Id,Device_ID)
);
如果是一个大表,将PK设置为非集群,并创建一个集群的columnstore索引
create clustered columnstore index cci_PageDeviceFacts on PageDeviceFacts
旧的PageFacts表成为模型中的聚合事实。