写点什么

PowerDrill,Google 又一个大数据分析大杀器

  • 2012-08-29
  • 本文字数:1365 字

    阅读完需:约 4 分钟

将近十年前,Google 放出的两篇论文催生了 Hadoop。最近,Google 又有两篇论文放出,描述了他们用来处理大数据的利器。其中一篇提到的是 Dremel 。前不久,他们在正在举行的 VLDB 2012 大会上发布了一篇论文《 Processing a Trillion Cells per Mouse Click 》,其中提到了 Google 内部使用的一个工具——PowerDrill,只需要点一次鼠标,PowerDrill 就可以处理上万亿条信息。论文中说:相比提供类似信息分析功能的传统数据库,该工具要快 10 倍到 100 倍。

Google 从 2008 年开始使用 PowerDrill,将其作为 Dremel 的变通方案。Google 数据中心的头头之一 Urs Hölzle 在《连线》杂志的一篇文章中说:Dremel 可以在3 秒钟内查询一个P 的数据。PowerDrill 虽不能处理这么多数据,可能应对的量也不小了,而且它的处理速度更快。论文中的数据指出:PowerDrill 可以在30 到40 秒内处理7820 亿个单元的数据。Google 说,这比Dremel 的方式“高好几个数量级”。

网易杭州研究院副总监汪源发布了一篇博客,对PowerDrill 和Dremel 作出了分析和对比。他首先指出二者的相似之处:

PowerDrill 与 Dremel 的类似之处在于都用了列存,都为 SQL 接口。

接下来,他分析了二者的不同:

  • 两者的设计目标不同,Dremel 设计用来管理非常大量的大数据集(指数据集的数量和每数据集的规模都大),而 PowerDrill 设计用来分析少量的大数据集(指数据集的规模大,但数据集的数量不多)时提供更强劲的分析性能。
  • 设计思路不同,包括:
    1. Dremel 数据存于外存;PowerDrill 数据存于内存。
    2. Dremel 没做数据分区,分析时要扫瞄所有需要的列;PowerDrill 做了组合范围分区,分析时可以跳过很多不需要的分区(真实应用统计可以跳过 92.41% 的分区)。
    3. Dremel 用层次数据模型;PowerDrill 用普通关系模型。
    4. Dremel 数据通常不需要 load,增加数据很方便;PowerDrill 数据要 load,增加数据(估计)不太方便。

然后,他提到 PowerDrill 最鲜明的特点:

一个是已经提到的组合范围分区,另一个是空间效率非常高的内存数据结构。

首先,各列的数据使用基于字典的压缩技术,并且是双层字典。全局字典编码列中所有不同值,每个分区还有个小字典,映射分区内不同值的编码到全局编码,这样各分区内的值的编码取值范围比较小,从而可以用较少的比特来编码一个值。

在这个基本方法之上,还通过一下方式进一步优化空间效率:全局字典用 trie 结构;属性值 Zippy 压缩(热点数据不压缩,LRU 替换);reorder 纪录。这些优化通常能带来 2-10+ 倍的空间效率提升。

对于使用内存做分析的做法,汪源认为:

PowerDrill 设计用来分析少量的核心数据集,一般应用场景下数据量并不大,因此通过内存架构来提高分析效率我觉得是个相当合理的选择。

不过他对其组合范围分区的方式有自己的看法:

虽然论文中说领域专家通常很容易确定分区属性,但这个方式总是不通用,并且会导致 load 之后 append 数据不方便。如果用类似于 InfoBright 的 Knowledge Grid 的方式,可能分区过滤的效果会差一些,但可以规避上述两个问题。

Mike Olson 是 Cloudera 的 CEO,他曾说:“如果你想知道未来的大规模、高性能数据处理基础设施是什么样子,我的建议是去阅读 Google 目前刚刚放出的研究论文。”

MapReduce 和 BigTable 的论文催生了大数据处理的事实标准 Hadoop,这让我们不禁好奇:Dremel 和 PowerDrill 又会催生什么项目呢?

2012-08-29 20:0619062
用户头像

发布了 479 篇内容, 共 161.7 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

[架构师训练营第1期]第一周命题作业

猫切切切切切

第一周学习总结

vitaminc

第一周命题作业

架构师训练营2期-第一周总结

Geek_no_one

极客大学架构师训练营

架构师训练营—第一周学习总结

Geek_shu1988

架构师 UML

第一周 作业二:架构设计学习总结【未陌】

a d e

学习 总结 架构设计

统一建模语言(UML)

leo

ARTS打卡Week 13

teoking

ios

极客大学-架构师训练营第一期-食堂就餐系统设计

Black Eyed Peter

极客大学架构师训练营

架构设计大作业二

极客李

【第一周】架构方法

云龙

架构师训练营第一周作业

null

架构师训练营第一周作业

赵孔磊

架构师训练营 week 1 笔记

陈春亮

极客大学架构师训练营

架构师训练营—第一周命题作业UML

Geek_shu1988

架构师学习笔记【架构师训练营第 1 期】

我听你说……

食堂就餐卡系统设计

knight

架构师训练营第一周学习总结

null

架构第一周学习总结

灰羽零

架构1期第一周作业-系统设计

道长

极客大学架构师训练营

作业一:食堂就餐卡系统设计

Wee权

架构师训练营 - 学习笔记 - 第一周

徐时良

极客大学架构师训练营

食堂就餐卡系统UML设计

leo

week01 总结

xxx

极客大学 - 架构师训练营第一期 - 食堂就餐系统设计-学习心得

Black Eyed Peter

极客大学架构师训练营

架构师训练营 - 命题作业 - 第一周

徐时良

极客大学架构师训练营

第一周课后练习

大大猫

极客大学架构师训练营

架构师训练营第一周总结

赵孔磊

架构师训练营 week 1 作业

陈春亮

极客大学架构师训练营

第一周 作业一:食堂就餐卡系统设计【未陌】

a d e

架构设计

食堂就餐卡系统设计

灰羽零

[架构师训练营第 1 期]第一周学习总结

猫切切切切切

极客大学架构师训练营

PowerDrill,Google又一个大数据分析大杀器_Google_郑柯_InfoQ精选文章