问题标签 [dimensional-modeling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
328 浏览

data-modeling - 维度建模几个问题

我开始熟悉 Dimensional 模型,因此开始研究健康声明流程。我正在努力实现以下目标:

1) 按专业和服务提供者报告患者索赔的能力(每月、每季度和每年)

2) 服务提供者转介提供者的索赔

3) 就 (1) 和 (2) 收到的每月付款索赔

4) (1) 和 (2) 的服务月份索赔

这是维度模型:

事实声明

收费金额

支付金额

服务日期密钥 (FK)

付款日期密钥 (FK)

患者密钥 (FK)

服务提供商密钥 (FK)

设施密钥 (FK)

推荐的提供者密钥 (FK)

尺寸表:

DimServiceProvider ServiceProviderID (SK)

服务提供商名称

专业

DimPatient 患者 ID (SK)

姓名

地址

昏暗日期

DimFacility FacilityID (SK, PK)

设备名称

设施区域

设施状态

问题: 1) 我应该分开费用和付款的事实表吗?

2)不确定我是否认为推荐的提供者密钥(也指向 DimServiceProvider)是正确的

3) 任何经验法则来组合一些维度表或将它们分开?合并维度表或将它们分开的规则是什么?

0 投票
2 回答
2219 浏览

c# - 如何将实体映射到包含层次结构的维度表?

考虑以下层次结构:

(每个部门包含多个类别,每个类别包含多个产品。)

使用Kimball方法进行维度建模,我创建了一个 ProductDim 表,其中包含以下列:

我正在尝试使用 EF 4.1 将我DepartmentCategory、 和Product实体映射到 ProductDim 表。以下是相关类的简化版本:

问题是当我尝试使用这些类时,出现以下异常:

System.InvalidOperationException:实体类型“Category”和“Department”不能共享表“ProductDim”,因为它们不在同一类型层次结构中,或者它们之间没有有效的一对一外键关系和匹配的主键。

有什么解决方法吗?如果不能,实体框架能否成功地与维度建模的数据库一起使用?

0 投票
1 回答
420 浏览

ssas - 从同一个累积事实表中分离和独立的计数

所以,我有一个销售事实表,它基于交易生命周期模型(或累积事实快照表),有很多不同的日期键列(如销售日期、退款日期等)。我对每个日期列做了不同的度量,即非空销售日期键列的总和是[销售额],非空退款日期键列的总和是[退款数]等。每个的日期键列与不同的日期键维度相关。销售日期维度和退款日期维度是角色扮演维度,均基于同一个 DimDate 表。还有其他非基于日期的维度,但为了这个示例,我将保持简单 - storeType 有另一个附加维度(零售、电子商务等)

当我浏览多维数据集时(因为大多数用户将通过 excel 浏览和探索多维数据集),我可以将 [销售数量] 和 [退款数量] 拖到列部分,然后我可以将 StoreType 维度拖到行部分,它会正确显示数据,如下所示:

这很好,因为我没有应用任何日期过滤器,所以它显示了所有内容。我已经确认了 Fact 表中的数据,确实,这些数字是正确的。

但是我想对 [销售数量] 和 [退款数量] 应用相同的日期过滤器 - 所以我将这两个维度拖到过滤器区域,并将相同的日期过滤器应用到两者 - 当然,两列的数字都相同:

..因为我认为通过有效地将一个日期应用于两个日期维度,我正在过滤到同一组行(因为它们来自同一个表)。我知道这是不正确的,因为我可以从 Fact 表中查询各个行并查看它们具有不同的值。

基本上,我想要的是将两列显示在一起,但实际上它们没有任何共同点。我什至可以在每一列上设置两个不同的日期过滤器,即显示 2010 财年的所有销售额并显示 2011 财年的所有退款。这又是用户完全可以浏览的,因此必须提供这些措施而不必做复杂的 MDX 查询。

我想我可以创建另一个事实表来在事务性事实表中容纳相同的数据,然后我可以单独计算它 - 但是让两个单独的事实表或多或少地计算相同的东西是没有意义的。

