作者:lxWei

背景

为了应对各种数据需求,通常,我们的做法是这样的:

  1. 对于临时性的数据需求:写HQL到Hive里去查一遍,然后将结果转为excel发送给需求人员。
  2. 对于周期性的、长期性的数据需求:编写脚本,结合Hive跑出结果,将结果写入对应DB库,然后开发前端页面对结果进行展现。

这样做简洁明了,但是,有很明显的问题:

  1. 开发成本太高。每来一个需求,不管是临时需求还是长期需求,都需要进行定制开发,这种情况下,我们的人力深陷其中。
  2. 使用不灵活。一个报表,只能进行展示,没有分析功能,如果要进行分析,需要将数据复制到excel里,利用excel进行处理分析,而我们的数据使用人员不一定具备这种能力。
  3. 维护成本高。太多人开发报表,没有统一口径,没有详细文档,没有人能接手。
  4. 资源浪费。不同人员开发的报表,很多情况下存在很多重复计算。

在这种情况下,开始考虑构建一个多维分析平台,提供平台和基础数据,数据需求方通过托拉拽的形式获取需要的数据。本文主要记录这方面的一些探索。

Saiku

首先,选择使用 Saiku 作为我们的数据分析平台,下面是 Saiku 官网对 Saiku 的介绍:

Saiku allows business users to explore complex data sources, using a familiar drag and drop interface and easy to understand business terminology, all within a browser. Select the data you are interested in, look at it from different perspectives, drill into the detail. Once you have your answer, save your results, share them, export them to Excel or PDF, all straight from the browser.

Saiku 是基于 Mondrian 开发的,Mondrian 是一款开源的 OLAP 引擎,能提供对大量数据的处理分析,但是,Mondrian 并没有提供友好的界面,而Saiku作为另一个开源产品,很好的充当了这个角色。

Saiku 提供JDBC 和 ODBC 接口,可以连接很多的数据源,既可以连接 MySQL、SQL Server、Oracle DB 等传统关系型数据库,也可以连接 Hive、Spark、Impala等 Big Data 平台。

Saiku + MySQL

首先,我们用 Saiku+MySQL很快搭建了测试平台,可以实现基本的多维分析,但是,仅适用于小数据量的分析,否则会有很严重的性能问题。

Saiku + Spark

由于 Saiku+MySQL 的性能问题,又尝试了 Saiku+Spark 的方案,数据存储于 Hive,分析引擎使用 Spark,在这种情况下,可以处理大数据量的查询分析,大部分查询都会在几十秒到几分钟内返回结果,如果数据量太大,也会存在执行失败的情况。所以,开始探索其他方案。

Kylin

Apache Kylin™ is an open source Distributed Analytics Engine designed to provide SQL interface and multi-dimensional analysis (OLAP) on Hadoop supporting extremely large datasets, original contributed from eBay Inc.

Kylin 相对于其他OLAP分析引擎,一个重要特点是采用空间换时间,根据定义的cube进行预计算,并将计算结果存储到Hbase中,在进行查询时,直接查询Hbase,所以,Kylin 的查询可以到毫秒级,性能完全不是问题。

Kylin 提供 ANSI SQL 接口来对数据进行查询,没有可视化操作,所以,有一定的使用门槛。同时,由于Kylin 提供的 ANSI SQL接口,Kylin 也就可以和BI平台进行对接,比如,Kylin 已经支持 Tableau 等BI工具,奈何 Tableau 是商业软件,so…

Saiku + Kylin 实现多维分析  https://github.com/mustangore/kylin-mondrian-interaction

Saiku 根据用户在页面的操作,生成 MDX,然后,Mondrian根据MDX生成查询语句SQL,而 Kylin 可以根据SQL 查询 cube,快速得到结果,所以,如果 Saiku 和 Kylin 中定义了相同的 cube,那么,就可以通过Saiku 来查询 Kylin了,从而将 Saiku 的操作页面和 Kylin 的高性能查询能力结合起来。

Google 一下,Github 已经有人这么做了,按照该项目说明就可以轻松搭建 Saiku+Kylin 多维分析平台。

Saiku+Kylin 的分析平台能实现的分析能力,很大程度取决于 Kylin 支持的 SQL 和 Mondrian 生成的 SQL的共通点,经过测试,Kylin 能对绝大多数 SQL 提供友好支持,可以和 Saiku 进行完美结合。

总结

Saiku 作为分析平台,提供可视化的操作,能方便的对数据进行查询、分析,并提供图形化显示,但是,Saiku 有一定的使用门槛,特别是对国内的使用者来说,所以,可能需要一些定制开发。

Kylin 作为分析引擎,根据空间换时间的思想,对数据进行预计算,从而提供极高的查询性能,并且提供 ANSI SQL 接口,可以极大程度满足日常查询需求。但是,Kylin 对 Hadoop 生态版本有较高的要求,所以,尽量按照官方推荐版本安装配置。

