最近在学习数仓跟BI,突然发现,结合自己所学会抄的菜。试着把学过的大数据重新理解一番,希望各位都能来一起讨论,共同进步。



走进厨房
  走进厨房后,相信大家会看到各种锅碗瓢盆,案板,切菜刀,调料,橱柜,水池...........而这些就相当于是大数据的架构。


当你学会抄菜的时候,你就学会了大数据_锅碗瓢盆



  其中橱柜,相当于是Hadoop。橱柜可以储存各种食材,而Hadoop可以存储各种不同类的数据(结构化与非结构化)。而橱柜可以存放不同食材,比如不规整的豆腐块,大冬瓜,土豆....还有一些规整的食材,比如大米,小米,绿豆........规整的食材与不规整的食材的区别,各家有各家不同的规定,而一般的规定就是规格的食材要用袋子把它们装起来。这里就相当于是大数据里的数据整理流程。而这些半规整的食材要放到一个个小袋子里,比如说,淀粉,姜粉,蒜泥.....用袋子或者盒子把它们装好,放在相应橱柜的地方,就相当于我们大数据里说的ETL(抽取,封装,加载),以备后用。
  而不同厂家的橱柜又会有不同的格子划分及存储区,比如:欧派,宜家的橱柜就会划分出很多小的分区来装不同的东西。而这一块就相当于HBase,灶台下边有专门用于凉碗的,还有抽油烟机旁边专门用于放刀具的区域,还有专门用于放各种锅的区域。而当HBase划分的好的时候,就对上层的MapReduce有很大的帮助,因为你各个区域规划的越好,当你开始抄菜的时候,取用各种餐具的时候就会更加的得心用手。
  至于上边的Mahout,Pig,Hive就相当于你如何在橱柜中找到你相应的食材的过程,比如说,你要抄西红柿鸡蛋,你要×××蛋跟西红柿...........再往上走就是一个对厨房的整体管理了。你做过的哪些菜,或者你想按照某个食谱来做菜,你就要有一个本子写上你每次做菜的步骤,这个就相当于是FlumeL,而Sqoop就相当于萝卜擦,你想吃萝卜丝,你就要用工具把萝卜切成丝才可以,这里,用刀具可以,用萝卜擦会更高效。
  再来说说Zookeeper吧!它就相当于把你经常用的几项工具放到离你做菜最近的一个橱柜中。方便管理这些工具。


当你学会抄菜的时候,你就学会了大数据_抽油烟机_02

  好了,说完了Hadoop,再来说一说Spark.它跟橱柜的唯一不同就是:橱柜是给你全部安装固定好了的,而Spark这种橱柜是可以移动的橱柜,同时对于你经常用的工具,可以进行优先排序。让你更快的对食材进行加工。刚开始,你做完一道菜,要半个小时多,而当你熟练之后,加之Spark移动橱柜+优先推送食材(内存计算+可迭代算法),你可以在5分钟内就做完这道菜。


加工食材
当你学会抄菜的时候,你就学会了大数据_锅碗瓢盆_03

  实际上,我们食材的储存过程就相当于是一个数仓的建立过程,而在一个数仓的建立过程中。最重要的莫过于区分不同维度。比如在大数据里的Key+Value,Big list,实际上都是提供一种基于可扩展的列值存储。而在数据可视化中,数据多维分维里,也是强调数据的不同维度的区分。这里我们就以食材的区分为例来说明。
  首先,厨房里的食材维度可以大致分析:蔬菜维度,禽肉维度,米面维度............不同的维度决定了你对食物的理解程度,比如:你可以把糯米放在米面维度,也可以放在糕点维度。所以数据的不同维度也取决于你对食材的功能及使用场景。再比如:把你香茹切的很小,晒干,然后碾成粉,要这些香茹粉就会从蔬菜维度进入到调料维度。
  当我们明白了食材维度的这个概念之后,我们就要开始我们的加工了。是先抄,还是先炸,还是先热水汤一下,都是对食材的一种加工。这里就相当于对初始数据进行相应的×××。由于要用到不同的厨具,就涉及到前边讲的走进厨房的细节的。在大数据里,可以用不同的组件对原始数据进行处理。而在厨房,可以用不同的厨具对食材进行处理。比如:蒸馒头,可以用抄锅来蒸,同时可以用钢精锅来蒸。虽然都能达到能吃的地步。但是所用的时间及口感不同。这些也就相当于大数据里各种不同组件之间的动行效果。
当你学会抄菜的时候,你就学会了大数据_抽油烟机_04

  最后,先感谢下我现在的公司,每个月不定期给我们发菜,同时也感谢下老婆,教会了我抄各种菜。最后,附一张我抄好的菜吧(先给它起一个响亮的名字:乱棍打死猪八戒!当你学会抄菜的时候,你就学会了大数据_抽油烟机_05 )!敬请期待下一次的技术普及课:如何上菜?数据可视化流程