知道怎么做吗?帮助!!

0 投票
1 回答
219 浏览

olap - 如何报告稀疏事实表的稀疏区域

源系统通过报告缺勤事件来跟踪学区的学生出勤情况。可以通过检查三个数据集来确定任何特定日期的出勤率:学校日历、学生入学率和缺勤率。

在任何给定的上课日,在校学生的出勤人数通常远大于缺勤人数,因此这种方法显着减少了为跟踪出勤而存储的记录数量。

我正在尝试确定在维度模型中表示日常出勤的正确方法。最明显的方法是创建一个无事实表,其中包含每个学生每上学日的粮食,以及具有出勤和缺勤原因的值的出勤维度。使用 OLAP 非常简单,但缺点是事实表的大小。

例如,对于 30,000 名学生和 188 个上学日,意味着每年大约有 50 万条记录(如果这似乎不足以成为问题,那么考虑一个示例,其中必须按期间而不是按时间报告出勤率天)。将此与仅记录缺勤的事实表进行对比,并且数量要小得多。但是,如果我这样做,那么我不确定如何构建聚合每日出勤事实的多维数据集。

正在使用的特定 OLAP 技术是 SQL Server Analysis Services 2008 R2。有什么想法吗?

0 投票
3 回答
52994 浏览

data-warehouse - 星型模式设计中的维表有哪些类型?

在阅读星型模式设计时,我看到许多人对不同类型的维度表使用不同的名称。

请列出每种类型的名称和简短描述。如果有任何列表还有一个别名。

0 投票
2 回答
758 浏览

database - 创建数据仓库

我正在使用星型模式创建数据仓库。我成功地构建了所有维度表,但我有点卡在事实表上。我需要将销售表作为事实表。它有 SalesKey、OrderKey、ProductKey 等......每个订单都是一次销售,因此每个订单都有一个唯一的 SalesKey,但是每次销售将有多个产品。

最好的办法是建造这张桌子?

我应该创造这样的东西吗

0 投票
1 回答
1133 浏览

ssas - 在 SSAS 中正确聚合一对多关系中的值

所以我有一个货运维度数据库:

一个货件包含许多包裹。一个包裹包含许多费用。

因为这是维度的并且费用是我最感兴趣的数据,所以我将 3 个表及其多对一关系扁平化为一个费用事实表。这是包含两个包裹,每个包裹重 1 磅的单个货件的快速快照。

在此处输入图像描述

为了使包裹重量可查询,我需要将其推到充电颗粒上。这会导致聚合问题。每个包裹的包裹重量为 1 磅,因此装运的重量应为 2 磅。我找不到以这种方式聚合重量作为衡量标准的方法。我对 SSAS 和 OLAP 很陌生,真的不知道下一步该尝试什么。任何建议将不胜感激。

0 投票
1 回答
279 浏览

data-warehouse - 在 OWB 中使用时间维度

几天前我开始使用 Oracle Warehouse Builder,我想使用源表中的一些日期作为维度。我使用向导生成了时间维度,但无法将源表中存储的日期连接到生成的时间维度。我该怎么做?我确定我误解了一些东西。

谢谢!

0 投票
4 回答
5001 浏览

sql-server - 为什么 NULL 值在 Fact 表中映射为 0?

在事实表(维度建模的数据仓库)中的度量字段中,NULL 值通常映射为 0 的原因是什么?

0 投票
1 回答
261 浏览

database - 从 2 个表开始的星型模式

有人可以向我解释一下您将如何创建一个从 2 个表开始的星型模式,例如具有 StudentID、地址、城市、州、邮编和描述、学分、费用和日期的类表的学生表?

我知道您从每个表中获取主键并将它们作为外键放在事实表中,但是有没有办法让一个实际的星号有 5 个表,从 2 个表开始?

如果我添加了一个名为 Professor 的表,那将被视为维度表还是日期表是维度表?