我正在为公司的(我正在为之工作的)核心ERP应用程序,为一个特定的客户建立一个数据仓库。
在源数据库中,数据仓库中的大部分维度信息基本上都是以不可透视的方式存储的,因为应用程序是根据客户的请求进行定制的产品。
对于我正在使用的当前客户端,我可以取消透视并提取数据。但我担心的是,如果我们打算重用数据仓库(与其他客户一起),那么我认为根据他们对字段进行分类的方式,数据仓库模型将无法调整,需要进一步定制。
一定要让我知道是否有任何称职的机制来解决这个设计问题。
以下是产品在源数据库中的分类方式的示例(这也适用于大多数其他主数据分类)。
Product Code MasterClassification MasterClassificationValue
------------ -------------------- -------------------------
AAA Brand AA
AAA Category A相同的数据集旋转:
Product Code Brand Category
------------ ----- --------
AAA AA A提前谢谢。
发布于 2011-06-22 18:27:19
这是一个典型的、有充分记录的数据问题。你所说的“非轴心化”就是所谓的EAV。我建议你在谷歌上搜索“EAV”和“reporting”。你并不孤单!
发布于 2015-05-13 06:23:25
源系统中存储的维度数据是不可透视的--它是一个数据库,因此应该对其进行规范化。如何在数据仓库中处理它是另一个问题。
在之前的工作中,我们讨论了是否以及如何携带旋转/反规范化/“宽而浅”的数据。在我们的实现中,每个表都有一个视图(包含ETL逻辑)和一个过程(用来装入表)。这是大量的基础设施,所以我们在添加另一个表之前三思而后行。此外,对旋转数据的需求通常来自Tableau中使用的分析团队,Tableau是一种工具,可以轻松地使用未旋转/“窄而深”的数据,并对其进行旋转--因此我们经常争论是否确实需要旋转数据。
最终,我们决定偶尔携带旋转的数据,但只能通过报告视图。(我们有命名约定来区分报告视图和ETL视图。)我认为这是一种您应该考虑的方法,原因是您自己提到的:可以添加新的类别,使您的旋转设计过时。此外,如果您有多个客户端使用此数据,则每个客户端可能对一组不同的类别感兴趣。您可以在此表的顶部为每个客户端转换一个自定义的旋转报表视图。这听起来像是大量的工作,但我认为这比每次你意识到添加了一个新的类别时重新做一个旋转的表要少。祝好运!
https://stackoverflow.com/questions/6292217
复制相似问题