IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    华为大数据开源项目CarbonData 1.0.0发布

    summer发表于 2017-02-07 02:20:55
    love 0
    2017年1月29日Apache CarbonData发布了1.0.0版本。CarbonData是一款由华为开发、开源并支持Apache Hadoop的列式存储文件格式,支持索引、压缩以及解编码等,其目的是为了实现同一份数据达到多种需求,而且能够实现更快的交互查询。目前该项目正处于Apache孵化过程中。下面我们来看下CarbonData 1.0.0版本的新特性:
     
    新的数据加载解决方案
    旧版本的CarbonData数据加载解决方案依赖了Kettle引擎,然而Kettle引擎并不是为大数据领域而设计的,而且代码的维护非常复杂。所以,在Apache CarbonData 1.0.0版本,引入了新的数据加载解决方案,并且不依赖Kettle!使得功能更加模块化,而且性能得到了提升。
     
    整合Spark 2.1
    整合最新的Spark 2.1,而且性能得到了很大的提升;现在我们可以直接在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中完成字典生成和数据的加载。这个功能可以在很少增量更新字典的数据加载场景下提升性能。
     
    支持为数据加载事先生成字典
    用户可以使用生成的字典,此功能还支持用户自定义词典来提高数据加载的效率。


沪ICP备19023445号-2号
友情链接