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

    你可能感兴趣的文章
    Objective-C实现eulerianPath欧拉路径算法(附完整源码)
    查看>>
    Objective-C实现EulersTotient欧拉方程算法(附完整源码)
    查看>>
    Objective-C实现eval函数功能(附完整源码)
    查看>>
    Objective-C实现even_tree偶数树算法(附完整源码)
    查看>>
    Objective-C实现Exceeding words超词(差距是ascii码的距离) 算法(附完整源码)
    查看>>
    Objective-C实现extended euclidean algorithm扩展欧几里得算法(附完整源码)
    查看>>
    Objective-C实现Factorial digit sum阶乘数字和算法(附完整源码)
    查看>>
    Objective-C实现factorial iterative阶乘迭代算法(附完整源码)
    查看>>
    Objective-C实现factorial recursive阶乘递归算法(附完整源码)
    查看>>
    Objective-C实现factorial阶乘算法(附完整源码)
    查看>>
    Objective-C实现Fast Powering算法(附完整源码)
    查看>>
    Objective-C实现fenwick tree芬威克树算法(附完整源码)
    查看>>
    Objective-C实现FenwickTree芬威克树算法(附完整源码)
    查看>>
    Objective-C实现fft2函数功能(附完整源码)
    查看>>
    Objective-C实现fibonacci斐波那契算法(附完整源码)
    查看>>
    Objective-C实现FigurateNumber垛积数算法(附完整源码)
    查看>>
    Objective-C实现first come first served先到先得算法(附完整源码)
    查看>>
    Objective-C实现Gale-Shapley盖尔-沙普利算法(附完整源码)
    查看>>
    Objective-C实现hamiltonianCycle哈密尔顿图算法(附完整源码)
    查看>>
    Objective-C实现hamming numbers汉明数算法(附完整源码)
    查看>>