Kyligence Copilot - AI 数智助理,以 AI 变革企业经营与管理! 立即了解更多

有了 Kylin+Saiku,妈妈再也不用担心我的多维 OLAP 平台

翟娜
2019年 6月 21日

随着数据量的激增,传统的 OLTP 平台已无法满足用户的分析需求。OLAP 平台应运而生,OLAP 平台通常由 OLAP Engine 与用户操作分析页面组成。本文将会以 Saiku + Kylin 的组合方式讲解多维 OLAP 平台的搭建。

简介

Saiku

Saiku 是一个用于 OLAP 分析的套件。用户可在浏览器中通过拖拽的方式进行分析,降低了使用者的学习成本。它能够连接多种数据源,如 Microsoft SQL Server,Oracle Database,MySQL,MongoDB 等。

Saiku 支持两种连接方式:一是 Mondrian,二是 XMLA。Mondrian 是一个开源的商务分析引擎。使用 MDX (Multi Dimensional Expressions) 完成多维查询;XMLA(XML for Analysis)是一种基于简单对象访问协议(SOAP)的 XML 协议。

Apache Kylin

Kylin 是一个基于 Hadoop/Spark 的 OLAP 引擎,可查询分析历史与实时数据,并在亚秒内返回查询结果。

前期准备

  • 安装 JAVA 并设置 JAVA_HOME
  • 从 Saiku 社区 https://community.meteorite.bi 下载 Saiku 最新版本
  • 从 Kylin 官网 https://kylin.apache.org/download/ 下载 Kylin 最新版本,即 2.6.2
  • 在 Kylin v2.6.2 中构建一个 Cube (构建教程:http://kylin.apache.org/docs/tutorial/kylin_sample.html)

连接 Saiku 到 Kylin

1. 执行 unzip saiku-latest.zip 解压下载好的 Saiku 包,切换至 saiku-server 文件夹。解压下载好的 Kylin 包,进入解压后文件夹,将 lib/kylin-jdbc-.jar 拷贝至 saiku-server/tomcat/webapps/saiku/WEB-INF/lib

2. 在 saiku-server 文件夹下执行 ./start-saiku.sh 命令启动 Saiku,启动后可在浏览器中输入 http://localhost:8080 访问 Saiku 页面。默认端口为 8080,可在 saiku-server/tomcat/conf/server.xml 中进行修改。

3. 访问 https://licensing.meteorite.bi/login 进行注册并登录。

4. 登录后,先创建公司(必须),再创建 License,Hostname 为启动 Saiku 的机器 IP。创建完成后,下载 License 到本地。

5. 访问 http://localhost:8080/upload.html 上传 License。上传所需用户名与密码均为 admin。

6. 访问 http://localhost:8080 进行登录,用户名密码均为 admin。如果不执行上述 3-5 步骤,直接登录将会报如下错。

Error fetching license. Get a free license from http://licensing.meteorite.bi. You can upload it at /upload.html

7. 登录后,点击管理控制台,即顶部导航栏最右边包含 A 的图标。然后点击 Add Schema,添加 Mondrian Schema 的 XML 文件和 Schema Name,最后点击 Upload 按钮,显示 Upload Successful! 即可。XML 文件由自己编写,官方提供两个参考样例 Earthquakes.xml 和 FoodMart4.xml,在 saiku-server/data 目录下。具体语法可参考:https://mondrian.pentaho.com/documentation/schema.php

如下为本次使用的示例 XML 文件。其中包含一张名为 KYLIN_SALES 的表,包含 TRANS_ID,PART_DT,LSTG_FORMAT_NAME 这 3 个维度和 1 个 SUM(PRICE) 度量。

注意:表(列)名大小写敏感,需与 Kylin 中加载的数据源表(列)名称对应。

8. 点击 Add Data Source,填写如下参数:

点击 Save 按钮保存。

9. 点击 Home Tab;点击 Create a new query 进入查询分析页面。

10. 点击选择多维数据集下拉框,选择刚刚创建好的 Kylin 数据源。

11. 通过拖拽的方式选择维度和度量进行分析。结果以表格形式展示,可在页面右边切换图表模式。

上图所示拖拽方式会首先转换为 MDX 发送给 Mondrian,Mondrian 会将其转换为 SQL 发送给 Kylin,Kylin 查找可回答该 SQL 语句的 Cube,将查询结果返回给 Mondrian,再由 Mondrian 返回给 Saiku 进行展示。上图所示方式生成的 SQL 语句如下:

常见问题

1. tomcat 启动报错:

解决方案:在 saiku-server/tomcat/conf/catalina.properties 中的 tomcat.util.scan.DefaultJarScanner.jarsToSkip=\ 后加 ,*

2. 选择 schema 后,指标和维度不显示。日志中报如下错:java.lang.NoClassDefFoundError: mondrian/olap/LevelType
解决方案:解压 saiku-server/tomcat/webapps/saiku/WEB-INF/lib 下的 saiku-query-0.4-SNAPSHOT.jar,删除 mondrain 文件夹后重新打包,并替换原有 jar 包。

参考文献

1.https://saiku-documentation.readthedocs.io/en/latest/

2.https://baike.baidu.com/item/XMLA/8711067

3.https://community.hitachivantara.com/docs/DOC-1009853

4.https://www.jianshu.com/p/14b57d000fe5

5.https://blog.csdn.net/csdn_g_y/article/details/78184747

6.https://blog.csdn.net/qq_28725695/article/details/84322821

添加企微

kyligence
关注我们

kyligence