Apache软件基金会正式宣布CarbonData从Apache孵化器毕业,正式成为Apache顶级项目(TLP),这也是首个由中国公司发起并捐献给Apache基金会的开源项目。
Apache® CarbonData™是由华为开源贡献的大数据高效存储格式解决方案。针对当前大数据领域分析场景需求各异而导致的存储冗余问题,CarbonData提供了一种新的融合数据存储方案,以一份数据同时支持“交互式分析、详单查询、任意维度组合的过滤查询等”多种大数据应用场景,并通过丰富的索引技术、字典编码、列存等特性提升了IO扫描和计算性能,实现百亿数据级秒级响应,与大数据生态Apache Hadoop、Apache Spark等无缝集成。
随着数据与日俱增,业务驱动下的数据分析灵活性要求越来越高,不同场景的数据分业务系统而构建,导致冗余严重,缺乏高效、统一的融合数仓,阻碍企业快速转型。尤其是大企业,在建设第二数据平面的大数据平台典型诉求表现如下:
数据统一存储:为了节约成本,企业希望一份数据支持多种使用场景;减少数据孤岛和冗余,通过数据共享产生更大价值。
高效:数据分析要求越来越高效、实时。
易集成:提供标准接口,新的大数据方案与企业已采购的工具和IT系统要能无缝集成,支撑老业务快速迁移。
大集群:区别于以往的单机系统,企业客户希望新的大数据平台能应对日益增多的数据,随时可以通过增加资源的方式横向扩展,无极扩容。
开放生态:通过开源开放,让更多的客户和合作伙伴的数据连接在一起,发挥更大的价值。
华为针对上述典型诉求,从2013年开始调研分析业界大数据方案,发现每种技术都只能解决某种场景的诉求,不能同时满足上述的所有诉求,如:并行数据库技术不能有效与Hadoop生态集成,数据不能统一共享存储;搜索类技术提升了性能,但是数据膨胀大,不支持标准SQL、不能兼容老的业务,这促使了华为着手开发CarbonData项目。整个大数据时代的开启,可以说是源自于Google的MapReduce论文,他引发了Hadoop开源项目以及后续一系列的生态发展。他的“伟大”之处在于计算和存储解耦的架构,使企业的部分业务(主要是批处理)从传统的垂直方案中解放出来,计算和存储可以按需扩展极大提升了业务发展的敏捷性,让众多企业普及了这一计算模式,从中受益。CarbonData借鉴了这一理念,存储和计算逻辑上分离,通过索引技术让存储和计算物理上更接近,提升CPU和IO效率,实现超高性能的大数据分析。
Apache CarbonData主要特点包括:
列式存储:高效的列式数据组织,区别于行存,可以实现列裁剪和过滤下压,使OLAP查询性能更高。同时,CarbonData针对明细数据查询实现了深度优化,在需要返回所有列的场景下性能优于其他列存方案。
丰富的索引支持:支持全局多维索引、文件索引、Min/Max、倒排索引等多种索引技术,从表级,文件级,列级等多个层级逐级快速定位数据,避免SQL-on-Hadoop引擎常见的“暴力扫描“,从而大幅提升性能,实现十年数据秒级响应, 三百维字段任意组合查询。
全局字典编码:除了常见的Delta、RLE、BitPacking等编码外,CarbonData应用了全局字典编码来实现免解码的计算,计算框架可以直接使用经过编码的数据来做聚合,排序等计算,这对需要做跨节点数据交换的业务来说性能提升非常明显。
自适应类型转换:CarbonData针对分析型应用中大量使用的数值类型(Double/Decimal/Numeric/BigInt)实现存储内数据类型转换,配合列式数据压缩,使得压缩非常高效,数据压缩率基于应用场景不同一般压缩比在2到8之间。
标准SQL和API:在SparkSQL基础上,支持标准SQL99/2003;支持数据批量更新、删除,适用于OLAP场景下数据的周期性刷新,例如拉链表更新、维表数据同步。提供JDBC/ODBC连接,支持与BI工具无缝对接;兼容Spark DataFrame/DataSet,支持复杂分析应用。
数据生态集成:支持与Hadoop、Spark等大数据生态系统集成,支持和商业BI工具无缝对接。既满足传统数仓、数据集市、BI应用要求,也提供大数据生态丰富多样的API支持,覆盖从GB级到EB级应用。
开源开放: CarbonData于2016年6月全票通过进入Apache孵化器,不到一年时间,毕业成为Apache顶级项目,这标志着CarbonData项目完成依照Apache way开源方式运作,社区多样化,贡献来自华为、Intel、Talend、eBay、Inmobi、Knoldus、Habib Bank、上汽、携程、丁香园、阿里、美团、乐视、滴滴等公司资深架构师和开发人员。
Apache® CarbonData™致力于推动大数据开源技术的持续发展,以一份数据同时满足多种业务场景诉求,打造高效、开放、完整生态的大数据新融合数仓存储方案。
本文来自开源中国社区 [http://www.oschina.net]