给谁看:
✓ 业务分析师
✓ 数据架构师
✓ 企业架构师
✓ 应用开发者
在上一章中,您了解了我们虚构的Adventure Works公司如何从基于 SQL 的报告解决方案转变为基于 OLAP 和Mondrian的 解决方案 。 Adventure Works现已在Pentaho内部实施了Mondrian,Pentaho是一个开源商业分析套件。 在本章中,我们将了解他们如何实现Mondrian以及如何使用它进行分析。 我们将从对架构的简要概述开始,然后我们将看到您可以使用Mondrian执行的某些类型的操作。 最后,我们将讨论数据如何从您的操作系统进入Mondrian进行分析。
除了学习Adventure Works如何使用Mondrian进行分析之外,您还将了解一些用于使用Mondrian进行分析的用户界面工具,就像拖放一样简单。 阅读完本章后,您将了解构成典型Mondrian部署的部分以及数据是如何构成的
2.1 蒙德里安在分析中的角色
正如我们在第1章中所述,Mondrian是分析引擎。 它接受分析查询并将其转换为关系查询,以支持分析的形式返回数据。 但是对于对业务用户有用的Mondrian,它需要某种界面和应用程序来运行它。
蒙德里安可以通过多种常见方式进行部署。 它可以在应用程序服务器中设置为独立运行并提供服务。 这种方法往往不是非常用户友好,因为它没有一个漂亮的图形用户界面。 Mondrian还可以嵌入到独立的应用程序中。 这种方法适用于具有特定用途的自定义应用程序,但除了您有多个应用程序之外,它不支持Mondrian的各种用途。 最后,可以将Mondrian部署为更大的Web应用程序的一部分,该应用程序为用户提供工具。 这种方法最灵活,但它也需要最多的组织和配置。 幸运的是,有一些解决方案可以轻松配置和部署。
有几种产品使用Mondrian作为报告和分析的分析引擎,如表2.1所示。 其中一个产品是Pentaho,这是一个流行的开源商业分析服务器,包括Mondrian,并有各种插件让用户直接使用Mondrian的功能。Pentaho是蒙德里安在全球最大的开源分销商,它被成千上万的组织使用。 Pentaho也是蒙德里安的主要支持者和贡献者之一,这意味着蒙德里安将在可预见的未来继续与Pentaho合作,蒙德里安的新功能将迅速融入Pentaho。
表2.1 一些使用蒙德里安的产品
名称 | 描述 |
Pentaho Analyzer | Pentaho的企业分析UI,提供表格和图形的交互式分析。 |
Pentaho Reporting
| 一种报告工具,可使用Mondrian数据创建像素完美报告。 |
Community Dashboard Framework | 一种流行的开源仪表板框架,用于创建交互式仪表板。 |
Saiku | 免费的开源分析工具,提供表格和图形的交互式分析。 Saiku可作为Pentaho插件或独立产品提供。 |
图2.1显示了蒙德里安如何融入Pentaho的建筑。 此视图非常简化,但它包含使用Mondrian的系统的主要部分。
■ 用户使用基于Web的工具进行交互。
■ Mondrian接受来自这些工具的查询,然后使用逻辑模式匹配来生成 SQL 查询。
■ 然后,Mondrian将结果返回给客户端进行格式化并显示给用户。
图2.1
Mondrian的架构简单,易于集成,并且灵活,可供各种用户和界面使用。
现在您已经了解了蒙德里安如何融入完整的架构,让我们深入了解并开始使用它。
2.2 运行和使用蒙德里安
Mondrian是一个分析引擎而不是应用程序或服务器,因此它需要在另一个应用程序或服务器内运行。 这使得Mondrian具有高度灵活性,因为它可以在各种应用程序和场景中重用,具体取决于业务需求。
Adventure Works有几个高级功能要求,它们决定了它们可以采取的方法:
■ 使用瘦客户端界面进行用户访问。
■ 为用户提供预定义的分析报告。
■ 允许用户进行自己的交互式分析。
■ 随着用户数量的增长,轻松扩展系统。
■ 根据用户及其角色提供数据安全性。
■ 为使用工具和系统提供良好的支持和示例。
■ 允许将来扩展。
Adventure Works调查了许多不同的业务分析解决方案,并决定使用Pentaho Community Edition( CE )。 它为用户提供瘦客户端界面。 他们的分析师可以使用开源工具来创建基于Mondrian的报告和仪表板。还有用于用户驱动分析的开源插件。 因为Pentaho CE 是一个Web应用程序,它可以通过标准的Web应用程序扩展技术进行扩展,并且还通过使用用户和角色来支持数据安全性。 Pentaho拥有良好的在线文档,全球用户社区以及许多提供支持和服务的公司。 最后,Pentaho是一个可以轻松支持定制和扩展的框架。
Pentaho有两种版本,社区版( CE )和企业版( EE )。 CE 可以免费下载和运行; EE 需要购买许可证,但附带其他功能和支持。 在此过程的早期,Adventure Works认为他们还不需要企业功能,并且他们愿意根据需要在Pentaho和Mondrian在线社区的帮助下提供技术支持。 随着他们对Pentaho的使用增长,他们知道他们可能想转向 EE ,但他们也知道他们在 CE中 做的任何事情 都会顺利地转移到 EE 。
在本节的其余部分中,您将看到如何 使用Mondrian和Saiku 运行Pentaho CE ,这是一个与Mondrian一起使用的开源分析工具。 您将获得一些报告和分析的实践经验。 我们将从Adventure Works预先创建的一些简单的预定义报告和仪表板开始,然后继续进行用户驱动的可视化分析,让您(用户)进行自己的数据分析。 最后,我们将通过使用 MDX 查询 向您介绍一些高级分析功能 。
2.2.1 获取并运行该软件
为了让您快速熟悉Mondrian,我们使用VirtualBox创建了一个虚拟机,VirtualBox是Oracle提供的免费开源解决方案。 附录A提供了有关如何下载和运行虚拟机的说明。 操作系统是Ubuntu 12,一种流行的开源Linux发行版。 如果您不了解Ubuntu,请不要担心。 它可能看起来很像您目前使用的操作系统,我们将随时提供说明。
启动并运行虚拟机后,如果尚未启动,则需要启动服务器。 通过单击左侧的图标打开终端窗口,该图标看起来像是带有 _ 的黑色计算机显示器 。 应打开带提示的终端窗口。
为了使Pentaho更容易一些,创建了一些命令。 表2.2显示了每个命令,它的作用以及何时使用它。 要运行该命令,只需在命令行中键入它即可。
表2.2 Pentaho便利命令
命令 | 描述 | 何时使用 |
ispentahorunning | 回复一条消息,指示Pentaho是否正在运行。 | 当您想要轻松了解Pentaho进程是否正在运行时使用。 |
start_pentaho | 如果Pentaho BA服务器未运行,则启动它。 | 用于在Pentaho未运行时启动它。 |
stop_pentaho | 如果Pentaho BA服务器正在运行,则停止它。 | 用于停止Pentaho服务器。 |
kill_pentaho | 杀死Pentaho进程。 | 如果 停止 使用作为最后的手段 _pentaho 不会停止这个过程。 |
Pentaho运行后,打开Firefox并转到http:// localhost:8080 /。 您应该看到如图2.2所示的登录页面。 Pentaho拥有一些预定义的用户和密码,可以轻松进行评估和实验,您需要在为您的组织部署Pentaho之前更改这些,但现在只需使用Pentaho的用户。 输入 joe 的用户名 和密码的 密码 。
图2.2 Pentaho登录页面
图2.3 Pentaho用户控制台(PUC)
Pentaho用户控制台,也称为 PUC ,是用户的主屏幕(见图2.3)。 您可以将 PUC 视为业务分析的命令控制台。 市局 包含你要熟悉五个主要方面:
1 菜单栏提供对与管理内容相关的各种操作的访问。 2 工具栏提供常用操作的快捷方式。
3 解决方案浏览器显示所有顶级解决方案文件夹,并允许您浏览子文件夹。
4 解决方案报告列表显示解决方案浏览器中所选文件夹的可用对象。
五 最后,您可以在报告区域查看和编辑分析和报告。
2.2.2 导航和查看报告
许多用户对自己的分析不感兴趣,只想查看数据的状态。 Adventure Works分析师创建了许多报告和仪表板,用户可以通过从解决方案窗格中选择它们来运行这些报告和仪表板。 要打开现有报告,只需在解决方案浏览器中单击AdventureWorks文件夹,然后双击要查看的解决方案对象。
图2.4显示了Adventure Works为用户创建的报告,以查看产品销售情况。 该报告是使用Pentaho Report Designer使用Mondrian数据作为源创建的。 图2.5显示了使用Community Dashboard Framework( CDF )使用Mondrian作为数据源 创建的仪表板图表 。 最后,图2.6显示了之前创建和保存的Saiku报告。 用户可以打开此报告并对其进行编辑,也可以只查看最新数据。 报告, CDF 仪表板和其他Pentaho内容的创建将在后面的章节中介绍。
图2.4 Pentaho报告:产品销售报告
图2.5 CDF:按月销售产品
图2.6 saiku:按年度销售产品
2.2.3 交互式分析
报告对于标准的,反复出现的问题很方便,但许多其他工具都支持报告。 蒙德里安真正闪耀的地方在于提供快速的交互式分析。 此功能允许 用户提问并发现静态报告中不明显的信息。 例如,营销经理可能想要了解按性别划分的促销活动的影响。 具有分析 UI的 Mondrian ,例如Analyzer或Saiku,允许管理员以交互方式进行此类分析,而无需技术支持。
最初,Adventure Works选择使用Pentaho的Saiku插件。 Saiku是一款流行的Mondrian开源图形分析工具,可以单独运行,也可以作为Pentaho插件运行。 Pentaho CE 预装了 JP ivot,但Adventure Works更喜欢Saiku提供的更优雅和直观的界面。 Pentaho还在企业版中提供了一个名为Analyzer的更高级分析插件,但它需要购买许可证,而Adventure Works认为Saiku将满足他们的所有初始需求。 图2.7显示了Saiku编辑器。
Saiku编辑由几个相关部分组成。 屏幕顶部是Saiku工具栏,可让您控制屏幕,输入高级命令,向下钻取,导出数据,甚至创建图表。 在工具栏下方,您可以拖动维度和度量以进行分析,并添加任何过滤器以限制数据。 沿左侧是立方体,尺寸和尺寸。 画布显示当前的分析结果。 在这个例子中,拥有一些大学或学士学位的人似乎是最好的客户。 需要进行更多分析,但这可能需要在大学校园中进行更多广告,或者研究为什么没有大学学位的人不会购买那么多。
图2.7 与Saiku的互动分析
图2.8 保存报告
要自己尝试,从下拉列表中选择一个多维数据集 - 表单会自动填充维度和度量。 我们将在稍后和接下来的几章中更详细地描述维度,但它们基本上是分析的属性,例如区域,日期,客户信息等。 度量是用于分析的值,例如订购数量,销售,库存,网站访问次数等。 接下来,将要使用的维度和度量拖动到行和列。 Saiku将根据您的分析结果自动更新报告。
通常,您可能希望以可视方式显示值,而不是作为值表。 要查看图表,请单击图表图标,然后将值转换为图表。 您现在可以单击不同类型的图表以查看以不同方式显示的数据。
图表的挑战之一是它们很快就会因数据过载而难以阅读和解释。 通常,图表在每个轴上应该只有几个值。 尝试查找最能代表您数据的图表类型。
获得自己喜欢的分析或图表后,可以将其保存以供将来使用,无论是原样还是仪表板。 单击主工具栏上的磁盘图标以获取“保存”对话框(参见图2.8)。 如果双击解决方案列表中保存的文件,它将打开Saiku插件中保存的分析。
2.2.4 与Saiku进行MDX分析
拖放分析为业务用户提供了大量的功能和洞察力 - 他们可以快速执行各种分析,而无需了解查询语言或了解底层数据库的详细信息。 但经验丰富的分析师可能希望执行拖放不直接支持的高级分析,例如与之前的时段进行比较或进行线性回归。
Saiku让您超越拖放并使用 MDX 查询 执行高级分析 。 多维表达式( MDX )是 OLAP的 一种查询语言 ,允许您使用高级技术,例如报告的比率,并行周期比较,周期增长,交通照明等。 Mondrian几乎支持 您编写的 所有标准 MDX 查询。
学习MDX 多维表达式( MDX )是一个很大的主题。 我们将介绍 MDX的 一些基础知识 以及您可能会发现有用的表达式,但涵盖所有 MDX 超出了本书的范围。 MDX 在许多其他书籍以及Microsoft网站中都有详细介绍。
例如,假设您希望能够将当前销售季度与上一年度的同一季度进行比较。 以下 MDX 查询将允许您这样做。
清单2.1 | 比较几年的季度 |
有会员[措施]。[上一年销售]
AS(
[措施]。[总销售额],
PARALLELPERIOD([订购日期]。[每月]。[季]。现在会员,4)
)
选择
NON EMPTY {[Measures]。[Total Sales],
[措施]。[上一年度销售]}关于列,非空{{[订单日期]。[每月]。[年]。成员},
{[订单日期]。[每月]。[季度]。成员}}来自[互联网销售]的行
要输入此查询,请单击按钮以切换到 MDX 模式。 Saiku将向您显示 当前查询 的 MDX 。 您可以修改该查询或从头创建一个查询。 输入上一个 MDX 命令,然后单击“运行查询”按钮。 您应该获得一个包含查询结果的表,如图2.9所示。
现在你已经看到了你可以用Mondrian做什么,让我们来看看用于支持的底层数据和模式
蒙德里安。 下一节将介绍 图2.9 结果显示与一年前同一季度 多维建模的比较。 然后我们将介绍为Mondrian提供分析数据的数据仓库。
MDX查询中的错误
MDX可能变得复杂,而且它对语法很挑剔。 如果查询中有错误,通常会收到错误消息,尤其是语法错误。 不幸的是,许多其他错误导致没有返回数据而没有指示问题。 从MDX开始,我们建议您一次构建一个查询,每次更改后检查以确保查询仍然有效。
1 第 2 章 蒙德里安:第一眼看
多维建模
(继续)
您通常可以从tomcat日志文件中获取更详细的错误消息。 这些文件位于... / tomcat / logs目录中。 在类Unix系统上,例如附录A中讨论的示例VM,文件名为catalina.out。
2.3 多维建模
现在你已经看到Adventure Works用户如何使用Mondrian进行分析,现在是时候讨论你需要做些什么来实现它。 Mondrian作为 OLAP 引擎,以多维方式呈现数据:内容是业务分析师想要了解的数据事实,例如销售和库存,维度是有关分析数据的属性,例如仓库,地理位置,客户人口统计, 等等。
在本节中,我们将介绍通过立方体建模并查看这些模型的派生方式。 在第4章中,我们将详细探讨定义Mondrian模式。
2.3.1 一个简单的报告
一位高级经理带着问题走进分析师办公室。 “我想更多地了解客户的人口统计数据。 你能否告诉我今年接受大学教育的客户是否比去年销售更多产品?“”当然,我将建立一个销售多维数据集,并在今天下午向您展示结果。“分析师构建了如图所示的架构2.10。
架构,名为 Sales,包含一个立方体,也叫 销售 。 多维数据集有两个度量, 单位 和 商店销售 ,以及两个维度, 时间 和 客户 。 “ 时间” 维度具有“ 年” ,“ 月 ”和“ 日 ”属性 ,“ 客户” 维度具有“ 教育”和“ 名称 ”属性 。
图2.10 销售架构
查看冒险工作模式 如果您正在使用虚拟机,则可以在/opt/pentaho/biserver-ce-4.5/biserver-ce/ pentaho-中名为adventure _works.mondrian.xml的文件中找到Adventure Works模式。 solutions / adventure_work文件夹。
第4章描述了架构包含的内容以及如何定义它,但为了构建报告,您只需要知道逻辑元素。 模式中还有足够的信息将这些维度,属性和度量映射到数据库的表和列,因此分析人员可以编写 MDX 查询:
SELECT {[Measures]。[Units],
[措施]。[商店销售]} ON COLUMNS,Crossjoin([时间]。[年]。成员,
[客户]。[教育]。会员)来自[销售]的行
查询产生所需的结果:
年教育 单位销售店销售
==== =================== ========== ===========
2011 所有教育66,291 139,628.35学士学位17,066 35,699.43研究生学位3,637 7,583.71高中学位19,755 41,945.65部分学院6,309 13,336.92
部分高中 19524 41,062.64
2012 所有教育62,610 132,666.27学士学位16,175 34,552.11研究生学位3,880 8,096.90高中学位17,907 37,797.71部分学院5,852 12,389.92
部分高中 18796 39,829.63
HIERARCHIES和ATTRIBUTES 实际上, MDX 使用 层次结构 而不是 属性 。 Mondrian为每个属性生成一个层次结构,因此效果几乎相同。 完整的故事见4.3.3节。
请注意,几乎所有这些元素( Sales 多维数据集, Customer 和 Time 维度, Year 和 Education 属性以及 Units 和 Store) 销售 度量)在 MDX 查询 中引用 。 因为Mondrian是一个查询引擎,所以Mondrian模式的目的基本上是定义可以在 MDX 查询中 使用的元素 。
2.3.2 建模业务问题
如何将业务问题转换为维度模型? 在本节中,我们将了解维度建模的抽象 - 多维数据集,维度,属性和度量 - 如何为企业的运行建模。
在前面的示例中,设计模式的过程是由业务用户提出的问题引发的。 然后可以构建回答该问题所必需的属性和措施。 这是应该的。 没有生意
多维建模
提出焦点的问题,自然倾向于将操作模式中的每一条信息都拉入其中并产生过于复杂的分析模式。 一个特定的问题可以帮助您专注于重要的事情。
不断发展的架构 蒙德里安可以很容易地通过添加属性,尺寸,措施,并计算时,你需要他们发展的模式。 这使您可以采用敏捷方法,只需构建您当前所需的内容。
可以通过倾听业务用户的问题来收集维度模型。 每个关键概念都可能变成一个立方体,一个属性,一个维度或一个度量。 属性对应于名词,并且相关的属性(因为它们描述了业务中的同一实体)被分组为维度。可量化的值是度量。 多维数据集描述业务流程,因此它们往往显示为动词。 如果业务用户说“基于......比较”或“按......分解”,则下一个名词可能会成为维度模型中的属性。 例如,经理可能会说“你能按季度分解报告吗?”并且分析师会推断 应该将 [季度] 属性添加到 [时间] 维度。
有时,属性属于哪个维度并不明显。 例如,如果经理说“你能根据折扣水平进行比较吗?”,分析师可以提出一个后续问题:“每个客户总是得到相同的折扣级别吗?”如果经理说“是的”,分析师很高兴。 这意味着[折扣 等级] 应该是 [客户] 维度 的属性 。 生活是简单的。
但是假设经理的回答是,“是的,不是。 每个客户的折扣级别取决于他们是黄金还是白银客户,我们决定每个季度。 此外,我们的销售经理可以自行决定提高真正大订单的折扣水平。“分析师应该如何解读此回复。 折扣级别应该是一个新的维度,因此它可以针对每个事务而变化。 填充折扣级别的业务规则很复杂, 如果在运行时执行, 可能会导致不可接受的 SQL 性能。 实用的解决方案是将折扣级别设置为事实表中的列,在数据仓库中填充数据时使用业务规则填充它,并在该列的顶部构建维度。 这使运行时模式简单,并且简单模式比复杂模式执行得更好。
立方体(以及它们组成的细粒度事件)通常以动词形式出现。 在2.3.1节的原始问题中,经理问道:“我们卖得更多......?”动词“销售”或销售可以成为一个立方体。
多维数据集中的事实是业务流程的出现; 业务流程的示例包括销售,订单发货,进入或离开仓库的库存,到达呼叫中心的呼叫,点击公司网站,以及在社交媒体中提及公司名称或产品。
如果您熟悉实体关系建模,那么您可能想知道业务流程是否是一种实体。 尽管它们作为行存储在数据库中,但它们不是实体。 业务流程按照自己的计划发生,通常在公司及其信息系统之外,并且通常没有自然的唯一标识符。 如果没有唯一标识符,它们就不具备经典意义上的实体关系建模中的实体。 考虑 人力资源 系统:员工是一个实体,但对该员工的每次更新(招聘,解雇或辞职,晋升,加薪,转移到其他部门)都是业务流程的一个实例。 虽然这些业务流程涉及同一个实体,但它们是不同的业务流程,应该位于不同的多维数据集中。 这就是为什么激发维模型设计的商业问题如此重要。 您需要构建的多维数据集,例如[Employee 雇用] 和 [员工 如果只查看操作数据库的表和列,则 转移] 并不明显。
在传统建模的语言中,业务流程的实例更像是事件。 事件可能是众多的,单独考虑它们是不切实际的。 相反,您应该查看在类似上下文中发生的事件的聚合属性。 这些属性称为 度量 。
度量是强大的,因为它们不仅适用于单个事件,还适用于在类似上下文(时间,地点等)中发生的事件集合。 例如,您可以查看特定月份和区域中发生的所有销售额的总和。 这比简单地生成销售报告要强大得多。
综上所述,
■ 度量 是用于分析业务流程的数量。
■ 属性 是将测量集切割为可以比较的区域的方式。
■ 维度 是方便的属性集合。
■ 多维数据集 包含回答特定业务问题所需的度量,属性和维度。
Mondrian架构描述了数据并在维度上对其进行组织。 但是您需要实际数据进行分析。 下一节将介绍如何获取数据并将其组织起来进行分析。
2.4 获取和组织数据
到目前为止,我们已经探索了Adventure Works用户可用的仪表板,报告和按需分析。 我们还研究了如何将这些信息组织成度量,维度,多维数据集和模式。 现在我们将更深入地了解分析师需要做些什么来启用此功能。
将数据提供给分析师的基本过程如图2.11所示。 数据通常 通过称为提取,转换和加载( ETL ) 的过程 从事务业务系统( OLTP ) 提取 到 OLAP 数据库中 。 然后,Mondrian使用数据源定义来查找数据和Mondrian模式来解释数据。 Mondrian将 MDX 查询 转换 为 SQL 查询,以通过Analyzer或Saiku等分析工具为用户获取数据。 在本章的其余部分,我们将展示您的能力
获取和组织数据
蒙德里安数据源 图2.11 获取 模式定义 数据分析师
获取并组织数据,然后描述并公开它以供Mondrian使用。 然后,在接下来的几章中,我们将深入探讨每个主题。
2.4.1 数据仓库:物理存储数据
正如您在上一节中看到的那样,Mondrian将数据呈现为具有多个维度的多维数据集以供分析。 但蒙德里安不存储数据; 它只是提供物理数据的逻辑视图。 Mondrian是一个关系 OLAP ( ROLAP )引擎,意味着数据存储在关系数据库中,Mondrian将 MDX 查询转换 为 用于存储 的特定 RDBMS的 SQL 查询 。 从技术角度来看,这有许多优点:
■ 您可以选择针对分析人员通常执行的查询类型进行优化的数据库。
■ 您将获得 DBA 已经习惯 的 RDBMS 系统的 所有备份,故障转移和群集功能 。
■ ROLAP 引擎不会预先计算维度的交叉点,因此只要数据库中的数据更新,分析人员就可以使用这些数据。
■ 您可以在将来切换到其他数据库并仍使用Mondrian(假设支持新数据库)。
Mondrian允许您以各种方式存储数据并将其公开以供分析使用,但某些组织数据的方式比其他方式更好。 多年前数据仓库行业发现,将数据组织成“星型模式”可以快速分析大量数据。 这是因为简化了数据之间的关系,并且最小化了连接数据所需的连接数。
图2.12显示了规范化的数据库模式与星型模式。 在规范化数据中,要获取有关特定产品的订单来源的信息,您必须加入产品,行项目,采购订单,客户,城市州,州/国家/地区 - 地区表。 星型模式消除了这些复杂的多连接,并且很容易理解数据的相关性。 使用星型模式,连接将缩减为“购买”,“地理位置”和“产品”表。 减少连接数简化了模式,通常可以提高性能。
图2.12 标准化数据与星型模式
通过将相关数据组合到单个非规范化表中来简化星型模式。 例如,City-State,State-Country,Country-Territory表都被合并到Geography表中。 这意味着状态到国家/地区映射有多个副本,增加了数据存储,如果映射发生更改(例如,如果一个国家/地区分成多个国家/地区),可能需要更新多个记录。 在第3章中,我们将讨论避免冗余的方法,但通常选择支付额外的存储空间以获得更快的分析。 业务分析师的时间通常比额外存储空间的成本高得多。
2.4.2 检查Adventure Works数据
要查看Adventure Works数据的存储方式,可以使用任何My SQL 工具查看数据。 从命令行输入 mysql -u 根 -p 。 您应该看到一个 mysql> 提示符。 在提示符下,键入 use adventure_works_dw; 。 这将更改为使用Adventure Works数据库。 要查看数据库中的表,请键入 show 表; 。 我们正在使用与 dim_ 一起启动维度表的通用约定 。
让我们快速浏览一下几个表格。 输入 描述 internet_sales; 。 你会看到一堆关键字段和其他值。 值是我们正在测量的事实,关键字段是维度表的外键。 例如,ProductKey字段是dim_product表的键。
如果你现在输入 describe dim_product; ,您将看到可以在维度中使用的所有值。 例如,我们使用EnglishProductName作为维度中的产品名称属性。 因为我们有产品名称以及销售和产品表之间的链接,所以我们能够按产品分析事实。 请注意,dim_product表中的字段可用作维度中的级别或属性。 它们的使用方式取决于字段与您要回答的问题类型之间的关系。
获取和组织数据
2.4.3 填充数据
仓库中的数据通过称为提取,转换和加载( ETL ) 的过程填充 ,如图2.13所示。 该名称描述了该过程。 首先,数据是从源系统中提取的,源系统通常是一个或多个具有规范化数据库模式的事务性关系数据库,但是大数据系统(如Hadoop)和No SQL 系统(如Mongo DB) 也变得越来越普遍。 。然后转换数据以适应数据仓库模式。这可以包括数据清理和更改数据等步骤,以便业务用户更容易理解。最后,数据被加载到数据仓库中,组织为星型模式,Mondrian可以使用它。
将数据从事务系统移动到分析系统的另一个好处是可以将多个数据源组合到单个数据仓库中。企业,特别是大型企业,往往拥有许多复杂的运营数据库。例如,他们可能拥有库存和仓库 系统,客户信息CRM 系统,员工信息HR 系统等。将这些信息组合到一个统一的数据仓库中,可以进行更复杂的分析,例如根据各个销售人员(来自人力资源系统)在特定区域(来自CRM 系统)的销售情况查看库存(来自库存系统)的变化。
过去, ETL 是通过自定义软件和脚本完成的,源数据通常存储在关系数据库中。随着Web的增长和创建的大量数据,分析所需的重要数据通常驻留在多个数据库,文本文件,无 SQL 数据库和Hadoop中。编写自定义软件来执行 ETL 步骤是一项巨大的任务,无论是开发还是维护。
幸运的是,Pentaho还提供了一个名为Kettle(又名Pentaho数据集成或 PDI )的 开源工具,它使ETL 变得更加容易。Kettle提供了一个名为Spoon的图形界面,允许用户以图形方式创建操作数据的步骤序列。一系列步骤称为 转换 因为它将数据从输入源“转换”为分析所需的格式。例如,转换可能会从操作数据库中的多个表中读取一些度量。然后可以操纵这些措施,例如执行计算或将神秘代码转换为用户可读的值。然后查找维度键以将事实(数字)数据与维度成员(例如日期或地理位置)相关联。最后,将数据放入分析数据库。在此过程中,用户不必编写代码。
Kettle支持各种难以手工编写的数据源和转换。Kettle允许您访问非关系数据
OLTP转换OLAP 图2.13 使用ETL 加载 数据库数据库 数据仓库
文本文档 图2.14 使用Kettle进行ETL
来自Hadoop和MongoDB等系统的“大数据”,而不需要传统上经常需要的编码。最后,可以安排Kettle工作,允许定期更新数据,以便分析人员可以使用最新的数据。图2.14显示了Kettle如何适应先前定义的ETL 过程。
2.5 摘要
在本章中,您将了解如何使用Mondrian在业务环境中提供分析服务。我们讨论了蒙德里安如何融入Pentaho的建筑。您还看到了Adventure Works正在与Mondrian合作的一些事情。特别是,您学到了以下内容:
■ Mondrian是一个在服务器或应用程序内运行的引擎,例如Pentaho Business Analytics。
■ Mondrian可用于生成预定义的报告和仪表板。
■ 通过使用Saiku和Pentaho Analyzer等插件,业务用户可以进行自己的交互式分析。
■ 高级高级用户可以使用 MDX 创建复杂的分析查询。
■ Mondrian使用逻辑模式从物理数据映射到多维立方体。
摘要
■ 为了有效地工作,有助于将数据非规范化为星型模式。
■ 迁移数据的过程称为 ETL ,可以通过使用Pentaho Data Integration( PDI )等工具进行简化。
在下一章中,我们将深入探讨数据仓库的结构和逻辑。然后我们将介绍Mondrian架构的主要部分,然后再介绍更高级的主题。这些章节将为您提供足够的信息,以便开始创建自己的数据仓库并提供基于Mondrian的分析解决方案。