概述
Druid主要用于存储、查询和分析大型事件流。 事件流的示例包括用户生成的数据,例如点击流,应用生成的数据,例如性能指标,以及机器生成的数据,例如网络流量和服务器指标。Druid对钻取、搜索、过滤、聚合切片切块数据的亚秒级查询进行了优化。 Druid通常用于性能、并发性和正常运行时间很重要的交互式应用程序。
Druid最初是为可扩展的,可视化的多租户应用程序而创建的,用户不仅可以快速切片和切块数据来创建临时报告,还可以交互式地探索数据以快速确定模式和异常的根本原因。Druid是为了支持亚秒级查询而从头开始设计的,这在交互式应用中至关重要,因为据可靠的研究表明,如果响应花费的时间超过一秒,人类就会分心并失去思路。
设计
Druid的核心设计结合了OLAP /分析数据库,时间序列数据库和搜索系统的创意,为运营分析创建了统一的系统。 核心设计理念包括:
- 列式存储
- Druid单独存储和压缩每个列,只需要读取特定查询所需的列,这些查询支持快速扫描,排序和分组。
- 本地查询索引
- Druid为字符串值创建反向索引,以便快速搜索和过滤。
- 获取流式和批量数据
- 适用于Apache Kafka,HDFS,AWS S3,流处理器等的开箱即用连接器。
- 架构灵活
- Druid优雅地处理了动态的数据格式和嵌套型数据。
- 时间优化分区
- Druid智能地按时间对数据分区,基于时间的查询明显比传统数据库快得多。
- 支持SQL
- 除了基于JSON的原生语言外,Druid还通过HTTP或JDBC表达SQL。
- 可水平扩展
- Druid已经在生产上支持对保留数年的每秒数百万事件的数据进行亚秒级查询。
- 易于操作
- 只需添加或删除服务器即可向上或向下扩展,Druid会自动重新平衡负载。 容错架构的路由设计可以绕过服务器故障。
要了解更多信息,可以阅读技术页面.
用例
Druid在世界领先企业生产中得到了验证,其中最大的计算站拥有超过一千台服务器,每秒摄取超过1000万个事件,并且每秒支持数千个并发查询。 Druid通常用于:
- 性能分析
- 创建具有完全向下钻取功能的交互式仪表板。 分析数字产品的性能,跟踪移动应用程序使用情况或监控站点可靠性。
- 诊断问题
- 找出问题的根本原因。 解决网络流量瓶颈问题,分析安全威胁或诊断软件崩溃。
- 寻找共性
- 查找事件中的通用属性。 识别缺陷产品的工有部分,或确定性能最佳产品的模型。
- 提高效率
- 改善产品参与度。 优化数字营销广告系列中的广告支出或提高在线产品的用户参与度。
要了解更多信息,可以阅读用例页面。
更多详情
- 快速入门
- 几分钟即可开始使用Druid。 加载您自己的数据并进行查询。
- 可视化
- 常见问题
- 了解一些关于Druid的最常见问题。