本文来源于:Hadoop 技术博文(teblog_hadoop) ,转载请注明出处! 大年初二 Apache CarbonData 迎来了第四个稳定版本 CarbonData 1.0.0。CarbonData 是由华为开发、开源并支持 Apache Hadoop 的列式存储文件格式,支持索引、压缩以及解编码等,其目的是为了实现同一份数据达到多种需求,而且能够实现更快的交互查询。目前该项目正处于 Apache 孵化过程中。CarbonData 1.0.0 版本,一共带来了 80 个新特性,并且有 100 个 bugfixs;以下是本版本的亮点特性: 文章目录
新的数据加载解决方案 旧版本的 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 社区信息:
微信公众号中回复数字查看更多精华文章: 回复【1】:技术干货 回复【2】:程序员幽默世界 回复【3】:物联网江湖 回复【4】:华为招聘 回复【5】:HDG 视频 PPT 汇总 回复【6】:华为开发者大赛获奖作品展示 本文转载于微信公众号: 华为开发者社区(Huawei_eSDK),更多微信文章请扫描关注公众号: |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|