跳转到主要内容

赋能实时分析与数据应用

Apache Druid 是一款数据库,最常用于对实时摄入、快速查询性能和高可用性有要求的场景。因此,Druid 通常被用来支撑分析型应用的图形用户界面(GUI),或作为需要快速聚合的高并发 API 的后端。Druid 最适合处理面向事件的数据。

如果您正在尝试 Druid 的新用例,或者对 Druid 的功能和特性有疑问,欢迎加入 Apache Druid Slack 频道!在那里,您可以与 Druid 专家交流、提问并获得实时帮助。

常见用例示例

用户活动与行为

Druid 常用于处理点击流、视图流和活动流。具体用例包括衡量用户参与度、跟踪产品发布的 A/B 测试数据以及了解使用模式。

Druid 可以计算用户指标,例如精确去重计数或近似去重计数。这意味着像“日活跃用户”这样的指标可以在一秒内得出近似结果(平均准确率 98%)以查看总体趋势,也可以计算精确值以呈现给核心利益相关者。此外,Druid 还可用于漏斗分析,并衡量有多少用户执行了某个操作但未执行另一个操作。此类分析对于跟踪产品用户注册非常有用。

Druid 的搜索和过滤功能支持对用户进行快速、简便的下钻分析,涵盖任何属性组合。您可以按年龄、性别、地理位置等多种维度衡量和比较用户活动。

网络流量

Druid 常用于收集和分析网络流量。Druid 可用于按任意属性组合对流量数据进行切片和切块(slice and dice)。

Druid 通过摄入海量流量记录,并在查询时以交互速度对数十个属性进行分组或排序,从而辅助网络流量分析。这些属性通常包括 IP 和端口等核心属性,以及通过增强手段添加的属性,如地理位置、服务、应用程序、设施和 ASN。Druid 处理灵活模式的能力意味着您可以添加所需的任何属性。

数字营销

Druid 常用于存储和查询在线广告数据。这些数据通常来自广告服务器,对于衡量和理解广告活动表现、点击率、转化率(流失率)等至关重要。

Druid 最初的设计初衷就是为面向用户的数字广告数据分析应用提供支撑。Druid 在此类数据处理方面拥有丰富的生产实践经验,全球最大的用户在数千台服务器上存储了 PB 级的数据。

Druid 可用于计算展示量、点击量、eCPM 以及关键转化指标,并按发布商、广告活动、用户信息以及数十个其他维度进行过滤,从而支持完整的切片和切块功能。

应用性能管理

Druid 常用于跟踪应用程序生成的运营数据。与“用户活动”用例类似,这些数据可以关于用户如何与应用程序交互,也可以是应用程序自身发出的指标。Druid 可用于深入研究应用程序不同组件的性能表现、识别瓶颈并排除故障。

与许多传统解决方案不同,Druid 对数据量、复杂性和吞吐量几乎没有限制。您可以快速分析包含数千个属性的应用程序事件,并计算关于负载、性能和使用情况的复杂指标。例如,根据第 95 百分位(P95)查询延迟对 API 端点进行排序,并根据一天中的时间、用户画像或数据中心位置等任意即时属性集,对这些指标的变化进行切片和切块分析。

物联网(IoT)与设备指标

Druid 可用作服务器和设备指标的时序解决方案。实时摄入机器生成的数据,并执行快速的即时分析,以衡量性能、优化硬件资源或识别问题。

与许多传统时序数据库不同,Druid 的核心是一个分析引擎。它结合了时序数据库、列式分析数据库和搜索系统的理念,在一个系统中支持基于时间的划分、列式存储和搜索索引。这意味着基于时间的查询、数值聚合以及搜索和过滤查询都极其迅速。

您可以在指标中包含数百万个唯一的维度值,并对任意维度组合进行分组和过滤(Druid 中的维度类似于时序数据库中的标签)。您可以对标签进行分组和排序,并计算各种复杂指标。此外,您搜索和过滤标签值的速度比在传统时序数据库中快几个数量级。

联机分析处理(OLAP)与商业智能(BI)

Druid 常用于 BI 用例。各组织部署 Druid 是为了加速查询并赋能应用程序。与 Presto 或 Hive 等 SQL-on-Hadoop 引擎不同,Druid 专为高并发和亚秒级查询而设计,能够通过 UI 支持交互式数据探索。总体而言,这使得 Druid 更适合真正的交互式可视化分析。

如果您需要开发面向用户的应用程序,并希望用户能够进行自助式的下钻查询,那么 Druid 是绝佳选择。您既可以使用 Druid 的 API 开发自己的应用程序,也可以使用许多现成的、与 Druid 兼容的应用程序