在多维数据集设计中接近操作期间的混合粒度日期维度

Posted

技术标签:

【中文标题】在多维数据集设计中接近操作期间的混合粒度日期维度【英文标题】:Approaching mixed granularity date dimensions for operational periods in cube design 【发布时间】:2015-06-10 22:19:18 【问题描述】:

我正在 SSAS 中构建一个多维数据集,对工程团队的活动进行建模(除其他外)。我有一个事实表 (TeamActivity),其中包含每日粒度的 Mileage 和 TimeOnSite 等事实。这引用了一个日期维度表 (DimDate)。 DimDate 包含典型属性,因此可以按日历/财政月份或年份等分析数据。这一切都很好。

在另一个事实表 (TeamPay) 中,我们有更多的事实 (HoursClaimed, AmountPaid),它们以每个团队的每周粒度存储。这些是特定于业务的运营周,从周六到周五运行。

业务用户希望将这两个事实表(例如 HoursClaimed-TimeOnSite)中的数据关联起来 - 显然他们无法达到“每天”级别,但希望按运营周或每个日历/财政年度对其进行分析月份或年份等。

如何设计立方体以适应这种情况?我查看了Lower Date Granularity for FactBudget,这可能与我的问题有关,但不确定这是否适用于我的情况?

【问题讨论】:

【参考方案1】:

对我来说,修改原始数据并将其下推到更详细的粒度级别总是要简单得多。

因此,在这种情况下,我会选择您一周的第一天或最后一天(让企业决定他们在周五还是周六需要全部),然后将所有事实都打到一周中的那一天。连接到日期维度中的日级别,一切顺利!

【讨论】:

我已经将其视为一种解决方案。我担心的是错误的结果。假设我在一周开始时加载每周数据,即在星期六。用户运行报告以显示 2015 年 6 月的 TimeOnSite/AmountPaid(来自两个事实表)。将包括 6 月 1 日至周五 6 月 5 日的 TimeOnSite(来自具有每日粒度的事实表),但 AmountPaid(来自每周粒度的事实表)将不包括在内,因为总数是在 5 月 30 日星期六的那周开始时加载的。这有意义吗? 我打算将 DAILY TeamActivity 表的粒度调整为也是每周一次,然后根据一周的结束日期加载两组事实中的数据。感谢您的帮助。

以上是关于在多维数据集设计中接近操作期间的混合粒度日期维度的主要内容,如果未能解决你的问题,请参考以下文章

FineReport连接多维数据库示例及操作

我有每小时的数据,并希望在 ssas 多维数据集级别将其转换为每周

阿里笔记之数据模型

阿里笔记之数据模型

设计具有混合粒度的事实表

在 Excel 中查看 OLAP 多维数据集详细信息