数据仓库知识点梳理(4)

和自甴很熟 提交于 2020-10-06 02:24:48

接上一篇数据仓库知识点梳理(3)对数据立方体和MDX的介绍,本文将在本地Windows环境上搭建基于数据立方体的数据分析平台。并对一个示例立方体进行多维度分析。

环境配置

软件下载和安装

本文使用Pentaho的社区版本BI Server作为数据多维分析的工具,下载地址为https://sourceforge.net/projects/pentaho/files/Business%20Intelligence%20Server/。当前最新版本为7.1,更新日期为2017年5月22日。

这个Pentaho出的另一个产品——「Pentaho Data Integration, 简称PDI」对于从事ETL工作的朋友应该很熟悉,PDI以前的名字叫做kettle。

下载的过程中,可以在需要安装的机器上先安装Java环境。这次我使用一台Windows7的笔记本电脑进行测试环境的搭建。Java运行环境JRE可以直接在Oracle官网进行下载。安装完成后,可以使用java -version查看版本信息。

BI Server下载完成之后解压,将其解压到指定程序目录,比如D:\Program Files\pentaho\petaho-server

为了让BI Server能够找到Java程序的路径,需要在Windows的环境变量中添加名为PENTAHO_JAVA_HOME的环境变量,变量值设为JRE的安装路径。

为了多维数据立方体的操作需要用到另外一款插件——「Pivot4J」,它可以将将图形化的操作转化为MDX语句,从而简化对数据立方体进行操作。Pivot4J的下载地址为http://ci.greencatsoft.com/job/Pivot4J/lastSuccessfulBuild/artifact/pivot4j-pentaho/target/pivot4j-pentaho-1.0-SNAPSHOT-plugin.zip。下载解压的pivot4j文件夹复制到BI Server的pentaho-solutions/system路径下,即完成插件的安装。

启动和系统登陆

进入到安装目录下,可以看到名为start-pentaho.bat的执行文件,右键点击后使用管理员身份运行。然后,会出现Tomcat的命令行窗口,首次启动可能需要一些时间,启动成功后的命令行窗口信息大值如下。

BI Server前台的默认访问地址为http://localhost:8080,默认登陆账户为为Admin,密码为password

登陆后,查看下File操作菜单的new按钮是否有Pivot4J View的选项,有的话证明环境已经配置成功了。

数据立方体操作

本次操作实战,我们使用的Pentaho BI Server中自带的销售数据,并且在Pivot4J中已经配置好了的数据立方体SteelWheelsSales。

  1. 在BI Server主界面点击File > New > Pivot4J View打开一个新的Pivot4J视图界面,然后选择SteelWheels类别下的SteelWheelsSales立方体。

  1. 在打开的立方体操作界面中,可以将需要分析的维度拖动到Pivot的行或列中,从而对对应的维度进行分析。比如可以将产品Product拖到Columns,将时间Time拖到Rows,同时选用的测度为Quantity,即销量,便可以获得按照产品和时间对销量进行分析。同时对应的MDX语句,在MDX Query子窗口中可以找到。

  1. 如果我们将订单状态拖动到Filter中,就可以实现对总体数据根据订单状态进行筛选,这里选择状态为Shipped,所以可以到销量就减少了。对应的,MDX Query中语句在Where条件后增加了[Order Status].[Shipped]

  1. 点击相应维度上的加号,便能实现在时间或者产品维度上的下钻,查看到特定产品在特定时间段上的销量。

以上,就是使用Pivot4J对数据立方体的查询操作,若需要更复杂的维度分析只需将维度拖到Pivot结构的行或列上即可。对了,Pivot这个功能实际上在微软Excel上就有,中文名就是数据透视表。在少量数据情况下可以使用Excel进行快速分析,大数据量下需要借助于BI工具。

总结

  • Pentaho BI Server是一款免费的BI分析工具;
  • Pivot4J是在BI Server上提供图形化操作数据立方体的插件;
  • 虽然MDX语言支持大于2维度的查询,但是在图形界面上要展示的话只提供了行、列两个维度。

欢迎扫描二维码关注公众号

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!