博客
关于我
什么是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初步学习-python数据类型-集合(set)
    查看>>
    python列表生成字典_Python中将字典转换为列表的方法
    查看>>
    python列表对应元素合并为列表及判断一个列表是几维
    查看>>
    python列表去重复后按照顺序_从包含不可共元素的Python列表中删除重复元素,同时保留顺序?...
    查看>>
    python列表前几个_python之列表
    查看>>
    python列表元组
    查看>>
    Python列表/元组/字典和集合使用
    查看>>
    python列表 行列选择_python_pandas_dataframe_行列选择_切片操作
    查看>>
    python列表
    查看>>
    python列出当前目录、子目录和文件的脚本
    查看>>
    python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体测管理系统的设计与实现(程序+开题+论文)
    查看>>
    Python切片对象和__getitem__
    查看>>
    python+flask计算机毕业设计高校体育竞赛成绩管理系统的设计与实现(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体育赛事系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体育运动会比赛系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校危化品管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校团委事务管理系统(程序+开题+论文)
    查看>>
    Python切片(%s)
    查看>>
    python+flask计算机毕业设计高校学生选课系统(程序+开题+论文)
    查看>>