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