首页 存档 技术 查看内容

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

2018-3-30 13:00 |来自: 互联网 370 0

摘要: 本文来源于:Hadoop 技术博文(teblog_hadoop) ,转载请注明出处! 大年初二 Apache CarbonData 迎来了第四个稳定版本 CarbonData 1.0.0。CarbonData 是由华为开发、开源并支持 Apache Hadoop 的列式存储文件格式, ...



本文来源于:Hadoop 技术博文(teblog_hadoop) ,转载请注明出处!


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


文章目录


  • 新的数据加载解决方案


  • 支持和 Spark 2.1 整合


  • 支持 update/delete SQL


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


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


  • B-Tree 支持 LRU 缓存


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


  • 支持矢量化 Reader


  • 通过 bucket table 支持快速 Join


  • 利用 off-heap 内存来减少 GC


  • 支持 single-pass 数据加载


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



新的数据加载解决方案


旧版本的 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 中完成字典生成和数据的加载。这个功能可以在很少增量更新字典的数据加载场景下提升性能。


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


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


其他资料查询


1、Apache CarbonData 1.0.0 版本的下载地址:


https://www.apache.org/dyn/closer.lua/incubator/carbondata/1.0.0-incubating


2、Apache CarbonData 社区信息:


  • github 源代码:https://github.com/apache/incubator-carbondata



  • Apache JIRA:https://issues.apache.org/jira/browse/CARBONDATA/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel


  • CarbonData 主页:

    http://carbondata.apache.org



2016 年往期精华文章

微信公众号中回复数字查看更多精华文章:


回复【1】:技术干货

回复【2】:程序员幽默世界

回复【3】:物联网江湖

回复【4】:华为招聘

回复【5】:HDG 视频 PPT 汇总

回复【6】:华为开发者大赛获奖作品展示


本文转载于微信公众号: 华为开发者社区(Huawei_eSDK),更多微信文章请扫描关注公众号:

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部