由CarbonData想到了存储和计算的关系

原本不知道啥时候才有时间写,没想到在等高铁的时候就顺带写了。这篇文章谈谈我对目前存储和计算该如何结合的一些看法

交代下背景,之前花了半天时间试用了下,主要想解决ElasticSearch历史数据查询的问题,之前出现过在ES上查询一个月数据直接把一些节点跑挂了。然后我打算把历史数据单独出来,这个时候有三个选择:

  • 将历史数据导入到Apache kylin,这是一个风头还不错的产品
  • 使用Spark Parquet,我测了了下,几百万条数据使用Spark SQL 做个count,处理过一次后接着再查也就两三秒,性能还是不错的
  • 华为新推出的 CarbonData,类似Parquet,是一种文件存储格式,但是数据结构更加丰富和复杂,支持列存,索引,向量化等。

Kylin是一个独立的,基于HBase的Ad-hoc查询引擎,可以应对海量数据并且拥有优秀的响应时间。不过我现在重心在Spark上,并不愿意引入一个新的独立的系统。

自然的,Parquet 可能是更好的选择,只是作为一种数据存储格式,显然更,我只要利用Spark 将ES数据导出并且存成parquet就可以进行查询了。

但是Parquet 应对查询显然还是不够理想,依然有点靠算力的。这个时候CarbonData 似乎更符合我的要求了:

  1. 轻量化,只是一个存储结构,而不是一个独立的拥有计算和存储,并且能够对外提供服务的引擎。当然,CarbonData似乎也提供了Thrift接口供外部调用。
  2. 可以和Spark 计算引擎更好的结合
  3. 因为基于HDFS,所以天然就是分布式的

或许是因为项目刚刚进入Apache 孵化器,有太多的工作要做,代码在不断更新导致文档略有些滞后,所以用起来并不是很顺,不过CarbonData团队很热情,我也能感受到开源文化带来的魅力。

当然,这篇文章并不是为了鼓吹CarbonData的,而是为了说明存储和计算的关系,以及未来的发展方向:

传统的系统,譬如NoSQL领域的MongoDB,数据库里的Oracle/Mysql,搜索的ES,他们都是计算绑定在存储上的。根据存储的结构已经确定了计算逻辑。而类似Parquet,CarbonData,则实现了存储和计算逻辑上的分离,理论上你可以使用任何计算引擎,譬如Spark或者MR。而且存储和计算可以物理接近,从而保证了性能。

我们先来简单以ES为例子,谈谈目前存储和计算绑定的一些系统的情况。

ES 用来做聚合运算的优势在于Lucene优秀的列式存储实现,也就是其DocValues,而且数据进入具有一定的实时性。这个是目前一些大数据组件所欠缺的。ES缺点也比较明显:

  1. Lucene天然就是单机的,ES需要花费大量精力完成存储的分布式
  2. ES 需要绑定Lucene,实现定制的查询(计算)

这两点其实哪点都不好做。而且自成体系的系统,很多东西都需要重新实现。

类似Parquet/CarbonData则不存在这类问题,他只要优化好存储结构就行了,然后暴露类似HDFS的基础API,真实的写入和查询都可以交给通用的计算引擎来完成。

而且他们无需担心分布式相关的问题,因为都是基于HDFS实现的,天然就是分布式。所以整件事情就变得简单了。当然这种较为通用的存储格式,有大量额外的结构化元信息存储,不过问题并不大,现在大量的存储本来也是被浪费掉的,大家细心点,就能腾出额外的空间给这些元信息存储。

Spark 计算引擎其实是一个标准的master-slave模式,当然专业的术语是 driver-executor,和CarbonData的交互模式是每个Executor 都会加载CarbonData的元数据,从而在查找和过滤的时候变得更快。

记得早先说过,Hadoop刚兴起的时候,大家就像一个穷人突然获得了一笔巨大的财富,突然拥有了这么大的存储和算力,大家就有点大手大脚了,所以早先直接就存成了普通文本了,后面有了SequenceFile好了点,再后面ORC/Parquet等则更好些,而到CarbonData则是更完美些了。显然,整个分布式存储文件格式是越来越面向查询了,因为已经过了仅仅是积攒数据的时代,我们现在要求更好的查询效率以及一定的实时性。所以这个时候大家开始在入库效率和查询效率得到一个更合理的平衡。

从这两年的各种Ad-Hoc查询引擎的风起云涌也可以看出,人们对于查询的要求越来越高。CarbonData的思路,我觉得是符合趋势的,所以非常看好。当然,也希望未来有更多类似的项目诞生。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容