问题标签 [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 回答
1569 浏览

data-warehouse - 具有产品和库存维度的销售事实的维度建模

我正在为销售分析构建一个维度模型,该模型具有一个名为 Sales 的事实并与 Product 维度相关联。

关键是产品库存每天都会发生变化,并且此信息对于他们分析特定产品未售出的原因很重要(例如,在 XX/XX 天,产品 123456 未售出,因为没有产品在库存中)。

我想知道模拟这种情况的最佳选择,如果可能的话,简要解释一下它是如何工作的。

提前致谢!

0 投票
1 回答
910 浏览

data-modeling - BI多维建模:如何将度量转化为维度?

所以这就是我打算做的事情:假设我们有一个典型的销售事实表,其中包含典型的列,例如:

现在,很简单,我可以总结 Amount 并将其汇总到 Region 中,如下所示:

但是,如果我想以另一种方式使用它怎么办,如下所示:

这意味着将定量事实视为一个维度,反之亦然,对吗?但是如何将度量转换为维度?

任何朝着正确方向的推动都将受到欢迎。

0 投票
1 回答
1898 浏览

sql - 审计表与类型 2 渐变维度

在 SQL Server 2008+ 中,我们希望能够跟踪操作数据库中“客户”表的历史更改。

这是一个新表,我们的应用程序控制所有对数据库的写入,因此我们不需要触发器之类的恶意黑客。相反,我们会将更改跟踪构建到我们的业务对象层中,但我们需要找出要使用的正确数据库模式。

行数将低于 100,000,每条记录的更改数平均为每年 1.5。

我们至少有两种方法来对此建模:

  1. 作为名为 的类型 2 渐变维度表,其中包含、CustomersHistory的列(针对客户的当前版本设置为)和审计列,例如和。然后我们会在该表上构建一个视图,该视图被过滤为. 我们应用程序的大多数部分都将使用该视图进行查询,并且只有需要历史感知的部分才会查询基础表。为了提高性能,我们可以物化视图和/或在 EffectiveEndDate=NULL 上添加过滤索引。EffectiveStartDateEffectiveEndDateNULLChangeReasonChangedByUsernameCustomersEffectiveEndDate=NULL

  2. 带有单独的审计表。对记录的每次更改都会Customer写入Customer表一次,然后再写入CustomerHistory审计表。

从对 StackOverflow 问题的快速回顾来看,#2 似乎更受欢迎。但这是因为大多数数据库应用程序必须处理遗留和流氓作家吗?

鉴于我们是从一张白纸开始,这两种方法的优缺点是什么?你会推荐哪个?

0 投票
2 回答
187 浏览

ssas - 多维设计中略微相关的尺寸

我使用以下(简化的)星型方案作为 SSAS OLAP 多维数据集的数据源: 在此处输入图像描述

在我的多维数据集中,我有度量 [Days],它只包含每个日期的“1” - 这只是获取一段时间内天数的一种简洁方法,对于计算每日平均值等很有用。显然,这个度量是与 Shop- 和 Employee- 维度无关。

现在,例如,我使用以下 MDX 查询:

这将返回美国所有商店的列表,包括 2014 年 6 月的销售额以及 6 月的天数。它按预期工作,性能很棒。

现在说,我想要相同的列表,但除了商店之外,我还想按员工拆分销售额。自然,我将员工维度与商店维度交叉:

这有两个问题:首先,当跨越这两个(潜在的)大维度时,性能会受到很大影响。NULL其次,对于所有与美国商店无关的员工,我获得了很多销售金额 = 的记录。如果我删除 [Days] 度量,我会得到预期的结果,但我需要该度量来计算日平均值等。

我正在寻找替代方法来模拟我的立方体,以避免这个问题。也就是说,当我通过 Shop-dimension 过滤我的事实表时,我只想要显示 Employee-dimension 中的相关记录(因此这篇文章的标题,因为 Employee 和 Shop 维度通过事实表相关联)。

我曾考虑将 Shop 和 Employee 维度合并为一个“组织”维度,但这会产生多个问题:首先,一名员工可能在多个商店工作,并且随着时间的推移,隶属关系可能会发生变化。

注意:我不是在寻找替代的 MDX 解决方案,因为我的最终用户使用各种前端工具,他们无法控制生成的 MDX。在我看来,这个问题应该在多维建模中解决,而不是在前端。建模技术和参考文献将不胜感激。

0 投票
1 回答
373 浏览

sql - 使用 SSAS 的具有年龄块的基于周期的图表

我刚刚开始使用 SSAS,并且正在尝试生成一个数据立方体,该数据立方体允许我生成一个跨越数年的每个季度特定年龄范围内的人数图表。例如:

其中 # 是 10-20 岁的人,@ 是 20-30 岁的人,$ 是 30-40 岁的人。

我发现的问题是,2010 年某人可能已经 29 岁,因此属于 20-30 岁年龄段,但在 2014 年,我希望将同一个人计入 30-40 岁年龄段,因为他现在将33. 我不知道如何(或者是否有可能)创建一个对日期和时间敏感的维度?

0 投票
1 回答
289 浏览

data-warehouse - How to create a dimensional model with different metrics depending of the hierarchical level

I need to create a dimensional environment for sales analysis for a retail company.

The hierarchy that will be present in my Sales fact is:

Metrics such as Number of Sales, Revenue and Medium Ticket (Revenue / Number of Sales) makes sense up to the Subcategory level, because if I reach the Product level the agreggation composition will need to change (I guess).

Also, metrics such as Productivity, which is Revenue / Number of Store Staff, won't make sense to existe in this fact table, because it only works up to the Store level (also, I guess).

I'd like to know the best solution resolve this question because all of it are about Sales, but some makes sense until a specifict level of my hierarchy and others don't.

Waiting for the reply and Thanks in advance!

0 投票
0 回答
832 浏览

sql-server - SSAS中的大尺寸设计

我有一个包含 1 亿多行和 4 个维度的事实表,从查询性能的角度和处理多维数据集的角度来看,一切正常(处理多维数据集大约需要 5-6 分钟)。

1/ 现在我必须添加一个包含 600 万行的新维度。立方体处理时间会爆炸吗?

2/ 这是一个好习惯吗?我有其他替代方法来模拟这个维度吗?

3/ 如果我的事实表增加到 3 亿行,我的维度增加到 1500 万行怎么办?

欢迎任何想法。提前致谢。

0 投票
1 回答
277 浏览

ssas - SSAS - 日期维度将错误的日期与层次结构联系起来

我正在使用我自己的日期维度而不是 MS 生成的日期维度。我有一个像这样的表结构:

创建的层次结构:年、季度、月、月中的某一天

关系:DateDim->DayOfMonth->Month->Quarter->Year

创建的复合键

但是,在创建和处理之后,我得到了年、季度、月和日,但与每个相关的 FullDate 似乎只在“月中的日”级别关联。实际日期与层次结构无关。我知道我一定会在此过程中遗漏一些东西,但不确定我做错了什么。

关于如何在不创建冗余关系或克隆列的情况下正确设置的任何指示?(我知道前者不合适)

0 投票
1 回答
50 浏览

database - Dimension Modeling:为大学做这颗星需要帮助

我是维度建模的新手,我正在为一所大学做维度模型。我掌握的当前业务流程实际上是销售/收入。我一直在阅读不同书籍的不同章节,虽然我认为我对事实和维度有很好的理解,但我很难将销售过程与论文相适应。

理想情况下,学校的销售过程类似于其他企业,学生是客户,产品是他们学习的“课程”。但是在某些情况下有不同的产品类型,我不知道如何适应产品类型。例如,学生支付与任何课程无关的申请费、滞纳金或成绩单申请费。如何在我的明星中适应这些不同类型的收入流?

到目前为止我所做的是这样的

现在对于某些类型的产品(例如成绩单申请费)——我没有课程名称、代码、学期、课程——我正在努力解决这个问题。

有人对此有任何意见吗?或任何有用的材料/模式示例肯定会欣赏它们

谢谢,

0 投票
2 回答
652 浏览

sql - 构建没有维度的 SSAS 多维数据集

我在设计一个多维数据集时需要一个建议,这是我的场景:我有 3 个表,比如说产品、公司和销售。产品表包含有关每个月的产品的详细信息,对于每个月的每个产品,它们都会在此表中记录。同样,公司表包含公司每个月的详细信息。销售表维护有关每个月销售的详细信息。

我有一个时间维度表,它是直截了当的。我计划使用这些表创建视图,这些表将充当我的多维数据集的维度和事实。从上述场景中,我能够将销售视图视为我的多维数据集的事实,并能够在 Id 和 Month 列的帮助下连接到 Product 和 Company 表。我的问题是,我怎样才能设计出这个数据模型的维度?产品和公司可以被视为维度吗?如果是这样,我需要如何在多维数据集中指定关系。有没有可能用这个数据模型创建一个多维数据集?请指教。您的帮助将不胜感激。谢谢你。