博客
关于我
什么是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/

    你可能感兴趣的文章
    Python只运行一次while循环
    查看>>
    python变量的详细教程_Python零基础入门教程之语法入门[变量](第二期)
    查看>>
    Python变量命名方法-ChatGPT4o作答
    查看>>
    Python变量与运算符
    查看>>
    Python变量/运算符/函数/模块/string
    查看>>
    python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法
    查看>>
    python系列【仅供参考】:python flask框架 debug功能
    查看>>
    python发送notes邮件_使用python在Lotus Notes中发送邮件
    查看>>
    Python双版本下创建一个Scrapy(西瓜皮)项目
    查看>>
    Python双版本下No module named 'requests'
    查看>>
    python及pycharm2018软件安装教程
    查看>>
    python去重txt文本_Python实现的txt文件去重功能示例
    查看>>
    python去掉列表的逗号,从Python列表项中删除标点符号
    查看>>
    Python卸载所有包
    查看>>
    python单线程下实现多个socket并发
    查看>>
    Python单元测试框架介绍(超详细~)
    查看>>
    Python单元测试框架
    查看>>
    python单元测试之unittest
    查看>>
    Python单元测试unittest实战
    查看>>
    Python单元测试-模拟VS补丁
    查看>>