使用Saiku+Kylin构建多维分析OLAP平台
来源:互联网 发布:centos mrtg安装 编辑:程序博客网 时间:2024/05/22 19:21
http://lxw1234.com/archives/2016/05/647.htm
关于Kylin的介绍和使用请参考之前的文章
《分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例》
Kylin对外提供的是SQL查询接口,基于Kylin构建OLAP多维分析系统,第一种方案是针对业务,定制开发一个前端界面,将界面上用户的选择和操作,翻译成SQL,提交给Kylin查询。另一种方案则是将Kylin与BI工具整合起来,借助BI工具,对Kylin中的Cube进行查询分析。Kylin本身对于BI工具Tableau可以非常好的整合使用,我自己下载了Tableau的试用版,效果确实不错,官方文档中也给出了详细的教程:
http://kylin.apache.org/cn/docs15/tutorial/tableau_91.html
可惜,Tableau是商业软件,收费的。
本文介绍另一个开源免费的BI工具–Saiku。
Saiku是一个轻量级的OLAP分析引擎,用户可以在非常友好的界面下利用OLAP和内存引擎进行向下钻取,过滤、分类、排序和生成图表。Saiku利用Mondrian完成了界面?MDX?SQL
的转换,最终将SQL通过JDBC提交给Kylin执行。
Github上已经有大神提供了编译好的相关jar包下载:
https://github.com/mustangore/kylin-mondrian-interaction
按照里面的说明,很简单就完成了Saiku+Kylin的整合部署。
Saiku中配置Kylin数据源
在浏览器输入Saiku的WEB地址:http://172.16.212.17:8080/
用户名密码为:admin/admin
STEP1:编写Mondrian Schema文件
STEP2:添加Kylin数据源
进入Saiku管理控制台,点击”Add Schema”,将编写好Schema文件上传。
接着点击”Add Data Source”,添加数据源:
STEP3:创建查询
回到Saiku Home主页,点击”Create a new query”,创建查询:
在多维数据下拉菜单中,选择Schema文件中定义好的Cube,自动获取指标和维度,双击指标和维度,在右边的区域即可自动进行查询展示。
Saiku中同样支持上钻、下钻、过滤、排序等操作。
存在的问题
在试用期间,发现两个严重的问题,导致Saiku和Kylin的整合甚至不能继续:
1. 事实表和维度表的join方式:
Mondrian中统一使用内关联(Inner Join)的方式将事实表和维度表关联,而Kylin中,我的Cube是将事实表和维度表进行左关联(Left Join)生成的,因此不支持Inner Join的查询。除非像我例子中的,把左右的维度名称都放置到事实表中,不和维度表关联,这样就没有问题。
2. Count Distinct的问题:
Mondrian对于Count Distinct的指标会翻译成SELECT COUNT(*) FROM (SELECT DISTINCT …)的形式,这种查询SQL提交给Kylin,并不支持,因此对于Count Distinct类型的指标无法查询分析。
看来要想很好的使用Saiku+Kylin,这两个问题还有待研究解决。
- Kylin系列-使用Saiku+Kylin构建多维分析OLAP平台
- 使用Saiku+Kylin构建多维分析OLAP平台
- 使用Saiku+Kylin构建多维分析OLAP平台
- Saiku+Kylin多维分析平台探索
- Saiku + Kylin 多维分析平台探索
- 数据仓库-多维分析展示平台Saiku
- 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例
- 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例
- 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例
- Kylin系列-分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例
- 分布式大数据多维数据分析(olap)引擎kylin
- Kylin系列-Saiku结合Hive做大数据多维数据分析
- OLAP的多维数据分析
- OLAP及其多维数据分析
- Pentaho Mondrian OLAP多维分析
- 《基于Apache Kylin构建大数据分析平台》
- 《基于Apache Kylin构建大数据分析平台》
- 《基于Apache Kylin构建大数据分析平台》
- 用户、角色和权限,多表查询
- 数据库中存储日期的字段类型到底应该用varchar还是datetime
- Guice bindInterceptor的使用
- Mac下使用svn命令
- 排序之冒泡排序
- 使用Saiku+Kylin构建多维分析OLAP平台
- Unable to handle kernel NULL pointer dereference at virtual address 00000000
- TCP的7种定时器
- Hololens开发手记入门学习阶段总结
- 使用JQuery中的trim()方法去掉前后空格
- QT:带文件查找的文本编辑器
- SpringMVC的四种HandlerMapping基本概念
- 剑指offer面试题9 斐波那契数列及青蛙跳台阶问题
- Kotlin初步使用