欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

Apache CarbonData 1.0.0发布及其新特性介绍

大年初二Apache CarbonData迎来了第四个稳定版本CarbonData 1.0.0。CarbonData是由华为开发、开源并支持Apache Hadoop的列式存储文件格式,支持索引、压缩以及解编码等,其目的是为了实现同一份数据达到多种需求,而且能够实现更快的交互查询。目前该项目正处于Apache孵化过程中。CarbonData 1.0.0版本,一共带来了80+ 个新特性,并且有100+ 个bugfixs;以下是本版本的亮点特性:
点击下载Apache CarbonData 1.0.0


如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

新的数据加载解决方案

旧版本的CarbonData数据加载解决方案依赖了Kettle引擎,然而Kettle引擎并不是为大数据领域而设计的,而且代码的维护非常复杂。所以,在Apache CarbonData 1.0.0版本,引入了新的数据加载解决方案,并且不依赖Kettle!使得功能更加模块化,而且性能得到了提升。

支持和Spark 2.1整合

我们知道,Spark 2.1 (《Apache Spark 2.1.0正式发布》)添加了许多新的功能,而且性能得到了很大的提升;现在我们可以直接在CarbonData中使用到这些新的功能。

支持update/delete SQL

我们可以直接使用标准的SQL语法来删除和更新Carbon表。不过这个功能目前仅仅在Spark 1.5/1.6可用,Spark 2.1的用户需要等待一下。

int/bigint/decimal类型的数据支持自适应数据压缩来提高压缩比

这个特性可以根据数据来选择数据类型,它还支持增量压缩技术来减少存储大小。

支持为不同的列定义Date/Timestamp格式

现在用户可以在加载数据的时候为每列提供Date/Timestamp格式。我们可以在创建表的时候为Timestamp 列定义格式,而且我们还可以定义默认的格式,这样就不需要每次再定义。

B-Tree支持LRU缓存

CarbonData中的BTree保存着块的信息以及内存中Carbon表的blocklets的信息;如果表的数量或者数据增加,很可能会导致内存溢出。B-Tree的LRU功能仅仅在内存中保存最近或者最频繁使用的 block/blocklet 信息,自动清除不使用或者不经常使用的 block/blocklet 信息。

CarbonData V2格式提升首次查询性能

CarbonData V2格式是多组织(more organized),而且维护更少的元数据,仅仅在需要的时候才会读取元数据,所以第一次查询的时间变得更快。和V1格式相比,其IO消耗更少。多次测试用例结果显示,V2的首次查询响应时间比V1减少了50%。

支持矢量化Reader

它这个功能会批量读取数据,减少了GC时间并且提升了数据扫描的性能。

通过bucket table支持快速Join

这个功能使得CarbonData支持 bucket table。如果Join的表已经在同列进行了分桶(bucketed)并且桶的个数一致,可以通过避免shuffle来提升Join查询性能。目前这个功能已经支持Spark 2.1。

利用off-heap内存来减少GC

通过利用off-heap内存,使得数据的加载和读取性能得以提升。在数据加载方面,它提升了数据排序性能;在数据读取方面,通过把数据存储在堆外,减少了GC的负载。

支持single-pass数据加载

目前,数据的加载分为2个job进行(首先是生成字典;其次才是真正进行数据加载)。这个功能使得可以在一个job中完成字典生成和数据的加载。这个功能可以在很少增量更新字典的数据加载场景下提升性能。

支持为数据加载事先生成字典

用户可以使用生成的字典,此功能还支持用户自定义词典来提高数据加载的效率。

本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Apache CarbonData 1.0.0发布及其新特性介绍】(https://www.iteblog.com/archives/1982.html)
喜欢 (6)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!