问题标签 [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.
mysql - MySQL 的日期维度生成器
我正在设计一个数据仓库,我需要一个可以生成日期维度的工具。我正在使用 MySQL 5.x。
谢谢
dimensional-modeling - 维度建模疑点
我有几个关于维度建模的问题:
在从现有的 OLTP 系统设计维度模型时,我们是否在维度模型中使用与 OLTP 中相同的表结构?例如,我在 OLTP 中有一个客户表,我想将它包含在我的维度模型中,那么我可以在设计客户维度表时使用相同的表结构还是可以更改它?
维度表可以互相引用吗?例如,在我的 OLTP 中,我有 EMP 和 DEPT 表,EMP 引用 DEPT,所以我选择这两个表作为维度模型的一部分,是否有必要对 EMP 维度表进行 FK 约束?
现在,关于桥接表,假设在我的 OLTP 中我有 STORE 和 DEPT 表以及一个将 STORE 与 DEPT 连接起来的桥接表 STORE_DEPT,这意味着我可以在每个存储中拥有多个部门,这些部门记录在这个新娘表中。现在,假设我想在我的维度模型中为 STORE 和 DEPT 创建维度表,我是否需要在模型中也包含这个桥接表?
在此先感谢您的帮助。
olap - 设计类型 2 维
我有一个关于类型 2 维度的问题。
在我们的人力资源系统中,可以在一个日期雇用一名员工,然后在以后的某个时间点,如果最初输入的日期不正确,可以更改雇用日期。当使用类型 2 维度时,这会变得复杂,因为更改会导致维度表中出现新记录。
所以,我基本上需要一种方式来说明某些更新(例如上面的更新)不应该导致维度表中的新记录。但是,对于其他情况,例如员工调到新职位,那么我肯定需要在维度表中创建一条记录。
我在这里有什么选择?
ssas - SSAS - 日期维度在不合适的地方显示未来值
我正在建模一个包含库存数据的多维数据集。为简单起见,我们试图保持一个日期维度。其中一些措施包含库存水平。
最终用户使用 Excel 查看来自分析服务的数据。我想要做的是阻止这个维度显示实际股票交易结束的值。
多维数据集中还有其他需要未来信息的度量,因此不允许删除未来的所有日期条目。
一个简化的示例度量:
日期维度包含未来日期。
我可以让[Transaction Date]
维度在此度量中的最后一个事务(事实表中的最高事务日期)之后停止显示信息吗?
tsql - 如何将成员组合分配到特定组(对于 OLAP 维度)
我有我认为在 OLAP 中相当常见的场景,但解决它的一个非常好的方法并没有让我跳出来:
我得到了一个包含多个项目的销售交易,每个项目都有不同的产品..
我想要做的是将产品组组合分配到一个类别中,即“仅限狗”、“仅限猫”、“猫和狗”
所以你最终会得到类似..
如果可能的话,我希望在 Transact-SQL 或 SSIS 中实现这一点,我发现计算的成员/度量很慢,如果这是最好的方法,我愿意接受那个解决方案
非常感谢任何帮助
database-design - 维度设计:不确定某些类型数据的事实与维度
对于我正在开发的星型模式,我在决定特定维度中应该包含哪些内容以及事实表中应该包含哪些内容时遇到了一些麻烦。
例如,假设该项目正在为一家物业管理公司跟踪房屋。各种日期、承租人、合同等维度都相当简单。对于房子,无论数据位于何处,我们都希望跟踪当前所有者、当前租户、当前租赁合同,以及邻域、地址、当前租金价格、当前市场价值等信息. 请注意,所有者、租户和合同本身就是维度(邻居和地址也可能是维度,但我不太关心这些)。
许多关于房屋的数据将用于过滤查询,或用于多维数据集的行和列标题。其中一些仅作为辅助信息需要,逐个查看,而不是汇总。
鉴于数据,以及我需要用它做什么,我有(至少)三个选择:
- DimHouse:房子表是一个维度,有很多属性,在事实表中可能看起来更好,但是由于它们是用于浏览和过滤的,所以它们需要在这里。当前租户等属性将需要雪花/支腿。
- FactHouse:拥有与其他事实表连接的房屋信息的累积快照,可能使用修剪过的 DimHouse 作为桥梁。这对我来说似乎很奇怪,但它把看似事实的东西放在了事实表中。
- 将当前所有者、当前承租人等放入相关事实表中,然后将这些事实作为所有者/承租人/等保持最新。改变(也很奇怪,但会让我们保持在星型模式的土地上)。
所以我一直在走维度路线。它让我有些心痛,但它达到了目标。我只想知道是否有更好的方法来组织数据。我不介意冗余(例如具有相似数据的事实表和维度表)或雪花,如果它们有意义并且是做事的最佳方式(对于“最佳”值)。
data-warehouse - 维度建模 - 没有事实的查询
我正在为 VoIP 服务创建一个关于“通话记录系统”的维度模型。我将仅举一个小例子来说明我的问题。
假设我有一个代表单个呼叫的事实。我有一个维度叫做客户端,还有一个维度叫做提供者。(假设还有其他维度,例如日期,当然等等......)
有了这个,我将能够看到客户打了多少电话,或者通过提供商发送了多少电话,以及其他问题。
假设一个客户端与一个提供者相关联,一个提供者可以有多个客户端。
那么,问题来了。如何创建一个查询,例如:每个提供商有哪些客户?
这似乎是一个介于两个维度之间的查询。我不能涉及这个事实,因为如果客户从未使用过该服务,他将不会出现在调用事实表中,并且他不会出现在这个“每个提供商的客户”查询中。
我自己在想,一种方法是创建一个角色扮演维度,一个客户端维度的视图,并将其直接添加到提供者维度,只是为了进行这样的查询。它会是这样的:
当然,使用这种方法,用户必须非常小心不要将此 View Client 维度与事实表一起使用,因为它会重复事实行。
那么,这是我需要使用著名的无事实事实表的情况之一吗?
这样做的正确方法是什么?
谢谢!
ssas - 在参差不齐/父子维度内具有父成员的计算成员?
我有一个参差不齐的帐户层次结构[Data Type].[Data Type Hierarchy]
(简单键、名称、父键表)。
根
账户 1
子账户 1A
子账户 1B
帐户 2(帐户 1 的子帐户)
账户 3
- 子账户 3A
现在,我想将计算成员添加[Data Type].[Data Type Hierarchy]
为父层次结构和[account 2]
父成员。
在事实表中没有 的数据[account 2]
,因为它应该是几个计算成员的简单占位符。
问题 #1:当我在 BIDS 中单击“选择父成员”时,我看不到该成员。我可以将其添加到 [All] 级别或其他帐户之一(具有数据)
问题#2:如果我使用脚本视图,我可以手动设置正确的父成员,但它不会聚合计算的成员,因此被隐藏,除非选中“显示空单元格”。如果我向下钻取,我的计算成员将显示,但具有预期值。
ssis - 在维度表中生成默认值
关于维度模型中的默认值,如此处所示, 是否有人对生成这些值的最佳实践有建议?
您是否看到它们与数据仓库数据库或 ETL 流程相关?
假设我们有一个 MS 解决方案,您会将它们作为 DW Sql Server 数据库项目中的部署后脚本,或者如何将它们添加到 ETL 集成服务项目中的维度表中?如果是后者,如何在运行时生成行?
ssas - SSAS - 类别维度 - 未知成员
我在正确设置维度时遇到问题。基本上我有一个事实表,其中包含有关事件的详细信息。每个事件都可以分类,但在不同的级别。我有一个包含所有类别、子类别的类别维度。类别分为三个级别。有些类别有子类别,而有些则没有。
当我浏览维度时,我会得到每个项目的向下钻取,但向下钻取有时最终会显示空白项目(蓝色圆圈,无文本)。
所以我想我有一个类别维度,它包含不同粒度的类别。
我一直在玩弄 NULL 处理和 UnknownMember 的设置,但并没有真正完全理解它是如何影响事物的。
也许有人可以就这个问题给我一些提示或建议。
我正在使用 SQL Server 2012
谢谢