美文网首页
Kylin,让决策的速度配得上你的激情

Kylin,让决策的速度配得上你的激情

作者: 落_风 | 来源:发表于2020-06-30 09:48 被阅读0次

    前阵子,朋友送了我一本多维数据分析的工具书。今天打算当个伪数据分析师跟大家分享一下学习心得。

    提到数据分析和应用的行家,就不得不提阿里巴巴。它从电子商务起家,逐渐发展成为信息技术(IT)公司,到现在演进成为数据技术(DT)公司。无疑,阿里是成功的。

    数据是新能源,有了阿里的前车之鉴,无数的企业都认知到数据的重要性。大家纷纷加快推进数字化转型,同时数据中台项目也借助中台战略遍地开花,真是无中台,不企业。

    数据库的应用类型

    先交代一些基础概念,数据库的主要应用类型分为两类,OLTP和OLAP。随着大数据技术的发展,混合场景(HTAP)也成了一种主流特征。

    OLTP:联机交易处理(Online Transaction Processing)

    交易,就是做业务。比如一家汽车4S店,客户买车就是交易,数据库会记录交易的客户买了哪款车型,还包括交易的时间、金额,以及车的颜色和配置。OLTP的主要特征是,数据增、删、改比较频繁,数据以行的格式存储。

    OLAP:联机分析处理(Online Analytical Processing)

    一家汽车4S连锁企业,或汽车生产厂商,在全国各地有很多家4S店,如果想进行经营决策,就需要结合历史交易数据进行整体数据分析,比如,某季度,不同车型在不同城市的销售情况,哪款车型卖的最好,什么颜色的车最受欢迎等。OLAP的主要特征是,通常有配套的数据模型,以统计分析为主,数据以列的格式存储。

    HTAP:混合模式处理(Hybrid Transaction Analytical Processing)

    随着技术的发展,在之前学习SequoiaDB的时候,看到了HTAP这个概念,就是一个产品和架构可以同时支撑OLTP和OLAP场景。传统的商业数据库Oracle和DB2在当前版本中,也都提供了行列混存的模式,需要创建数据表的时候声明以列的形式存储。但我感觉他们这种玩法,前景已然黯淡。

    把刚才的这套理论,搬到产品数量更多,交易频次更高的环境中,就会发现传统的架构支撑乏力。所以,在互联网系统架构演进过程中,交易层面需要基于分库分表和读写分离化解,分析领域就只能是分布式和MPP的大数据架构进行支撑了。

    多维立方体,属于你的数据魔方

    今天不是要讨论行式和列式数据库的技术,而是分享OLAP数据应用中的一个细分领域,多维数据分析。

    说到多维数据分析,就会提到立方体,专业术语叫Cube,就是把多个维度数据和度量指标存放在一个数据立方体中。比如时间,机构,产品是维度,销售数量和金额是度量。

    我对Cube最初的认知,源于工作早期使用Cognos的经验。Cognos给我最好的体验就是,可以通过鼠标拖拽自由组合自己想要的维度进行分析,还能下钻。

    Cognos后来被IBM收购,想想那个时候厂商的竞争,就是你有的,我也要有。在这之前,Oracle收购了Hyperion ESSBASE,这两个都是曾经的企业级多维数据存储分析产品,一切为了对标。

    随着技术的发展,产品更新迭代,如今大数据时代,对于OLAP又有了有两个细分概念。

    MOLAP:Multidimesional OLAP,基于多维数据的立方体,以Kylin为代表

    ROLAP:Relational OLAP  ,基于关系型的宽表,以Druid为代表

    Kylin的是什么?

    Kylin,全称Apache Kylin,一种MOLAP的数据分析引擎。特别值得一提的是,这是由中国人主导开发的Apache基金会顶级开源项目,最早脱胎于eBay中国研发中心。

    去年,跟Kyligence(Kylin的商业支持公司)做过一次技术交流,当时收获并不是很大。后来,无意间看了他们出的一本书,才对Kylin有了比较深入的了解。

    时代就是这样,互联网公司是科技浪潮中的弄潮儿,遇到的问题有可能是现有产品无法解决的,又或者是现有方案成本高昂。不过,互联网企业往往都有很强的技术研发能力,自研也就顺理成章。

    当年,eBay使用的传统数据仓库和商业智能平台出现“瓶颈”,而当时Hadoop平台虽然可以批量处理大规模数据,但无法提供高效的数据交互分析。

    于是,Kylin被eBay孵化了!

    Kylin的定位

    Kylin就是一个BI on Hadoop大数据解决方案,提供多维数据分析(MOLAP)的秒级响应。目前国内美团和小米等互联网公司都在使用Kylin。

    总结一些我对Kylin体系和模块的理解:

    数据源和模型:主要支持Hive,RDBMS和Kafka,但只支持星型模型。

    构建引擎:早期支持MapReduce计算引擎,新版本支持Spark计算引擎。除了全量构建外,对基于时间的分区特性,支持增量构建。简单说就是,支持批流一体化的Lambda架构。

    存储引擎:构建好的Cube以Key-Value的形式存储在HBase中,通过优化Rowkey加速查询。每一种维度的排列组合计算结果被保存为一个物化视图,叫Cuboid。

    优化算法:Cube本身就是用空间换时间,但也会根据算法,剪枝优化掉一些多余的Cuboid,寻求平衡。

    访问接口:支持标准SQL接口,可以对接Tableau和Zeppelin等BI工具。SQL通过查询引擎,可以被路由到对应的Cuboid上。

    当下,也听到了业界的另一种声音,因为列式数据库的优势,可以承载更多的分析查询,会降低了对于Cube的需求,我个人对这个看法持保留意见。

    虽然MPP和列式存储提高了计算和存储的速度,但并没有改变查询本身的复杂度,也没有改变查询时间随数据量增长而增长的事实。

    还好,Kylin可以无缝集成Cognos BI,而仅仅替换掉Cognos Power Cube,这样可以在保留用户使用习惯的同时,提升多维分析的性能和用户体验。

    让决策的速度配得上你的激情

    在数据分析世界里,套路就是常规报表,按既定的维度展开,汇总。

    已知的叫套路,未知的才叫挖掘。有些销售线索,不同维度间的关联性分析,可能需要业务运营人员和数据分析师的一些创意。找到一些隐性相关性,说不定就是一个被忽视掉的利润增长点。

    如果可以提供足够快速的数据分析能力,支持业务分析,也是对业务的一种赋能。这样,分析人员可以花更多的时间和精力在模型构建上,而不是等待查询结果。

    今天,希望你看完这篇文章后,知道当下这个多维的数据世界中,你能遇见的最好的样子。也希望能给正在从事数据分析的你,一个选择的权利,而不是每一次无奈的等待,消耗掉你的激情。

    请记住,大数据时代,你期待的多维分析依然是秒级响应!

    相关文章

      网友评论

          本文标题:Kylin,让决策的速度配得上你的激情

          本文链接:https://www.haomeiwen.com/subject/fkytqktx.html