【转】Kylin系列-使用Saiku+Kylin构建多维分析OLAP平台

关于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文件

  1. <?xml version="1.0"?>
  2. <Schema name="ad_schema">
  3. <Cube name="lxw1234_ad_cube2">
  4. <!-- 事实表(fact table) -->
  5. <Table name="AD_REPORT" />
  6. <Dimension name="地域">
  7. <Hierarchy hasAll="false">
  8. <Table name="AD_REPORT"></Table>
  9. <Level name="省份" column="PROVINCE" table="AD_REPORT"></Level>
  10. <Level name="城市" column="CITY" table="AD_REPORT"/>
  11. </Hierarchy>
  12. </Dimension>
  13. <Measure name="曝光数" column="IMP_PV" aggregator="sum" datatype="Integer" />
  14. <Measure name="唯一曝光数" column="COOKIEID_IMP" aggregator="distinct-count" datatype="Integer" />
  15. <Measure name="点击数" column="CLK_PV" aggregator="sum" datatype="Integer" />
  16. <Measure name="唯一点击数" column="COOKIEID_CLK" aggregator="distinct-count" datatype="Integer" />
  17. </Cube>
  18. </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,这两个问题还有待研究解决。

转自:lxw的大数据田地 » 使用Saiku+Kylin构建多维分析OLAP平台

原文地址:https://www.cnblogs.com/shujuxiong/p/9279797.html

时间: 2024-07-31 14:53:57

【转】Kylin系列-使用Saiku+Kylin构建多维分析OLAP平台的相关文章

大数据分析平台Apache Kylin的部署(Cube构建使用)

前言 Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区.它提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持大规模数据,能够处理TB乃至PB级别的分析任务,能够在亚秒级查询巨大的Hive表,并支持高并发. Kylin的理论基础:空间换时间. Kylin从数据仓库中最常用的Hive中读取源数据,使用 MapReduce作为Cube构建的引擎,并把预计算结果保存在HBase中,对外暴露Rest API/JDBC/ODBC的查询接口. 部署Kyli

Kylin系列(一)—— 入门

因为平常只会使用kylin而不知其原理,故写下此篇文章.文章不是自己原创,是看过很多资料,查过很多博客,有自己的理解,觉得精华的部分的一个集合.算是自己对Kylin学习完的一个总结和概括吧.文章最后有链接,需要请自取. 前言 企业中的查询大致可分为即席查询和定制查询两种.很多的OLAP引擎包括Hive.Presto.SparkSQL,虽然很大成都上能降低数据分析的难度,但是他们都只适用于即席查询的场景.但是随着数据量和计算复杂度的增长,响应时间是无法保证的,这其实和业务需要是相违背的,数据分析师

Kylin系列之二:原理介绍

2018年4月15日 15:52 因何而生 Kylin和hive的区别 1. hive主要是离线分析平台,适用于已经有成熟的报表体系,每天只要定时运行即可. 2. Kylin主要是MLOAP(多维在线分析平台).在线意味着提供快速的相应速度.主要适用于分析师不知道自己需要哪些数据,建立怎样的模型,需要不断的摸索,查询一致形成一个完整的模型和方案. 3. 通常的做法是在Kylin中进行数据的调研,探索,建立模型.形成固定模式后在hive中进行运行. 原理与架构 1. 基本原理是使用MR或者Spar

基于CentOS 6.5构建KVM服务器平台、网络和存储、公钥和私钥的建立

1.什么是虚拟化通过虚拟化技术将一台计算机虚拟成多台逻辑上的计算机.每个逻辑上的计算机可以安装不同的操作系统,这些系统之间互相独立并且互不干扰2.什么虚拟机一个软件平台,如同一个物理机上面运行操作系统和应用程序3.目前主流的虚拟化产品VMwareMicosoftCitrix RedHat 4.KVM网络设置NAT模式(默认)    KVM虚拟机网卡选择NAT,网关指向HOST主机的内网192.168.1.1,它就可以直接访问外网.路由模式(HOST开启路由转发功能)    HOST主机充当路由器

漫谈构建运维平台化2014运维线下沙龙(北京站) | 峰云就她了

漫谈构建运维平台化2014运维线下沙龙(北京站) | 峰云就她了

Jmeter+maven+Jenkins构建云性能测试平台(mark 推荐)

转自:http://www.cnblogs.com/victorcai0922/archive/2012/06/20/2555502.html Jmeter+maven+Jenkins构建云性能测试平台(一) 最近在利用Jmeter来做一套自动化性能测试框架,做自动化性能测试框架的目的 是希望能够针对系统做一个benchmark的性能测试,能够快速的在每个版本发布后,对该版本进行benchmark性能测试,以比较与上一个版本的性 能是否发生变化,若发生变化便可以快速的通知开发人员以确定性能发生变

构建大型云计算平台分布式技术的实践

作者 章文嵩 发布于 2014年7月23日 | 本文基于章文嵩博士在2014年7月18日的全球架构师峰会ArchSummit上的主题演讲<构建大型云计算平台分布式技术的实践>整理而成. 演讲者简介 章文嵩博士是阿里集团的高级研究员与副总裁,主要负责基础核心软件研发和云计算产品研发.推进网络软硬件方面的性能优化.搭建下一代高可扩展低碳低成本电子商务基础设施.他也是开放源码及Linux内核的开发者,著名的Linux集群项目LVS(Linux Virtual Server)的创始人和主要开发人员.L

(八) 构建dubbo分布式平台-maven构建ant-framework核心代码annotation

上一篇我们介绍<构建dubbo分布式平台-maven构建ant-framework框架的pom.xml文件配置>,子项目的基础框架已经构建完成,今天重点讲解的是ant-framework核心代码的编写过程. 其中ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板.另外定义了spring,mybatis,wink等底层框架扩展项目,具体内容包括: 1. annotation相关注解:数据签名注解.用户是否走sso登录注解等,今天我们着重讲解一下

(七) 构建dubbo分布式平台-maven构建ant-framework框架的pom.xml文件配置

上一篇我们介绍<构建dubbo分布式平台-maven构建ant-config项目>,框架使用maven进行构建,根据我们的规划,要将子项目全部构建出来,今天重点讲解的是ant-framework可信项目的构建过程. 其中ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板.另外定义了spring,mybatis,wink等底层框架扩展项目,具体内容包括: 1. annotation相关注解:数据签名注解.用户是否走sso登录注解等: 2. Be