操作数据库模式到数据集市模式,表减少?

ta.*_*.is -1 olap ssas business-intelligence

我开始学习SQL Server Analysis Services,我正在通过培训书以及开发人员培训工具包.在这两者中,我发现建议OLAP数据库中使用的表数(理想情况下,星型模式)从生产OLTP数据库中大大减少.

从培训套件中:

我们遵循数据维度方法来构建数据集市架构.在操作数据库中的大约200个表中,数据集市模式包含大约10个维度表和2个事实表.

据我所知,操作数据库通常(有些)规范化,数据集市模式严重非规范化.我还认为,非规范化数据通常涉及添加更多表,而不是更少.

除非您只需要报告数据子集,否则我无法看到如何从200个表转到12个表.如果您只需要报告数据的子集,为什么不能在操作数据库中使用适当的表(除非使用非规范化的星型模式可以获得显着的性能提升)?

小智 5

非规范化与规范化数据库完全相反.在规范化的数据库中,所有内容都会分散到不同的表中,以支持对数据的并发写入.这也具有仅产生任何给定数据子集一次的副作用(在理想的第三范式数据结构中).规范化的缺点是读取需要花费更长的时间,因为数据是分散的,我们需要连接表来再次理解它(连接是非常昂贵的操作).

当我们进行非规范化时,我们从多个表中获取数据并将它们合并到一个表中.所以现在我们在这些表中重复数据.重复数据很有用,因为我们不必再连接任何其他表来获取它.写入数据存储通常是一个坏主意,因为这意味着很多写操作会更改表中的所有数据,而在规范化数据库中只需要一个.

OLTP代表在线交易处理,请注意"交易"一词.事务是写操作,并且为此优化了OLTP模型.OLAP代表在线分析处理,分析是关键字,意味着大量读取.

在OLTP到OLAP进程中从200个表转到12个,令人惊讶的是,OLTP数据库中的几乎所有数据都会保留更多数据.OLTP无法记录所有更改,但OLAP专注于此,因此您可以获得所有历史数据以及当前数据.

星型模式可能是OLAP数据存储最常见的,雪花模式也很常见.您应该了解两者以及如何正确使用它们.这只是你的武器库中的另一个伟大工具.

来自IBM的这两本书将更加充分地回答您的问题,并且它们是免费的PDF文件.

http://www.redbooks.ibm.com/abstracts/sg247138.html
http://www.redbooks.ibm.com/abstracts/sg242238.html