博客
关于我
什么是Druid
阅读量:458 次
发布时间:2019-03-06

本文共 1533 字,大约阅读时间需要 5 分钟。

Druid是什么

Druid(德鲁伊)是一种开源的分布式支持实时数据分析的数据存储系统,由MetaMarkets于2011年创建,2012年开源。它专为在线媒体公司提供实时数据服务,解决传统数据库在大数据量查询性能方面的不足。

Druid最初由MetaMarkets开发,后由Apache孵化,目前托管于GitHub,已获得Apache License 2.0授权。与阿里开源的Druid数据库不同,本文提到的Druid是Apache Druid。

Druid特性与基本概念

Druid旨在解决传统数据库无法处理的大数据量查询性能问题。其核心功能包括快速的数据聚合与OLAP查询,支持多租户架构,适合用户分析应用。

Druid特性

  • 快速查询:Druid支持快速聚合和OLAP查询,数据聚合粒度可设置为1分钟、5分钟、1小时或1天等。内存化数据存储显著提升查询速度。

  • 实时数据注入:支持流数据注入,提供事件驱动架构,确保实时与离线环境下的数据一致性和实效性。历史数据不变,实时数据实时接入。

  • 可扩展的PB级存储:集群架构可轻松扩展至PB级别,每秒百万级别数据注入。即使数据规模扩大,仍能保证查询效率。Druid按时间范围分区处理聚合数据。

  • 多环境部署:适用于商业硬件、云环境及多种数据系统(如Hadoop、Spark、Kafka、Storm、Samza等)注入数据。

  • 丰富的社区支持:拥有活跃的开发者社区,便于学习与交流。

  • Druid与其他OLAP方案对比

    Druid在性能、扩展性和实时性方面优于传统OLAP方案。其优势体现在以下几个方面:

    • 高性能:支持亚秒级查询,处理大规模数据。
    • 灵活性:支持多种数据源与存储方式。
    • 可扩展性:集群架构可根据需求自动扩展。

    使用场景

    Druid适用于以下场景:

    • 查询多修改少:适合对数据进行聚合或分组操作的场景。
    • 快速查询:对查询速度有较高要求的场景。
    • 离线与实时数据源:需要同时支持离线与实时数据源的场景。

    Druid在实时计算中表现尤为突出,常用于实时报表、实时大屏等场景。

    基本概念

    Druid的数据模型基于时间、维度和指标三大核心概念。

    1. 数据格式

    • 时间列(TimeStamp):用于定义时间范围,Druid会将相近时间数据聚合在一起。
    • 维度列(Dimension):作为统计维度,用于标识数据类别。
    • 指标列(Metric):用于存储可聚合数据,如计数、求和等。

    2. 数据摄入

    Druid支持实时与批量数据摄入,适用于流数据与静态数据源。

    3. 数据查询

    Druid支持两种查询方式:

    • 原生查询:通过JSON格式发送HTTP请求。
    • SQL查询:支持类似SQL语句的查询,适合熟悉数据库查询方式的用户。

    Druid应用场景

    Druid广泛应用于多个领域:

    • 点击流分析:网络和移动应用的用户行为分析。
    • 风险/欺诈分析:识别异常行为模式。
    • 网络遥测分析:监控网络性能指标。
    • 服务器指标存储:存储服务器运行状态数据。
    • 供应链分析:制造企业的生产指标追踪。
    • 应用程序性能监控:监控应用运行状态。
    • 商业智能/OLAP:提供数据分析支持。

    用户行为分析

    Druid用于点击流、视图流及活动流分析,能够准确或近似计算用户指标,帮助运营部门识别用户趋势。

    数字营销

    Druid用于存储和查询在线广告数据,分析广告系列效果,包括点击率、转化率等关键指标。

    OLAP和BI

    Druid结合BI功能,适用于高并发与亚秒级查询的场景,可通过交互式UI进行数据探索。

    总结

    在实时计算日益普及的今天,Druid凭借其高性能和OLAP优势,在实时BI、大屏展示等领域展现出独特优势。静下心来,持续提升自己,Druid将继续在数据分析领域发光发热!

    转载地址:http://mvrfz.baihongyu.com/

    你可能感兴趣的文章
    Plotly:如何从 x 轴删除空日期?
    查看>>
    Plotly:如何从单条迹线制作堆积条形图?
    查看>>
    Plotly:如何以 Root 样式绘制直方图,仅显示直方图的轮廓?
    查看>>
    Plotly:如何使用 Plotly Express 组合散点图和线图?
    查看>>
    Plotly:如何使用 plotly.graph_objects 和 plotly.express 定义图形中的颜色?
    查看>>
    Plotly:如何使用 Python 对绘图对象条形图进行颜色编码?
    查看>>
    Plotly:如何使用 updatemenus 更新一个特定的跟踪?
    查看>>
    Plotly:如何使用长格式或宽格式的 pandas 数据框制作线图?
    查看>>
    Plotly:如何向烛台图添加交易量
    查看>>
    Plotly:如何在 plotly express 中找到趋势线的系数?
    查看>>
    Plotly:如何在桑基图中设置节点位置?
    查看>>
    pm2 start命令中的json格式详解
    查看>>
    pm2启动报错
    查看>>
    pm2通过配置文件部署nodejs代码到服务器
    查看>>
    PML调用PDMS内核命令研究
    查看>>
    PMM安装-第一篇
    查看>>
    PMP知识要点(第九章)
    查看>>
    PNETLab 镜像包官方下载太慢?不急,最新版本PNET_4.2.10分享!
    查看>>
    POCO库中文编程参考指南(4)Poco::Net::IPAddress
    查看>>
    Quartz基本使用(二)
    查看>>