写点什么

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:0619349
用户头像

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

关注

评论

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

企业数字化办公利器——华为云桌面Workspace

清欢科技

Java HashMap 在获得 Key 的 Hash 值的时候用的是什么算法

HoneyMoose

极客时间运维进阶训练营第六周作业

9527

JavaScript进阶(八)实现图片预览并导入服务器功能

No Silver Bullet

图片预览 AngularJS 12月月更

企业如何高质量上云?华为云服务器告诉你!

路过的憨憨

华为

会议都在云上开,华为云会议具有超高性价比

清欢科技

双十一特惠,华为云桌面助力便捷高效办公!

爱科技的水月

一个有点咬文嚼字的 sorting 和 ordering

HoneyMoose

设计模式之美--MVC(1)的贫血模型、充血模型

GalaxyCreater

设计模式

一站式解决方案,华为云CDN这波双十一很强!

秃头也爱科技

设计模式之美--MVC(1)充血模型的DDD开发模式例子

GalaxyCreater

设计模式

企业云上办公的最佳选择——华为云桌面Workspace

爱科技的水月

Java Hash 碰撞

HoneyMoose

Vision Transformer这两年

OneFlow

人工智能 深度学习 NLP 大模型

弹性伸缩、安全高效!华为云服务器助力企业数字化转型!

路过的憨憨

华为

企业运维强驱动

秃头也爱科技

AngularJS进阶(九)控制器controller之间如何通信

No Silver Bullet

通信 AngularJS 12月月更

Dubbo 3.1.3、3.2.0-beta.2 正式发布

Apache Dubbo

Java 开源 微服务 云原生 dubbo

华为云CDN,为你开启更快速的上网体验!

秃头也爱科技

华为云CDN 真的有点“东西”!极速网上冲浪全靠它

爱科技的水月

Java HashMap 的扩容因子为什么是 0.75

HoneyMoose

华为云云服务器:赢麻了是种什么体验?

路过的憨憨

华为

体验华为云桌面的新办公形式,让你轻松办公

秃头也爱科技

CleanMyMac4.12.1最新版安装包下载及功能详情

茶色酒

CleanMyMac CleanMyMac X CleanMyMac X2023

三种基本排序

我是一个茶壶

排序算法 C语音 11月月更

HashMap 的初始值和最大值和扩容因子

HoneyMoose

​ AngularJS进阶(七)AngularJS实现根据不同条件显示不同控件

No Silver Bullet

AngularJS 12月月更 条件筛选

企业上云原来如此简单,华为云带你体验云上风采

清欢科技

架构实战营模块一作业

张贺

架构实战营

一文了解 Go 标准库 strconv:string 与其他基本数据类型的转换

陈明勇

Go golang string 11月月更 strconv

Hash 的定义

HoneyMoose

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