PS:本文采用 Saiku 3.7.4 和 Kylin 1.2。

Saiku + Kylin 多维分析平台探索相关推荐

  1. 使用Saiku+Kylin构建多维分析OLAP平台

    http://lxw1234.com/archives/2016/05/647.htm 关于Kylin的介绍和使用请参考之前的文章 <分布式大数据多维分析(OLAP)引擎Apache Kylin ...

  2. oracle saiku_Apache Kylin | Saiku + Kylin 搭建多维 OLAP 平台

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

  3. 大数据多维分析平台的实践

    大数据多维分析平台的实践 一.  大数据多维分析平台搭建的初心 随着公司业务量的增长,基于传统关系型数据库搭建的各种报表查询分析系统,性能下降明显.同时由于大数据平台的的日趋完善,实时的核心业务数据逐 ...

  4. Kylin多维分析引擎(一):Kylin概述

    1.定义: Apache Kylin(Extreme OLAP Engine for BigData)是一个开源的分布式分析引擎,为Hadoop等大型分布式数据平台之上的超大规模数据集提供标准SQL查 ...

  5. 当ins撞上中国风? Mars数字藏品平台探索数字藏品轻社交

    "元宇宙"概念的爆火,人们对互联网的探索已经不再满足于方寸之间的狭隘屏幕,更多的人愿意遨游在虚拟的元宇宙时空.虚拟概念和数字货币的兴起,NFT(非同质化代币)开始在各行业崭露头角, ...

  6. 得物 API 一站式协作平台探索与落地

    1. 现状 API文档作为公司研发重要的数据资产,承载了公司核心的业务逻辑,随着公司业务的复杂化,软件架构微服务化,公司数字化的发展,API的研发管理成为了公司研发的最重要的一个环节,而得物目前存在两 ...

  7. 基于 DataOps 的运营商大数据平台探索

    摘要:在数字经济时代下,数据成为运营商的核心资产,DataOps是释放数据价值的有效模式,而大数据平台是实现DataOps的技术基础.通过对DataOps与大数据平台的发展进行梳理,阐述了DataOp ...

  8. 赋能智慧城市“规、建、运、管、服”——Umbrameta CIM平台探索“CIM+”应用超市

    我们提供成熟的CIM公共服务平台建设方案,拥有多城市CIM平台建设实践经验 前言 依托BIM.GIS.大数据.物联网.人工智能.区块链等技术为基础,整合城市地上空间.室内室外.历史现状未来多维信息模型 ...

  9. kylin云平台搭建问题

    1搭建好后 cinder-volume服务起不来 . 先不管,推测由于是使用控制和计算双节点所致,对整体没有影响 2搭建好后网络创建失败. 两台服务器除了活动业务的网口连上交换机外,作为外部网络的网口 ...

最新文章

  1. R语言break函数和next函数实战
  2. 03-老马jQuery教程-DOM操作(上)
  3. 简单地发布EJB程序的过程
  4. mac 打开html c python,在Mac系统使用Visual Studio Code运行Python的方法
  5. go-ethereum-code-analysis 以太坊源码分析
  6. java+脚本+压枪,我的世界钓鱼脚本代码csgo压枪
  7. 我的世界服务器怎么修改书与笔,我的世界书与笔怎么做 我的世界书与笔怎么用...
  8. Mysql 监控性能状态 QPS/TPS
  9. 计算机组成原理试题解析pdf,计算机组成原理试题集.pdf
  10. oracle新建定时任务,创建 Oracle 定时任务
  11. 云计算技术体系结构介绍
  12. ANSYS-SCDM二次开发(遍历获得structure和group下的部件名称)
  13. 一分钟先生:怎样给员工发奖金
  14. Hadoop解除安全模式
  15. 推荐10篇2021年服装设计相关毕业论文文献
  16. 如何改typecho主题头像_零成本搭建hexo个人博客(二)--修改主题
  17. 番茄时钟(提升专注力,减少中断)- 番茄工作法
  18. 到底无支付牌照的电商公司能开展什么样的业务!!
  19. 用Python的statsmodels包做前向逐步回归
  20. 助力武汉抗击疫情,湖北科研资料共享

热门文章

  1. Python——列表元素的增删改
  2. 【题目记录】——POJ 3260 The Fewest Coins 混合背包
  3. oracle存储过程 论文,Oracle中基于Java的存储过程开发_计算机论文
  4. 机房收费系统下机之动态显示余额和强制下机(1)
  5. 物联网:产融结合将出现新变化
  6. 神经网络中的梯度消失
  7. cdh 之 HDFS集群优化篇003
  8. 判断循环-04-if 第三种格式
  9. 我与虚拟机的爱恨情仇
  10. http请求工具类 含是否代理 及设置代理地址及端口