CarbonData与华为的大数据布局
CarbonData与华为的大数据布局
CarbonData是华为主导的带索引的列存储文件格式的顶级项目,已经孵化毕业。这个是继麒麟以后又一个由华人主导的阿帕奇顶级开源项目。而且这个项目也是非外企的华人主导的第一个阿帕奇顶级项目。无论从什么角度来说都是一件值得一写的事情。
1
关于CarbonData到底是什么,我们用该项目的一张图来展现给大家。
简单总结一下,CarbonData这个数据存储模式的主要目标是希望通过存储数据和索引,包括数据内外的索引,,以及引入列组等概念,来做成一个比较通用的存储格式,使得无论是对点查询,范围查询以及类似于OLAP的Star Schema的处理都可以达到比较快的速度。
从技术实现上来讲,一个CarbonData的文件是被一系列blocklet组成的,此外还会加上很多的Metadata,索引,delta等等,这些东西使得对数据的顺讯扫描,以及对某些行的点查询都只需要扫描相应的blocklet,从而达到在不同应用场景下都有比较快的速度。
上图是一个文件格式。关于CarbonData的具体实现,我就不详细讲了。它和现存的两个比较主流的存储格式ORC以及Parquet的比较可能是大家更感兴趣的。
2
从存储格式和数据模型来讲,Parquet和CarbonData比较接近。CarbonData的早期版本更加接近Parquet。后续的版本则增加了很多的索引的实现。这种做法的好处是对更多的OLAP相关的查询提供了更好的性能。坏处在于需要更多的存储空间。
据我能看到的一些性能比较的数据来看。对大规模的数据量,在TPC-H这样数据仓库的设定场景下,大部分的查询CarbonData能够明显快鱼ORC和Parquet格式的数据源。但是在数据存储空间上来说,Parquet和ORC格式的压缩比大致在30%,数据不同的时候比例略有不同。而CarbonData的压缩比从50%到100%不等,有些情况下其存储格式的大小会超过原始的文本文件。
我想做数据库的人其实都知道任何一个系统的设计就是tradeoff。很多时候多用磁盘就可以让查询更快,反之亦然。这个tradeoff怎么做是比较有讲究的。
就我个人而言,我觉得如果说查询有需求,那么特定格式特定索引加速查询而增加磁盘空间未尝不可。但是也可能是查询没有需求的。所以如果CarbonData的索引不是强制必须要建立的,而是用户可以有选择的建立,那么我会对这个格式更感兴趣。
3
华为开始进军云计算和大数据市场已经很久了。和国内其他的公司比,华为进军云计算大数据市场有其非常鲜明的特点。这些特点从好的方面看概括下来有这么两点。
第一是华为花费了大量的时间精力加入到各个开源项目里。从OpenStack到Apache,华为对整个开源社区的投入,无论是钱还是人,或者是项目的参与度都是非常的广泛和深入。这种全面拥抱开源社区的方式在中国的企业里面并不多见。
第二华为采取的云计算的策略和其他公司比如说阿里巴巴的并不是很一样。华为的战略上主要是依托自己的行业优势,努力的发展私有云,给大企业提供解决方案。而其公有云的业务在我这个外人看来,近一段时间来才慢慢开始投入。所以华为在商业上的策略,很多时候,也许名气上不如阿里响亮,但是实际赚钱来说,利润更高。
4
如果说这两点是明确好的,那么下面要聊的一点就是不知道是好还是不好的了。
华为这个公司有很强的传统。它早年的发展过程和微软有类似之处。当公司还是比较小的时候,华为人可以以蚂蚁群战术群策群力的去走别人走过的路,然后让别人无路可走。无论从早年的电线产品,到后来的IT产品线,比如存储,到再后来的手机,都验证了这样的一条路。
这一点类似早年微软,从来都不会最先进入一个领域,但是后进入的时候,会战胜先进入的。不管是浏览器,还是办公软件,差不多都是同样的套路。
但是微软这个公司比较大的问题是,如果没有人指路了,微软自己做的产品,就经常一塌糊涂了。好在家大业大,反正有钱。
再后来,微软发现抄袭都不灵了,不管是抄搜索引擎还是抄手机,都是一败涂地。从这个角度来说,我其实非常能理解,当年微软是个小公司,当然可以用这样的战略。后来微软已经是全球巨无霸的公司了,难道看家本领还是抄抄抄吗?
5
换句话来说,我想华为在20年前的时候,以蚂蚁群战术,不依赖于个别的牛人,把电信产品的老祖宗们都赶到了今天的这种下场。确实是一件非常值得尊敬的事情。
我们也必须承认至今这依然是华为擅长的作战方式。君不见华为进入手机市场以后,中国手机市场的其他玩家就开始噼里啪啦七零八落了吗?
但是今天的华为,肯定不是创业时候的那个华为了。华为已经是全世界都有极大影响力,纳税年年全国第一的公司了。其公司整体的估值,肯定超过腾讯也超过阿里巴巴。
而云计算又是一个很特殊的战场。跟在别人后面,用开源的东西开始起家,把开源的东西改得好,很好,非常好,是不是就能保证以后的成功,其实我觉得是比较难的。
换句话说,微软能够独立搭出自己的Cosmos,亚马逊有牛逼的Dynamo,谷歌更是有三架马车加上Spanner这样的黑科技。乃至阿里巴巴也有自己的飞天系统,OceanBase这样理念先进的数据库等等。这些东西其实都不是靠着开源起来的。
CarbonData是一个很不错的开源项目。然而一个存储格式,尤其是在Parquet早就有了。MonetDB和C-Store提出了Column Store的存储,Dremel解决了semi-structure 数据的压缩问题。这些东西都是CarbonData之前就存在的。所以这并不能反映华为具备了开发核心技术,与众不同的黑科技,做别人没有做过的事情的能力。
我相信今天的云计算和大数据领域,肯定不是一个跟着别人,做的更好就可以把对手掀翻的领域。今天的华为,如果其没有办法独立的拿出可以改变行业的黑科技来,那么在云计算大数据的竞争上,发挥完华为擅长的优势以后,就会遇到挑战了。仅仅具备华为擅长的优势,并不足以支撑华为在云计算的战争中所向披靡。
欢迎打赏支持飞总的写作
加飞总小密圈和大咖嘉宾聊天
往期精选
飞总聊IT
IT八卦,大数据风云,职场风波
长按二维码订阅
合作垂询:feizongitworld@gmail.com