增强 扫描王 源码_CarbonData源码 | CarbonData源码浅析一:Create Table

前言

一个偶然的机会,从某Spark微信群知道了CarbonData,从断断续续地去了解,到测试1.2版本,再到实际应用1.3版本的流式入库,也一年有余,在这期间,得到了CarbonData社区的陈亮,李昆,蔡强等大牛的鼎力支持,自己也从认识CarbonData到应用CarbonData,再到参与社区的转变,感谢他们!

要把CarbonData用得好,姿势必须正确:),优化步骤就必不可少,熟悉源码的必要性就不言而喻了,因此准备再进一步研究学习CarbonData源码,同时把学习中的一些点滴记录下来。目前,暂定推出四篇博客,从Create Table,Load Data(DataFrame.write),Select Data,及结合流式入库等四个方面来浅析下CarbonData源码。

简介

CarbonData是首个由中国公司发起并捐献给Apache基金会的开源项目,于2017年4月正式成为Apache顶级项目,由华为开源并支持Hadoop的高性能列式存储文件格式,其目的是提供一种统一的数据存储方案,以一份数据同时支持大数据分析的多种应用场景,All In One,并通过多级索引、字典编码、列式存储等特性提升 I/O 扫描和计算性能,实现百亿数据级秒级响应。CarbonData里程碑版1.3于2018年2月正式发布,该版本包含了集成Spark 2.2.1,支持预聚合,流式准实时入库,支持标准Hive分区等几个重要特性,而即将发布的1.4版本更是包含了支持Lucene Index加强文本检索能力,支持Bloom Filter Index等重要特性,在All In One的道路上又迈进了一步。

目前CarbonData与Spark,Presto, Hive等框架做了集成,其中与Spark的集成最深入,提供了基于索引、预聚合、全局字典等更多查询优化手段来提升性能,也提供了数据更新、删除、增量入库等数据管理能力,可以说是在Spark开源框架上针对数据仓库类应用的增强。一个计算框架方面的All In One,一个存储格式方面的All In One(其实CarbonData的功能已经远远超越了数据格式的范畴了),两者结合碰出的火花着实十分吸引人,这也是当初我会想要使用CarbonData并深入了解它的最根本原因。

此系列就是基于CarbonData里程碑版1.3的源码进行浅析。

Create Table浅析

建表语句兼容SparkSQL,只是使用‘carbondata’这个DataSource,并扩展了一些属性来描述Global Dictionary Columns,Sort Columns,Sort Scope等:

  • DICTIONARY_INCLUDE:指定做全局字典的列,主要用途在于:

    • 压缩数据,String类型转换为Int进行存储,并采用RLE算法进

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值