写点什么

Druid:一个用于大数据实时处理的开源分布式系统

  • 2015-04-25
  • 本文字数:1297 字

    阅读完需:约 4 分钟

Druid 是一个用于大数据实时查询和分析的高容错、高性能开源分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。尤其是当发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid 仍能够保持 100% 正常运行。创建 Druid 的最初意图主要是为了解决查询延迟问题,当时试图使用 Hadoop 来实现交互式查询分析,但是很难满足实时分析的需要。而 Druid 提供了以交互方式访问数据的能力,并权衡了查询的灵活性和性能而采取了特殊的存储格式。

Druid 功能介于 PowerDrill Dremel 之间,它几乎实现了 Dremel 的所有功能,并且从 PowerDrill 吸收一些有趣的数据格式。Druid 允许以类似 Dremel 和 PowerDrill 的方式进行单表查询,同时还增加了一些新特性,如为局部嵌套数据结构提供列式存储格式、为快速过滤做索引、实时摄取和查询、高容错的分布式体系架构等。从官方得知,Druid 的具有以下主要特征:

  • 为分析而设计——Druid 是为 OLAP 工作流的探索性分析而构建,它支持各种过滤、聚合和查询等类;
  • 快速的交互式查询——Druid 的低延迟数据摄取架构允许事件在它们创建后毫秒内可被查询到;
  • 高可用性——Druid 的数据在系统更新时依然可用,规模的扩大和缩小都不会造成数据丢失;
  • 可扩展——Druid 已实现每天能够处理数十亿事件和 TB 级数据。

Druid 应用最多的是类似于广告分析创业公司 Metamarkets 中的应用场景,如广告分析、互联网广告系统监控以及网络监控等。当业务中出现以下情况时,Druid 是一个很好的技术方案选择:

  • 需要交互式聚合和快速探究大量数据时;
  • 需要实时查询分析时;
  • 具有大量数据时,如每天数亿事件的新增、每天数 10T 数据的增加;
  • 对数据尤其是大数据进行实时分析时;
  • 需要一个高可用、高容错、高性能数据库时。

一个 Druid 集群有各种类型的节点(Node)组成,每个节点都可以很好的处理一些的事情,这些节点包括对非实时数据进行处理存储和查询的 Historical 节点、实时摄取数据、监听输入数据流的 Realtime 节、监控 Historical 节点的 Coordinator 节点、接收来自外部客户端的查询和将查询转发到 Realtime 和 Historical 节点的 Broker 节点、负责索引服务的 Indexer 节点

查询操作中数据流和各个节点的关系如下图所示:

如下图是 Druid 集群的管理层架构,该图展示了相关节点和集群管理所依赖的其他组件(如负责服务发现的 ZooKeeper 集群)的关系:

Druid 已基于 Apache License 2.0 协议开源,代码托管在 GitHub ,其当前最新稳定版本是 0.7.1.1 。当前,Druid 已有 63 个代码贡献者和将近 2000 个关注。Druid 的主要贡献者包括广告分析创业公司 Metamarkets、电影流媒体网站 Netflix 、Yahoo 等公司。Druid 官方还对 Druid 同 Shark Vertica Cassandra Hadoop Spark Elasticsearch 等在容错能力、灵活性、查询性能等方便进行了对比说明。更多关于 Druid 的信息,大家还可以参考官方提供的入门教程白皮书设计文档等。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-04-25 03:2733886
用户头像

发布了 46 篇内容, 共 54.4 次阅读, 收获喜欢 15 次。

关注

评论

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

从寻人到航天,科技与公益的下一个交汇点正在“星辰”中诞生

脑极体

掌握学习方法,成为技术大牛

实力程序员

k8s 集群下微服务 pod 的各种指标信息监控

Damon

微服务 5月日更

记一次与写作朋友的线下沙龙

架构精进之路

技术交流 杂记 5月日更

☕【JVM 技术之旅】攻克技术盲点之“JVM常量池们“

码界西柚

JVM 5月日更 字符串常量池 静态常量池 运行时常量池

GitHub开源的10个超棒后台管理面板

不脱发的程序猿

GitHub 开源 后台管理面板

手把手带你体验 Amazon Graviton2 的高性价比!文末有惊喜

亚马逊云科技 (Amazon Web Services)

全新F1洞察精彩亮相,帮你理解赛道上的瞬间决定!

亚马逊云科技 (Amazon Web Services)

【Flutter 专题】120 Flutter & 腾讯移动通讯 TPNS~

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

redis在微服务领域的贡献

捉虫大师

redis dubbo RPC 协议 注册中心

字节、美团等客户与华为联合创新DCI智能控制器,共筑互联网基础设施新生态

探索专有领域的端到端ASR解决之道

华为云开发者联盟

端到端 ASR 自动语音识别 语境偏移 专有领域

选择排序&插入排序 - DAY 15

Qien Z.

排序算法 插入排序 5月日更

小傅哥,一个有“副业”的码农!

小傅哥

Java 小傅哥 技术成长 码农副业

强化基于位置的4种营销策略

郑州埃文科技

IP 营销 ISP

NUCLEO-L432KC实现ADC配置(STM32L432KC)

不脱发的程序猿

嵌入式 单片机 NUCLEO-L432KC STM32L432KC 光敏电阻传感器

详解RS232、RS485、RS422、串口和握手

不脱发的程序猿

串口 通信总线 RS232、RS485、RS422 握手通信

5G掀起工业互联网浪潮,水泥厂智能管理模式收效颇丰

一只数据鲸鱼

数据可视化 工业互联网 智慧工厂 水泥厂 智能工厂

Cilium 1.10 重磅发布!】支持 Wireguard, BGP, Egress IP 网关, XDP 负载均衡, 阿里云集成

公众号:云原生Serverless

云原生 cilium cni

屏幕共享的实现与应用

anyRTC开发者

音视频 WebRTC RTC sdk

驾云驭能,云科技点燃制造创新之旅!

亚马逊云科技 (Amazon Web Services)

腾讯云实名认证流程

三掌柜

5月日更

详解 WebRTC 高音质低延时的背后 — AGC(自动增益控制)

阿里云CloudImagine

阿里云 WebRTC 3A算法 音频技术 视频云

☕【JVM 技术之旅】深入JVM原理分析synchronized

码界西柚

synchronized 重量级锁 5月日更 同步锁 ObjectMontior

再不解决延迟不当,小心你的内存被打爆

华为云开发者联盟

线程 延迟 内存 并发 Sleep

Feed流系统重构-架构篇

勇哥java实战分享

架构 RocketMQ 分库分表 ShardingJDBC redisson

密码学系列之:memory-hard函数

程序那些事

加密解密 密码学 程序那些事

通用连接池帮你解决资源管理难题

万俊峰Kevin

MySQL redis mongodb pool Go 语言

ThreadLocal内存溢出代码演示和原因分析!

王磊

Java 多线程

Nginx调试必备的几种技能

运维研习社

nginx 运维 实用技巧 5月日更

CG行业云渲染服务的演进之路

华为云开发者联盟

公有云 CG 渲染 云渲染 影视动画

Druid:一个用于大数据实时处理的开源分布式系统_大数据_李小兵_InfoQ精选文章