0

我一直在审查客户的体系结构,特别是他们的 OLAP 系统,它只是 SQL Server 上一个普通的旧雪花模式。事实和维度是从其他事务系统(例如 ERP)中进行 ETL 处理的。

我突然想到的一件事是同一个数据库中的几个附加表,用于多个附加 OLTP 应用程序。这些表与雪花模式中的维度表具有 FK 关系。

OLTP系统的维度数据有很多join,所以性能不是最好的。

我根本不是 OLAP 专家。但这只是感觉不对。我已经进行了一些搜索,但无论是赞成还是反对,在互联网上都找不到太多关于此的内容。这样做有什么好处?有吗?潜在的问题呢?

4

2 回答 2

1

我会尽量避免 OLTP 和 OLAP 数据之间的任何显式外键。拥有从 OLTP 到 OLAP 的外键会阻止您在业务中添加新实体,并且可能需要首先在 OLAP 中定义实体,而标准是仅单向运行 ETL 流程 - 始终从 OLTP 或 OLAP。并且拥有从 OLAP 到 OLTP 的外键可以防止您将与当前业务无关但可能对分析感兴趣的历史数据保存在数据仓库中。

当然,在某些情况下,您出于某种原因违反规则。也许有一个。客户端是否有人解释了为什么按照您描述的方式实施?

于 2014-01-08T16:47:18.703 回答
0

在 OLTP 和 OALP 之间共享维度表并不常见。至少有两个原因:(1) OLTP 和 OLAP 中感兴趣的属性可能完全不同。(2) 争用和随之而来的性能问题。

另一方面,OLTP 和 ODS 共享完全相同的维度副本并不少见(但有些先进)。这通常被称为“黄金副本”。我经常将这样设计的 ODS 称为活动 ODS。当维度有多个副本时,我称之为被动 ODS。可能你指的OLAP不是真正的OLAP,只是某种形式的战术报告,在这种情况下共享同一个维度表并不少见。

于 2015-08-05T19:07:32.197 回答