【实验手册版本】
当前版本号v20200415
版本 | 修改说明 |
---|---|
v20200415 | 增加了常见问题解答 |
v20200413 | 增加了授权文件的说明 |
v20200408 | 更正了几个截图 |
v20200329 | 更正了几个截图和加入更换驱动的步骤 |
v20200313 | 初始化版本 |
实验4.1:使用 Saiku 进行联机分析(OLAP)
【实验名称】
实验4.1:使用 Saiku 进行联机分析(OLAP)
【实验目的】
- 1.熟悉 Linux 系统、Saiku等系统和软件的安装和使用;
- 2.了解联机分析的基本流程;
- 3.熟悉利用可视化工具 Saiku 对联机分析模型的查询。
【实验原理】
- 本实验利用 Saiku v3.6 平台来对联机分析模型进行查询。
- 预先准备好实验3.1完成的 Cube Schema文件
- 准备加载了 foodmart 库的 MySQL 数据库。
【实验环境】
- Windows 操作系统。
- MySQL 数据库
- JDK8
- Saiku CE v3.6。Saiku 是一个轻量化的联机分析软件,采用C/S的模式构建,提供嵌入式,可扩展和可配置的分析服务。
【实验资源】
实验报告模板下载
https://pan.baidu.com/s/1qqhcPcQotylS3PNP4f-edg#提取码vidt
实验数据和软件下载
https://pan.baidu.com/s/1hiwlNUjpQE381X3UTvdJpA#提取码763a
【实验步骤】
确保电脑已经安装了 MySQL 数据库,并且导入了 foodmard 库数据。如果没有请参考第三章实验。
确保电脑已经安装了JDK8。如果没有请参考第一章实验。
从上面实验资源下载 Saiku。并解压到某个文件夹下。
(1)用文本编辑器打开start-saiku.bat
,编辑JVM的启动参数,分配多一些内存进行分析。
(2)更新Saiku安装目录saiku-server\tomcat\webapps\saiku\WEB-INF\lib下的驱动包mysql-connector-java-5.1.17.jar
为mysql-connector-java-5.1.48.jar
。驱动可在实验一下载。
(3)保存以后,运行start-saiku.bat
启动服务。
打开浏览器,访问Saiku授权页面 http://localhost:8080/upload.html
在Saiku解压目录找到授权文件
saiku-license.lic
,并拖进上传区域,点击 Upload 进行上传。授权以后的Saiku软件才能正常登录。提示授权成功以后,访问Saiku首页http://localhost:8080/进行登录。用户名密码为
用户名:admin
密码:admin
为了提高后续分析性能,先打开 MySQL 客户端,运行实验资源中
foodmart-indexes.sql
里面的语句,建立表的相应索引,加快查询速度(这步非常重要,不建立索引后续查询分析将会非常慢)。进入Saiku控制台,添加 Cube Schema 和数据源。点击左侧
Add Schema
。上传修改的Cube Schema文件,Schema Name 命名为
foodmart2008
点击左侧
Add Data Source
。填入数据库连接的相关信息,数据库信息和实验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
新增成功以后关闭 Saiku 的服务器 Tomcat。
重新运行
start-saiku.bat
启动 Saiku。并进行登录。选择
Create a new query
创建一个新的查询。左侧
多维数据
栏,选择刚创建的foodmart2008。取消自动查询选项。避免误触发时间太长的查询。
选择查询客户维度(国家->省(州)->城市)的店铺销售额。注意要先选择维度,再选择度量(measure,Saiku翻译为“指标”。)
新建一个查询,核算每季度各个城市客户销售额和销售成本。行选择客户维度表(customer)的 Country,State Province,City。列选取时间维度表(Time_By_Day)的 Quater(点击与“行”不同的维度表,会自动选择到列)。度量选择 store_sales 和 store_cost。执行查询,注意截图保留结果,只需要截包含表头一屏的数据即可,不需要全部截取。
点击上面查询结果的表头,例如“Q1”,向下钻取到
the_month
。注意截图保留结果,只需要截包含表头一屏的数据即可,不需要全部截取。点击上面查询结果的左侧Country一列,例如“USA”,向上钻取到
country
,即移除State Province
和City
。注意截图保留结果,只需要截包含表头一屏的数据即可,不需要全部截取。点击右侧的图形化按钮,展示各个月的销售额和销售成本。并找出销售额最高的那个月。
点击 MDX 编辑按钮,查看 MDX 语句。保存 MDX 语句到实验报告。
根据以上提示,完成以下查询,注意保存查询结果的度量、列、行、过滤栏截图,表格截图,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,请考虑移除。