Druid学习笔记-技术

    原文:http://druid.io/technology

    Druid是一个开源的分布式数据存储。 Druid的核心设计结合了OLAP /分析数据库时序数据库搜索系统的创意,为运营分析创建统一的系统。

    Druid将3个系统的主要特性整合到了自己的数据采集层,存储格式,查询层和核心架构中。

集成

    Druid是Apache软件基金会众多开源数据技术的补充,包括Apache Kafka,Apache Hadoop,Apache Flink等。

    Druid在调用“索引”的过程中将存储在源中的原始数据转换为更有利于读取的格式(称为Druid“片段”)。

存储:

    与许多分析型数据存储一样,Druid将数据按列存储。 根据列的类型(字符串,数字等),应用不同的压缩和编码方法。 Druid还可以根据列类型来构建不同类型的索引。

    与搜索系统类似,Druid为字符串列构建反向索引以进行快速搜索和过滤。 与时序数据库类似,Druid会按时间智能地对数据进行分区,以实现面向时间的快速查询。

    与许多传统的系统不同,Druid可以选择在收集数据时预先聚合数据。 这个预聚合步骤称为汇总,可以节省大量存储空间。

查询:

    Druid支持通过JSON-over-HTTPSQL查询数据。 除了标准的SQL运算符之外,Druid还支持使用其近似算法套件提供快速计数,排名和分位数的独特运算符。

架构:

    Druid可以被认为是一个可分解的数据库。 Druid中的每个核心进程(采集,查询和协调)可以单独或联合部署在商用硬件上。

    Druid明确命名了每个主进程,以允许操作员根据用例和工作负载微调每个进程。 例如,如果工作负载需要,操作员可以为Druid的采集进程投入更多资源,同时为Druid的查询进程提供更少的资源。

    Druid可以在单个进程失败的情况下而不影响其他进程的操作(容错机制)。

操作:

    Druid旨在为需要每周7天,每天24小时运行的应用程序提供支持。 因此,Druid具有一下几个功能,以确保正常运行时间和数据丢失。

  • 数据复制
    • Druid中的所有数据都被复制了可配置的次数,因此单个服务器故障对查询没有影响。
  • 独立进程
    • Druid明确地命名其所有主要进程,并且可以根据用例对每个进程进行微调。 独立的进程可以在失败时不会影响其他进程。 例如,如果采集进程失败,则系统中不会加载新数据,但现有数据仍可查询。
  • 自动数据备份
    • Druid自动将所有索引数据备份到文件系统,如HDFS。 您可能会丢失整个Druid群集,并从这个备份数据中快速恢复。
  • 滚动更新
    • 您可以不停机更新Burid群集,并且通过滚动更新不会对最终用户产生影响。 所有Druid版本都向后兼容以前的版本。
  • 可水平扩展
    • Druid通过向群集添加新服务器进行扩展。 随着数据量或群集使用量的增长,可以添加资源以确保性能和稳定性不受影响。
  • 易于操作
    • 只需添加或删除服务器即可向上或向下扩展,Druid会自动重新平衡。 容错的架构设计使得路由可以绕过故障的服务器。
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值