为啥我们需要 SSIS 和数据仓库的星型模式?

Posted

技术标签:

【中文标题】为啥我们需要 SSIS 和数据仓库的星型模式?【英文标题】:Why do we need SSIS and star schema of Data Warehouse?为什么我们需要 SSIS 和数据仓库的星型模式? 【发布时间】:2014-07-07 11:01:27 【问题描述】:

如果SSAS在MOLAP模式下存储数据,那么SSIS的应用是什么,为什么需要Data Warehouse和SSIS的ETL流程?

我有一个 SQL Server OLTP 数据库。我正在使用 SSIS 将我的 SQL Server 数据从 OLTP 数据库传输到包含事实表和维度表的数据仓库数据库。

之后我想使用 SSAS 表单数据仓库数据创建多维数据集。

我知道 MOLAP 存储数据。我需要任何带有事实和维度表的数据仓库吗?

避免创建数据仓库,直接从OLTP数据库创建多维数据集不是更好吗?

【问题讨论】:

【参考方案1】:

这可能是“太宽泛”的候选,但我会试一试。

我为什么要存储我的数据 3 次?

我的 OLTP(在线、事务处理系统)中有我的数据,我为什么要将这些数据移动到一个全新的结构(数据仓库)中,然后再将其移动到 OLAP 系统中?

让我们从简单的开始。你只有一个记录系统,而且它并不忙。也许您可以摆脱抽象层(数据库中的视图或 SSAS 中的命名查询)并跳过数据仓库。

因此,您构建了您的多维数据集、维度和人们开始使用它并且他们喜欢它。

“你知道什么会很棒吗?如果我们能够将我们的 Blats 与我们已经拥有的 Foos 和 Bars 相关联”现在您需要将您的简单应用程序与来自完全不相关应用程序的数据集成。您应用中的客户 ID 10 是 CRM 应用中的客户 ID ECA67697-1200-49E2-BF00-7A13A549F57D。怎么办?您将需要向您的用户展示客户的单一视图,否则他们将不会使用该工具。

也许你用铁腕统治并说不,你不能在多维数据集中拥有这些数据,而你的用户也会接受它。

“生完孩子后人们的购买习惯会改变吗?”我们无法回答这个问题,因为我们的应用程序只存储客户的当前版本。一旦他们有了孩子,他们就一直有孩子,因此您无法在事件之前或之后清楚地识别模式。

“我们去年的销售情况如何”我们无法回答这个问题,因为我们只在应用程序中保留 12 周的滚动数据以使其易于管理。

“多维数据集中的数据过时了,你能刷新一下吗?” Egads,现在是中午。 SSAS 处理需要表锁,并且本质上会使我们的应用程序停止运行,直到它完成处理。

我需要继续这些场景吗?

总结

数据仓库充当不同系统的集成点。它具有一致的尺寸(每个人对事物的定义都有一个共同的定义)。仓库中的数据可能会超过源系统中数据的生命周期。业务需求可能会推动跟踪源应用程序不支持的数据。 DW 中的数据支持业务活动,而您的 OLTP 系统支持自身。

SSIS 只是一个移动数据的工具。那里有很多,有些更好,有些更糟。

所以不,一般来说,最好避免创建 DW 并基于您的 OLTP 数据库构建您的多维数据集。

【讨论】:

以上是关于为啥我们需要 SSIS 和数据仓库的星型模式?的主要内容,如果未能解决你的问题,请参考以下文章

使用星型模式数据仓库进行报告与分析

在星型模式表设计中包含关系有啥好处?

大数据仓库还需要星型模式吗?

在数据仓库中从星型模式创建视图

有任何 ETL/建模工具来创建 ROLAP 星型模式数据仓库吗?

数据仓库星型模式的维度表和事实表中的数据如何?