Datamart vs.reporting Cube,有啥区别?
Posted
技术标签:
【中文标题】Datamart vs.reporting Cube,有啥区别?【英文标题】:Datamart vs. reporting Cube, what are the differences?Datamart vs.reporting Cube,有什么区别? 【发布时间】:2008-12-11 21:03:46 【问题描述】:这些术语到处都在使用,我不知道清晰的定义。我很确定我知道什么是数据集市。我还使用 Business Objects 和 Cognos 等工具创建了报告多维数据集。
也有人告诉我,数据集市不仅仅是多维数据集的集合。
我也有人告诉我,数据集市是一个报告立方体,仅此而已。
你理解的区别是什么?
【问题讨论】:
【参考方案1】:Cube 可以(并且可以说应该)意味着一些非常具体的东西 - 通过OLAP server 呈现的 OLAP 工件,例如MS Analysis Services 或 Oracle(nee Hyperion)Essbase。但是,它的使用也更加松散。这种类型的 OLAP 多维数据集使用可感知多维数据集的查询工具,这些工具使用与标准关系数据库不同的 API。通常,OLAP 服务器维护自己的优化数据结构(称为MOLAP),尽管它们可以作为关系数据源的前端(称为ROLAP)或以各种混合模式(称为HOLAP)来实现)
我试图具体一点,并专门使用“立方体”来指代 OLAP 服务器(如 SSAS)上的立方体。
Business Objects 通过一个或多个源(可能是关系数据库、OLAP 多维数据集或平面文件)查询数据并创建一个称为MicroCube 的内存数据结构,用于支持交互式切片-和骰子活动。 Analysis Services 和 MSQuery 可以创建一个cube (.cub) file,它可以由 AS 客户端软件或 Excel 打开并以类似的方式切片和切块。 IIRC 最近版本的 Business Objects 也可以打开 .cub 文件。
为了迂腐,我认为 Business Objects 位于“半结构化报告”空间中,介于真正的 OLAP 系统(例如 ProClarity)和临时报告工具(例如 Report Builder、Oracle Discoverer 或 Brio)之间。查询面板的往返行程使它作为一个纯粹的思想流 OLAP 工具有点笨拙,但它确实提供了传统报告所不具备的交互性水平。我认为 Business Objects 的最佳点在于两个地方:由不一定熟悉 SQL 的员工提供临时报告,以及提供以交互式格式交付的计划报告,以便深入了解数据。
'Data Mart' 也是一个相当宽松的术语,可以表示数据仓库系统的任何面向用户的数据访问介质。该定义可能包括也可能不包括报告工具和元数据层、报告层表或其他项目,例如多维数据集或其他分析系统。
我倾向于将数据集市视为完成报告的数据库,尤其是当它是整个数据仓库架构中易于定义的子系统时。但是,将其视为面向用户的报告层是很合理的,特别是如果存在允许最终用户直接获取数据的临时报告工具(例如 Business Objects 或 OLAP 系统)。
【讨论】:
【参考方案2】:“数据集市”一词已经变得有些模糊,但它传统上与组织信息系统的面向主题的子集相关联。数据集市没有明确暗示存在多维技术(如 OLAP),数据集市也没有明确暗示存在汇总数值数据。
另一方面,多维数据集往往意味着数据是使用多维命名法(通常是 OLAP 技术)呈现的,并且数据通常被概括为多个层次结构的交集。 (即您家庭的净资产与您的个人净资产以及介于两者之间的一切)通常,“立方体”意味着非常具体的东西,而“数据集市”往往更笼统一些。
我想在 OOP 中你可以准确地说数据集市“有一个”多维数据集、“有一个”关系数据库、“有一个”漂亮的报告界面等等……但这样说不太正确那些单独的“是一个”数据集市中的任何一个。术语数据集市更具包容性。
【讨论】:
【参考方案3】:数据集市是特定业务流程的数据集合。数据的存储方式无关紧要。与具有行和列的表不同,多维数据集以一种特殊的方式、多维存储数据。 olap 数据库中的多维数据集类似于传统数据库的表。数据集市可以有表或多维数据集。多维数据集可以加快分析速度,因为它会提前预先计算聚合。
【讨论】:
【参考方案4】:顾名思义,多维数据集是结构化的多维数据集(通常三个维度,每个维度代表多维数据集的三个边)。数据集市只是一个容器,而不是其本身的结构,尽管它包含按维度和事实平面组织(如表)的数据集。
多维数据集的结构使得沿着多维数据集的各个维度可视化或概念化数据变得容易。因此,大多数业务分析师或开发人员发现查询多维数据集并与之交互很容易。
由于数据集市只是一个包含一堆表的容器;在查询和分析数据之前,用户需要首先概念化和理解维度结构。
【讨论】:
【参考方案5】:数据集市传统上是指静态数据,通常以日期/时间为导向,由分析师用于统计、预算、绩效和销售报告以及其他计划活动。
Cube 是一个 OLAP 数据库,它非常详尽地将 OLTP 数据转换为静态的、面向日期/时间的模式,该模式使用的查询语言不是 SQL,而是专门为回答数据集市类型的问题而构建的。它使用度量、维度、星型模式等术语,而不是表、列和行。最熟悉的类比可能是电子表格中的数据透视表。
【讨论】:
【参考方案6】:记住:
数据仓库是从遗留和事务数据库系统中获取数据并将其转换为用户友好格式的有组织信息的过程,以鼓励数据分析并支持基于事实的业务决策。
数据仓库是一个提取、清理、整合和交付的系统 源数据到维度数据存储,然后支持和实现 为决策目的进行查询和分析。
KIMBALL 例如始终将数据集市定义为基于原子数据基础的整个组织数据的面向流程的子集,并且仅取决于数据测量事件的物理特性,而不取决于预期的用户问题。
数据集市基于数据源,而不是基于部门的数据视图。 数据集市包含支持向下钻取到最低级别所需的所有原子细节。 数据集市可以集中控制或分散。正确定义
基于流程 原子数据基础 数据测量错误的定义
基于部门 仅聚合数据 基于用户问题【讨论】:
【参考方案7】:对我来说,数据集市只是将数据以相对扁平、不可用的格式转储的地方。
Cube 正在获取这些数据并让它跳舞。
【讨论】:
有时这些平面格式不仅可用,而且比规范化的数据结构表现得更好。 哦,是的,非规范化表的性能比完全规范化的表要好得多。不过,付出的代价是浪费空间。【参考方案8】:我同意马修的观点。我们倾向于将术语“数据集市”用于存储通用数据和跨企业中各种应用程序使用的映射的任何数据源。我们不在数据集市中存储可测量的数据,因此我将数据集市视为多维数据集的多个数据源之一。然而,我们就是这样做的。我确信没有什么可以阻止您在数据集市中存储可衡量的数据。
【讨论】:
以上是关于Datamart vs.reporting Cube,有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章