速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

EMC 颜开分析 Dremel 原理,如何在 3 秒内分析 1PB 数据

  • 2012-09-02
  • 本文字数:2285 字

    阅读完需:约 7 分钟

上周,InfoQ 中文站对 Google 的大数据分析工具 PowerDrill 做了简单介绍。今天,我们来看看服务于 EMC 的大数据专家颜开在博客文章中对 Dremel 的分析。

在这篇文章中,颜开首先提到了 Dremel 的 5 个主要特点:

  • Dremel 是一个大规模系统。在一个 PB 级别的数据集上面,将任务缩短到秒级,无疑需要大量的并发。磁盘的顺序读速度在 100MB/S 上下,那么在 1S 内处理 1TB 数据,意味着至少需要有 1 万个磁盘的并发读! Google 一向是用廉价机器办大事的好手。
  • Dremel 是 MR 交互式查询能力不足的补充。和 MapReduce 一样,Dremel 也需要和数据运行在一起,将计算移动到数据上面。所以它需要 GFS 这样的文件系统作为存储层。在设计之初,Dremel 并非是 MapReduce 的替代品,它只是可以执行非常快的分析,在使用的时候,常常用它来处理 MapReduce 的结果集或者用来建立分析原型。
  • Dremel 的数据模型是嵌套 (nested) 的。互联网数据常常是非关系型的。Dremel 还需要有一个灵活的数据模型,这个数据模型至关重要。Dremel 支持一个嵌套 (nested) 的数据模型,类似于 JSON。
  • Dremel 中的数据是用列式存储的。使用列式存储,分析的时候,可以只扫描需要的那部分数据的时候,减少 CPU 和磁盘的访问量。同时列式存储是压缩友好的,使用压缩,可以综合 CPU 和磁盘,发挥最大的效能。
  • Dremel 结合了 Web 搜索和并行 DBMS 的技术。首先,他借鉴了 Web 搜索中的“查询树”的概念,将一个相对巨大复杂的查询分割成较小较简单的查询。大事化小,小事化了,能并发的在大量节点上跑。其次,和并行 DBMS 类似,Dremel 可以提供了一个 SQL-like 的接口,就像 Hive 和 Pig 那样。

颜开提到了一个 Dremel 的应用场景。

美女数据分析师有一个新的想法要验证,需要在上亿条数据上面跑一个查询,看看结果和她的想法是不是一样,她可不希望等太长时间,最好几秒钟结果就出来。当然她的想法不一定完善,还需要不断调整语句。然后她验证了想法,发现了数据中的价值。最后,她可以将这个语句完善成一个长期运行的任务。

对于 Google, 数据一开始是放在 GFS 上的。可以通过 MapReduce 将数据导入到 Dremel 中去,在这些 MapReduce 中还可以做一些处理。然后分析师使用 Dremel,轻松愉悦的分析数据,建立模型。最后可以编制成一个长期运行的 MapReduce 任务。

接下来,颜开详细分析了 Dremel 的列存储和嵌套数据模型,并得出结论:

就像其他数据分析系统一样,数据结构确定下来,功能就决定了一大半。对于 Dremel 的数据查询,必然是“全表扫描”,但由于其巧妙的列存储设计,良好的数据模型设计可以回避掉大部分 Join 需求和扫描最少的列。

对于 Dremel 的查询方式,颜开指出:

Dremel 可以使用一种 SQL-like 的语法查询嵌套数据。由于 Dremel 的数据是只读的,并且会密集的发起多次类似的请求。所以可以保留上次请求的信息,还优化下次请求的 explain 过程。

……

Dremel 是一个多用户的系统。切割分配任务的时候,还需要考虑用户优先级和负载均衡。对于大型系统,还需要考虑容错,如果一个叶子 Server 出现故障或变慢,不能让整个查询也受到明显影响。

……

Dremel 还有一个配置,就是在执行查询的时候,可以指定扫描部分分区,比如可以扫描 30% 的分区,在使用的时候,相当于随机抽样,加快查询。

颜开还在博客中列出了对 Dremel 的测试结果,包括列存测试、和 MapReduce 的对比测试、树状计算 Server 测试、扩展性测试、容错测试等等。

对于 Dremel 和 Hadoop 的关系,颜开指出:

Dremel 的公开论文里面已经说的很明白,Dremel 不是用来替代 MapReduce,而是和其更好的结合。Hadoop 的 Hive,Pig 无法提供及时的查询,而 Dremel 的快速查询技术可以给 Hadoop 提供有力的补充。同时 Dremel 可以用来分析 MapReduce 的结果集,只需要将 MapReduce 的 OutputFormat 修改为 Dremel 的格式,就可以几乎不引入额外开销,将数据导入 Dremel。使用 Dremel 来开发数据分析模型,MapReduce 来执行数据分析模型。

Hadoop 无论存储结构还是计算方式都没有 Dremel 精致。对 Hadoop 实时性的改进也一直是个热点话题。要想在 Hadoop 中山寨一个 Dremel,并且相对现有解决方案有突破,笔者觉得 Hadoop 自身需要一些改进。一个是 HDFS 需要对并发细碎的数据读性能有大的改进,HDFS 需要更加低的延迟。再者是 Hadoop 需要不仅仅支持 MapReduce 这一种计算框架。其他部分 Hadoop 都有对应的开源组件,万事俱备只欠东风。

