我一直在审查客户端的体系结构,特别是他们的OLAP系统,它只是SQL Server上常规的旧雪花模式。事实和维度是从其他交易系统(如ERP)中获取的。
在我身上跳出的一件事是在同一个数据库中为多个额外的OLTP应用程序添加了几个额外的表。这些表与雪花模式中的维度表具有FK关系。
OLTP系统中的维度数据有很多连接,因此性能不是最好的。
我根本不是OLAP专家;但这只是感觉错了。我做了一些搜索,但在互联网上无论是pro还是con都找不到这个。这样做有什么好处?有吗?那些潜在的问题呢?
答案 0 :(得分:1)
我会尽量避免OLTP和OLAP数据之间的任何显式外键。从OLTP到OLAP的外键可以防止您在业务中添加新实体,并且可能需要首先在OLAP中定义实体,而标准是仅从单向运行ETL过程 - 始终从OLTP或OLAP运行。从OLAP到OLTP的外键可以防止您在数据仓库中保存与当前业务无关的历史数据,但可能对分析感兴趣。
当然,总会出现因某种原因而违反规则的情况。也许有一个。客户方的人是否有解释为什么按照您描述的方式实施?
答案 1 :(得分:0)
在OLTP和OALP之间共享维度表并不常见。至少有两个原因:(1)OLTP和OLAP中有趣的属性可能完全不同。 (2)争用和随之而来的性能问题。
另一方面,OLTP和ODS共享完全相同的维度副本并不罕见(但有些先进)。这通常被称为“黄金副本”。我经常称这样设计的消耗臭氧层物质是一种活跃的消耗臭氧层物质。当维度有多个副本时,我将其称为被动ODS。可能您所引用的OLAP不是真正的OLAP,而只是某种形式的战术报告,在这种情况下共享相同的维度表并不罕见。