这是我的第89篇原创
之前分享过一篇文章,简单介绍了一下传统数仓和大数据数仓的区别,点击查阅 传统数仓和大数据数仓的区别是什么?
有朋友看了之后反馈,说这文章好是好,但是相当于做了一个架构层面的科普。但是想转型的同学还是不知道具体该咋做才能转型,入职新工作啊。
这个问题很简单啊,学几个工具就OK了。而且,你入职之后就会发现,其实就是title前面加了一个“大”字,建表的地方变了,etl工具变了而已,所有的方法论、工作流程完全一样。
数据仓库好伴侣:Kylin
传统建数仓,基本上都还是关系型数据库+BI工具那一套。现在有些BI工具也开始支持大数据了。但是既然咱需要转型,那就得彻底学一学。所有大数据领域下的OLAP工具里,Kylin应用最广,又跟数仓建模那一套完全契合,所以是咱练手学习、寻求新机会的最佳工具。Kylin属于MOLAP,如果你之前做数仓的时候顺便做过BI,那简直是无缝对接啊!
我昨天还推荐了一个ROLAP工具ClickHouse,还有什么Druid啥的,那玩意跟咱现在差的有点远,可以先不用管它。
而且研究Kylin还有一个好处,就是这玩意跟Hadoop关系非常紧密。咱研究Kylin正好顺便把大数据环境也给搭一套起来,一并了解一下,面试的时候不至于抓瞎,也不会有“学Hadoop有个什么毛用”的感觉。
Kylin与Hadoop
Kylin是Apache的顶级项目,凭借超高并发、超高性能,吸引了超多大厂使用。
Kylin跟所有MOLAP一样,都是用空间换时间,走预计算的路子。说白了,就是跟你一起的工作一样,天天建Cube。
但是有一点不一样的是,Kylin是基于Hadoop基础之上的。集群资源需要Yarn来协调,数据源一般是Hive,建好的Cube都放在HBase里面。大致的数据流转情况就是这个样子:
是不是有些陌生的东西出现了?不用担心哈,你弄几个虚拟机,按照流程装一个CDH就ok了。跟装ORACLE 的RAC没啥太大区别,就是装包、配置ip、心跳什么的。就是组件多了点,有什么HDFS、ZooKeeper、Yarn、Hive、HBase、Kylin啥的,网上教程一堆一堆的。
Kylin大实验
不管你在甲方、乙方还是外包公司,你都可以正大光明的做这些事情,不用藏着掖着。就告诉领导,现在的效率有点低,想尝试用新技术优化一下。
既然咱是要优化,也就是实践,那就不用了解什么MapReduce啥的,那些原理性的东西先扔一边。按照网上的教程,把上面的一整套环境装好就可以了。快则1天,慢则3天,肯定能搭完。如果公司环境不允许,在家也行,不过得弄台好些的电脑,毕竟组件不少,而且建议整一个真集群环境(最少3台),这样一个周末基本上也就能搞定了。
环境搞定之后,这就简单了。咱这么做:
1、在现有项目中,随便弄一个CUBE,反向找到数仓每一层所有相关的表;
2、在Hive中建好每一层,以及所有表,在这里HIVE就等同于MySQL、Oracle等承载数仓的容器;
3、导一些数据到HIVE的ODS层;
4、用Kettle、Sqoop啥的写ETL任务,用Oozie啥的调度任务,让数据逐层往上走;
5、用Kylin对接HIVE,建CUBE,然后存在HBase里,记得查询一下结果;
6、随便拖一个展示工具,帆软试用版、宜信的达芬奇啥的都行,连一下Hbase,尝试出报表。这一步不做也行,反正咱以前也不管。而且Kylin自带的界面也能查。
对了,你还得做一件事情:
把你做过的所有事情,全部写下来,输出成为文档和脚本。一方面可以总结经验,另一方面,可以向上交差啊。
这样一来,基本上Hadoop、Kylin这一套怎么用就差不多了。如果你在甲方,那建议你再往前推一步,逐步把传统数仓的那一套也都挪过来。现在的展示平台都能直连HBase,或者在Kylin的平台上给业务开权限也行。这样你就成功的获得“在公司建设并推动大数据平台”的称号了!
这个时候,你再回过头去深入了解MapRedece等原理;Spark等其他更好的计算引擎;分桶join等优化方式。整个大数据知识体系就丰富完善了。
Kylin有非常多的优点,比如速度贼快、并发度贼高、IO少、延迟低、超多大厂在用。当然也有一些缺点哈,比如维度比较固定、CUBE优化专业度高等,这些缺点对我们来说完全没问题啊,所有MOLAP都有维度少,自由度低的问题。至于“CUBE优化专业度高”的问题,我表示呵呵,咱玩的就是这个啊,对不?