Druid简介

Apache Druid是开源的分布式存储,核心设计吸取了数据仓库、时序数据、搜索系统思想,在实时分析体系里面创造了广泛的用户实例。Druid把3个系统的核心优势融入了数据抽取层,存储格式、查询层、核心架构。

特征

Druid的核心优势:

  • 列存储
    Druid每一列单独存储和压缩,因此当查询时只需要读取需要的列来支持快速扫描查询、排序、聚合。
  • 原生的搜索索引
    Druid通过为字符串值创建倒排索引来实现快速的搜索和过滤。
  • 流数据和批数摄取
    对kafka、HDFS、AWS S3,流处理器等连接器开箱即用。
  • 灵活的模式
    Druid优雅的处理演进的模式和嵌套结构的数据。
  • 基于时间优化的分区
    Druid基于时间对数据智能分区,因此基于时间的查询速度比传统的数据极大的提高。
  • 支持SQL
    在jdbc和http上支持原生的json语言和Druid SQL。
  • 横向扩展
    Druid在生产环境支持了每秒摄取100万信息,存储几年的数据,提供压秒级查询。
  • 维护简单
    增加和移除服务器来上线和下线服务,Druid会自动调整。容错的架构容许服务器宕机。

用户实例

  • 实时分析和智能
  • 用户活动和行为
  • 网络流
  • 应用程序性能监控
  • IOT设备指标监控
  • OLAP和商业智能

适合Druid做数据库适用场景:

  • 数据插入多,更新少。
  • 查询数据中大部分是聚合和报表查询,也有搜索和扫描数据。
  • 查询在100ms到几秒钟
  • 数据中有时间(Druid对时间进行了优化和特别的设计)。
  • 每次查询都是在一张大表中的选择部分字段。(不支持join)。
  • 有高基数列(e.g. URLs, user IDs),在此列可以快速的计数和排序。
  • 从Kafka、HDFS、文件系统、Amazon S3摄取数据。

不适合Druid的场景

  • 低延迟更新主键记录。Druid支持流数据,但是不支持流数据更新。(流数据更新可以在后台批量更新)
  • 离线报表系统,你对数据延迟关注度不大。
  • 需要做大的join(实时表之间相互连接),查询需要很长时间完成。

翻译:
https://druid.apache.org/technology
https://druid.apache.org/docs/latest/design/

你可能感兴趣的:(Druid简介)