商务智能方法与应用第四章实验手册

文章导航

«返回课程汇总页面

【实验手册版本】

当前版本号v20200415

版本修改说明
v20200415增加了常见问题解答
v20200413增加了授权文件的说明
v20200408更正了几个截图
v20200329更正了几个截图和加入更换驱动的步骤
v20200313初始化版本

实验4.1:使用 Saiku 进行联机分析(OLAP)

【实验名称】

实验4.1:使用 Saiku 进行联机分析(OLAP)

【实验目的】

【实验原理】

【实验环境】

【实验资源】

实验报告模板下载

https://pan.baidu.com/s/1qqhcPcQotylS3PNP4f-edg#提取码vidt

实验数据和软件下载

https://pan.baidu.com/s/1hiwlNUjpQE381X3UTvdJpA#提取码763a

【实验步骤】

  1. 确保电脑已经安装了 MySQL 数据库,并且导入了 foodmard 库数据。如果没有请参考第三章实验

  2. 确保电脑已经安装了JDK8。如果没有请参考第一章实验

  3. 从上面实验资源下载 Saiku。并解压到某个文件夹下。

(1)用文本编辑器打开start-saiku.bat,编辑JVM的启动参数,分配多一些内存进行分析。

(2)更新Saiku安装目录saiku-server\tomcat\webapps\saiku\WEB-INF\lib下的驱动包mysql-connector-java-5.1.17.jarmysql-connector-java-5.1.48.jar。驱动可在实验一下载。

(3)保存以后,运行start-saiku.bat启动服务。

  1. 打开浏览器,访问Saiku授权页面 http://localhost:8080/upload.html

  2. 在Saiku解压目录找到授权文件saiku-license.lic,并拖进上传区域,点击 Upload 进行上传。授权以后的Saiku软件才能正常登录。

  3. 提示授权成功以后,访问Saiku首页http://localhost:8080/进行登录。用户名密码为

用户名:admin
密码:admin

  1. 为了提高后续分析性能,先打开 MySQL 客户端,运行实验资源中foodmart-indexes.sql里面的语句,建立表的相应索引,加快查询速度(这步非常重要,不建立索引后续查询分析将会非常慢)。

  2. 进入Saiku控制台,添加 Cube Schema 和数据源。点击左侧Add Schema

  3. 上传修改的Cube Schema文件,Schema Name 命名为foodmart2008

  4. 点击左侧Add Data Source

  5. 填入数据库连接的相关信息,数据库信息和实验3的设置一致(默认数据库密码foodmart)。注意Schema要选择刚新增的foodmart2008.xml。

Name: foodmart2008
ConnectionType: Mondrian
URL: jdbc:mysql://localhost:3306/foodmart
Schema: /datasources/foodmart2008.xml
JDBC Driver: com.mysql.jdbc.Driver
Username: foodmart
Password: foodmart
Security: None

  1. 新增成功以后关闭 Saiku 的服务器 Tomcat。

  2. 重新运行start-saiku.bat启动 Saiku。并进行登录。

  3. 选择Create a new query创建一个新的查询。

  4. 左侧多维数据栏,选择刚创建的foodmart2008。

  5. 取消自动查询选项。避免误触发时间太长的查询。

  6. 选择查询客户维度(国家->省(州)->城市)的店铺销售额。注意要先选择维度,再选择度量(measure,Saiku翻译为“指标”。)

  7. 新建一个查询,核算每季度各个城市客户销售额和销售成本。行选择客户维度表(customer)的 Country,State Province,City。列选取时间维度表(Time_By_Day)的 Quater(点击与“行”不同的维度表,会自动选择到列)。度量选择 store_sales 和 store_cost。执行查询,注意截图保留结果,只需要截包含表头一屏的数据即可,不需要全部截取。

  8. 点击上面查询结果的表头,例如“Q1”,向下钻取到the_month。注意截图保留结果,只需要截包含表头一屏的数据即可,不需要全部截取。

  9. 点击上面查询结果的左侧Country一列,例如“USA”,向上钻取到country,即移除State ProvinceCity。注意截图保留结果,只需要截包含表头一屏的数据即可,不需要全部截取。

  10. 点击右侧的图形化按钮,展示各个月的销售额和销售成本。并找出销售额最高的那个月。

  11. 点击 MDX 编辑按钮,查看 MDX 语句。保存 MDX 语句到实验报告。

  12. 根据以上提示,完成以下查询,注意保存查询结果的度量、列、行、过滤栏截图,表格截图,MDX 语句。

(1)查询产品目录对应省(州)的销售额、销售成本和销售量。表头如下图所示:

(2)查询促销对应产品家族销售额、销售成本和销售量。表头如下图所示:

【常见问题解答】

1. 选择多维数据时无法找到 foodmart2008。Tomcat 报错“Error Connecting:foodmart2008”

答:先确保 MySQL 安装的是5.x的版本。如果版本没有错,检查一下设置的 Data Sources 中的 foodmart2008 连接参数是否有出错。或者检查一下MySQL的 JDBC 驱动的版本是否是mysql-connector-java-5.1.48.jar。

2. 查询的时候,数据源下拉菜单找不到 foodmart2008,而且 Tomcat 提示“Model is in legacy format”。

答:这通常是 Cube.xml 文件有问题导致的。请用文本工具打开cube.xml文件,检查里面的表名或列是否前后有多出的空格或者拼写错误。

3. Saiku 双击Start-Saiku.bat闪退,无法启动。

答:通常是环境变量的设置冲突或错误导致的。请检查以下环境变量选项。

JAVA_HOME -> 指向JDK8的安装目录
CATALINA_HOME -> 如果指向你之前安装的 Tomcat,请考虑移除。
CATALINA_BASE -> 如果指向你之前安装的 Tomcat,请考虑移除。