具有未知数据的数据仓库
我正在为公司的(我工作的)核心ERP应用程序为特定客户端构建数据仓库。具有未知数据的数据仓库
在源数据库中,数据仓库中的大部分维度信息基本上都是以未知的方式存储的,因为应用程序是要根据客户端的请求定制的产品。
对于我正在使用的当前客户端,我可以取消转换并提取数据。但是我担心的是,如果我们要重复使用数据仓库(也与其他客户一起使用),那么我认为取决于他们对数据仓库模型无法调整和进一步定制所需的字段进行分类的方式。
请让我知道是否有任何有效的机制来克服这个设计问题。
以下是产品被归类于源数据库中(适用于大多数其他主要数据分类太)方式的一例,
Product Code MasterClassification MasterClassificationValue
------------ -------------------- -------------------------
AAA Brand AA
AAA Category A
摆动同一组数据:
Product Code Brand Category
------------ ----- --------
AAA AA A
在此先感谢。
这是一个经典和有据可查的数据问题。你所描述的'未经转化'被称为EAV。我建议你谷歌'EAV'prehaps与'报告'一起。你不是一个人!
嗨@cindi。非常感谢你。我知道这种类型的模式存在。但不知道名称和具体情况;甚至去搜索。再次感谢。 – 2011-06-24 11:12:35
它是有道理的,源系统中的维数据存储是未知的 - 这是一个数据库,所以它应该规范化。如何在数据仓库中处理它是另一个问题。
在之前的工作中,我们讨论了是否以及如何进行pivoted/denormalized /“宽和浅”数据。在我们的实现中,每个表都带有一个视图(包含ETL逻辑)和一个过程(用于加载表)。这是很多基础设施,因此我们在添加另一个表之前已经考虑过两次了。此外,数据透视数据的需求通常来自分析团队在Tableau中使用,这是一种轻松消耗未经转换/“狭窄和深入”数据并支持它的工具 - 所以我们经常讨论是否实际需要透视数据。
最终我们决定偶尔携带pivot数据,但只能通过报告视图。 (我们使用命名约定将报告视图与ETL视图区分开来。)我认为这是一种您应该考虑的方法,因为您提到的原因:可以添加新类别,使您的透视设计过时。另外,如果您有多个客户使用这些数据,则每个客户可能对不同的一组类别感兴趣。您可以为每个客户端在此表顶部投射一个自定义的透视报告视图。这听起来像很多工作,但是我认为每当你意识到已经添加了一个新类别时,重做一个枢轴表就没那么容易了。祝你好运!
你的问题是什么? – 2011-06-09 11:44:47
问题是维度名称/列名称还是这些列中的值? – Jai 2011-06-09 11:48:15
嗨,问题是让数据仓库迎合数据库中可能发生的变化,例如客户端决定添加另一个类别:产品范围,然后如果我已经在数据仓库中定义了列(在dimProduct表中,如果我只有品牌和类别,那么设计出现问题) – 2011-06-09 11:57:03