颜开接下来提到几个与 Dremel 类似的开源实现:

  • OpenDremel/Dazo

可以在 GoogleCode 上找到 http://code.google.com/p/dremel/ 。目前还没有发布。作者声称他已经完成了一个通用执行引擎和 OpenStack Swift 的集成。笔者感觉其越走越歪,离 Dremel 越来越远了。

  • Apache Drill

Drill 是 Hadoop 的赞助商之一 MapR 发起的。有和 Dremel 相似的架构和能力。他们希望 Drill 最终会像 Hive、Pig 一样成为 Hadoop 上的重要组成部分。Drill 支持更标准的数据结构,还有更大的灵活性,支持多重查询语言,多种接口。

目前 Drill 包括四个组件:

  • 类似 Google BigQuery 的查询语言,支持嵌套模型,名为 DrQL。
  • 低延迟分布式执行引擎,可以支持大规模扩展和容错。可以运行在上万台机器上计算数以 PB 的数据。
  • 嵌套数据模型,和 Dremel 类似。也支持 CSV、JSON、YAML 类似的模型。这样执行引擎就可以支持更多的数据类型。
  • 支持多种数据源,现阶段以 Hadoop 为数据源。

颜开在文中提到:伯克利分校的教授 Armando Fox 说过一句话——“如果你曾事先告诉我 Dremel 声称其将可做些什么,那么我不会相信你能开发出这种工具”。

读者如果希望了解更多 Dremel 的实现细节,请到颜开的博客上去看这篇文章

2012-09-02 20:276265
用户头像

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

关注

评论

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

智能化司库平台助力财资管理升级

用友BIP

用友 智能会计 智能财务 价值财务 全球司库

让业务容器化更安全便捷,阿里云容器镜像服务 ACR 推出免费制品中心

阿里巴巴中间件

阿里云 容器 云原生

数据库ChatGPT插件来了,SQL使用体验进一步起飞

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

模块9设计电商秒杀系统

KING

LUKS加密卷应用技术简介

天翼云开发者社区

再获信创认证!MIAOYUN荣获“产业技术创新奖”和“优秀信创企业奖”双重奖项

MIAOYUN

信创 信创云 MIAOYUN 产业技术创新奖 优秀信创企业奖

“巨变”中,用友奋力实现飞跃

用友BIP

用友BIP

智能会计成就价值财务

用友BIP

智能会计 价值财务 业财合一 用友智能财务

怎样仿真才能驱动研发

Openlab_cosmoplat

工业互联网 开源社区 工业 仿真 仿真软件

时序数据库入门 | 时序数据库的特点及与传统数据库的区别详解

Greptime 格睿科技

时序数据库 tsdb 时序数据

重塑大融合体系,立体推进“业财合一”

用友BIP

智能会计 价值财务 业财合一 用友智能财务 业财融合

持续创新,厚积薄发,用友引领企业数智化服务产业

用友BIP

用友 用友BIP

ChatGPT编程秀-1:从一个爬虫开始

仝键

JavaScript 架构 TDD java ChatGPT

天翼云坚持科技创新,加速算力普惠!

天翼云开发者社区

共铸国云智领未来| 吹起“螺”号,构建数字化生态圈

天翼云开发者社区

高速服务区智慧公厕

光明源智慧厕所

从ChatGPT谈AI发展方向:全力助推乡村振兴事业快速发展

加入高科技仿生人

人工智能 AI 低代码 乡村振兴 ChatGPT

云平台监控指标的设定

天翼云开发者社区

Uniapp最新版iOS打包详细步骤详解

雪奈椰子

金融监管科技业务中的AI应用:上市公司公告信息风险识别

飞桨PaddlePaddle

天翼云斩获SD-WAN & SASE两项大奖!让企业上云更加丝滑

天翼云开发者社区

切实保障用户权益!天翼云加入“云服务用户权益护航计划”

天翼云开发者社区

摸着OpenAI过河,百度文心一言能否“重拳出击”?

引迈信息

百度 ChatGPT 文心一言

Lion : 超越 AdamW 的优化算法

Zilliz

模型训练 算法优化

Kyligence 亮相 Gartner 数据与分析峰会,展示指标平台创新成果

Kyligence

大数据 数据分析 指标中台

好用的3D建筑设计软件:Vectorworks 2023激活版

真大的脸盆

Mac Mac 软件 3D建筑设计软件 建筑设计

旅游景区智慧公厕,提升旅游新体验

光明源智慧厕所

SeaTunnel 与 StarRocks 生态融合,让大数据处理回归“简单”!

Apache SeaTunnel

开源 Bigdata Apache SeaTunnel

为什么秒验是老年用户注册的最佳选择

MobTech袤博科技

开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾

阿里巴巴中间件

阿里云 开源 云原生 KubeVela cncf

从 TDengine 存储引擎的变化探讨——为何大家应尽快切换 3.0 版本?

TDengine

tdengine 时序数据库 国产数据库

EMC颜开分析Dremel原理,如何在3秒内分析1PB数据_Google_郑柯_InfoQ精选文章