阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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 又会催生什么项目呢?

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

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

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

关注

评论

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

CI-基于JMeter的性能测试

夏兮。

自动化测试中的Page Object

夏兮。

Python PO selenium

日记 2021年2月16日(周二)

Changing Lin

2月春节不断更

程序员成长第八篇:做好测试工作

石云升

程序员 测试 2月春节不断更

第四章作业

Deborah

SonarQube&Gitlab-CI 实现静态代码分析

夏兮。

ci gitlab SonarQube

如何搭建自动化测试框架

夏兮。

js puppeteer automation

sonarLint与IntelliJ IDEA 集成

夏兮。

【STM32】TIM---基本定时器

AXYZdong

硬件 stm32 2月春节不断更

Flink集群部署:Standalone部署

正向成长

Jacoco统计web接口/功能测试的代码覆盖率

夏兮。

tomcat WebService JACOCO

week12-conclusion

J

什么是MySQL数据库?看这一篇干货文章就够了!

我是哪吒

学习 程序员 后端 MySQ 2月春节不断更

11. 用别人写好的代码,完成我的工作,剩下的时间去摸鱼

梦想橡皮擦

Python 2月春节不断更 python入门

数据量大读写缓慢如何优化(5)【读缓存】

我爱娃哈哈😍

redis 缓存 架构设计实战 缓存设计

week12-homework

J

Elasticsearch Mapping Index索引

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

开箱即用cypress

夏兮。

PO Cypress

第十二周学习心得

cc

分布式任务框架:xxl-job使用问题整理

程序员架构进阶

开源 分布式任务调度 七日更 2月春节不断更 XXL-JOB

诊所数字化:诊所老板为什么拒绝预约制?

boshi

数字化转型 医院 七日更

年终述职PPT(996一年,怎么会什么都没干!)

鲁米

年终总结

第十二周命题作业

cc

DO、DTO、BO、VO、POJO区别

安琪拉的博客

系统设计

翻译:《实用的Python编程》01_04_Strings

codists

人工智能 爬虫 后端 数据结构与算法 Python Monad

ARTS打卡 第31周

引花眠

微服务 ARTS 打卡计划

面向对象设计原则

引花眠

面向对象设计原则

web自动化测试-puppeteer入门与实践

夏兮。

puppeteer

LeetCode题解:62. 不同路径,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

深度讲解背包问题:面试中每五道动态规划就有一道是背包模型 ...

宫水三叶的刷题日记

深度思考 面试 LeetCode 动态规划 数据结构与算法

ElasticSearch.02 - 安装

insight

elasticsearch 2月春节不断更

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