由于项目需要,近期一直在研究华为开源的carbondata项目,目前carbondata已经成为apache的顶级项目,项目活跃程度也比较高。
Carbondata介绍
纵观目前的大数据生态圈,针对于ad-hoc查询并没有什么好的解决方案,且查询效率不高。Carbondata针对ad-hoc给出了解决方案,但是目前版本这个方案并不完善。为什么说并不完善,后续会给大家解答,我们先来说下carbondata的优点
查询
- 两级索引,减少IO:适合ad-hoc查询,任意维度组合查询场景
- 第一级:文件索引,用于过滤hdfs block,避免扫描不必要的文件
- 第二级:Blocklet索引,用于过滤文件内部的Blocklet,避免骚烤不必要的Blocklet
- 延迟解码,向量化处理:适合全表扫描、汇总分析场景
数据管理
- 数据增量入库,多级排序可调:有用户权衡入库时间和查询性能
- 字典编码配置(Dictionary Encoding Configuration)
- 反向索引配置(Inverted Index Configuration)
- 排序列配置(Sort Columns Configuration)
- 增量更新,批量合并:支持快速更新事实表或维表,闲时做Compaction合并
大规模
- 计算与存储分离:支持从GB到PB大规模数据,万亿数据秒级响应
部署
- Hadoop Native格式:与大数据生态无缝集成,利用已有hadoop集群资产
- 与Spark2.x版本集成