2017年4月19日,Apache软件基金会宣布,华为贡献给Apache社区的开源项目CarbonData从Apache孵化器毕业,正式成为Apache顶级项目(TLP)。Apache® CarbonData™也成为首个由中国公司贡献给Apache基金会,并成为顶级项目的开源项目。
随着数字化时代的到来,企业生产和应用的数据与日俱增,业务驱动下的数据分析灵活性要求也越来越高。但是,企业不同场景下的数据分业务系统而构建,不同的业务场景使用不同的数据存储格式。这种数据存储方式导致数据冗余严重,同时也阻碍了企业的数字化转型。因此,企业在建设大数据平台时,希望能够建设统一数据存储,用一份数据支持多种使用场景,从而减少数据孤岛和冗余,通过数据共享产生更大价值。同时,这种数据存储还需要满足高效、易集成、易开发、易扩展以及开放性生态等需求。
华为FusionInsight大数据产品团队针对用户的诉求,从2013年开始调研分析业界大数据方案,发现每种技术都只能解决某种场景的诉求,不能同时满足上述的所有诉求。于是,华为FusionInsight大数据产品团队开发了CarbonData项目,针对当前大数据领域分析场景需求各异而导致的存储冗余问题,CarbonData提供了一种新的融合数据存储方案,以一份数据同时支持“交互式分析、详单查询、任意维度组合的过滤查询等”多种大数据应用场景,并通过丰富的索引技术、字典编码、列存等特性提升了IO扫描和计算性能,实现百亿数据级秒级响应,与大数据生态Apache Hadoop、Apache Spark等无缝集成。
Apache CarbonData主要有下面一些特点:
列式存储:高效的列式数据组织,可以实现列裁剪和过滤下压,使OLAP查询性能更高。同时,CarbonData针对明细数据查询实现了深度优化,在需要返回所有列的场景下性能优于其他列存方案。
丰富的索引支持:支持全局多维索引、文件索引、Min/Max、倒排索引等多种索引技术,从表级,文件级,列级等多个层级逐级快速定位数据,大幅提升性能。
全局字典编码:除了常见的Delta、RLE、BitPacking等编码外,CarbonData应用了全局字典编码来实现免解码的计算,计算框架可以直接使用经过编码的数据来做聚合,排序等计算,这对需要做跨节点数据交换的业务来说性能提升非常明显(3倍以上)。
自适应类型转换: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级应用。
基于华为“源于开源、强于开源、回馈开源”的战略,华为FusionInsight大数据团队开发出CarbonData后,就积极向社区进行回馈。2015年,华为向社区贡献了CarbonData的代码;2016年6月,CarbonData全票通过进入Apache孵化器;2017年4月,经过来自华为、Intel、Talend、eBay、Inmobi、Knoldus、Habib Bank、交通银行、上汽、携程、丁香园、阿里、美团、乐视、滴滴等公司资深架构师和开发人员的努力,CarbonData经过不到一年的时间,毕业成为Apache顶级项目。这标志着CarbonData项目完全依照Apache way开源方式运作,并完成社区多样化工作。
而对华为公司FusionInsight大数据团队而言,这标志着华为对Apache开源社区,不仅能够贡献代码和提案,也能够贡献顶级开源项目,华为对Apache社区的开源贡献,已经跨入了一个新的高度。这也是华为“源于开源、强于开源、回馈开源”战略的成功实践。
Apache CarbonData介绍:Apache CarbonData是由华为开源贡献的大数据高效存储格式解决方案。Apache CarbonData 致力于推动大数据开源技术的持续发展,以一份数据同时满足多种业务场景诉求,打造高效、开放、完整生态的大数据新融合数仓存储方案,欢迎大家参与到社区(任意传送门)。