durid 概念

作者: 搞什么呀 | 来源:发表于2018-02-02 11:11 被阅读0次

概念

druid是基于olap的数据库查询系统。有点类似现在开源的kylin。下面我先简单介绍druid的一下基本概念,一些我认为需要重点展开和了解的,在后面会有章节具体介绍。

数据结构

druid里面的存储的数据结构,我直接拿了官方的例子

熟悉olap概念的话,可以看到上面的数据可以分成三部分,分别是

Timestamp column:时间戳列,我们所有的查询都需要围绕这个时间去做

Dimension columns: 维度列,publisher, advertiser, gender, and country这几个字段都属于这部分,通俗点就是作为你的查询条件的并且不需要做聚合运算的字段。

Metric columns:度量列,如果你需要对click和price做求和或者其他聚合运算的话,是可以把这些字段作为度量列的。

分片

上面说明了druid它的数据的一个表现形式,现在就来了解一下它的存储方式。 

druid它是按照一个个分片(segment)来存储的,这个和elasticsearch是类似的,目前我们使用的话,是按照天来划分的,也就说timeStamp在同一天的话会分配到同一个分片里面,这个粒度可以根据你们数据量大小做调整,官方是建议一个分片的大小在700m左右。 

dataSource_interval_version_partitionNumber 这个是分片的命名的格式。

roll-up

在大部分时候,druid获取的每条的数据的详情你是不关心的,你需要的是在某个粒度下某些维度聚合后的结果。类似下面这种结果

这样的话,你就可以大大的节省存储空间,查询速度也会有大大的提高,当然损失的就是你查不了每条原始数据了。以上都可以通过配置文件配置,后面会专门说明这块。

数据查询

durid原始支持http请求查询,也提供了其它语言的查询接口,具体可用到官方文档查http://druid.io/libraries.html

druid 集群

druid集群只要以下不同类型的节点组成,每个节点负责的事情也不一样。

Historical Nodes :历史数据节点的主要是通过zk获得自己需要的元数据,然后去下载或者删除相关的分片,并负责响应来自broker查询的请求

Broker Nodes:接受来做客户端的查询请求,分析请求后,把请求分发到对应分片的历史数据节点或者实时节点,响应返回后再对结果进行合并。

Coordinator Nodes :负责管理存放在历史数据节点的分片数据,管理分片的分配。

Real-time Processing:实时处理节点,可以由自带的realtime nodes 或者  indexing service去做,主要职责是负责实时数据的摄取,为数据创建索引,将处理好的数据发往历史数据节点,接收来自broker的查询请求。

安装

druid原生的安装过程比较繁琐,所以用的是一个叫imply的安装包,基本上一键安装。地址 

https://docs.imply.io/

这样的话,你就可以大大的节省存储空间,查询速度也会有大大的提高,当然损失的就是你查不了每条原始数据了。以上都可以通过配置文件配置,后面会专门说明这块。

数据查询

durid原始支持http请求查询,也提供了其它语言的查询接口,具体可用到官方文档查http://druid.io/libraries.html

druid 集群

druid集群只要以下不同类型的节点组成,每个节点负责的事情也不一样。

Historical Nodes :历史数据节点的主要是通过zk获得自己需要的元数据,然后去下载或者删除相关的分片,并负责响应来自broker查询的请求

Broker Nodes:接受来做客户端的查询请求,分析请求后,把请求分发到对应分片的历史数据节点或者实时节点,响应返回后再对结果进行合并。

Coordinator Nodes :负责管理存放在历史数据节点的分片数据,管理分片的分配。

Real-time Processing:实时处理节点,可以由自带的realtime nodes 或者  indexing service去做,主要职责是负责实时数据的摄取,为数据创建索引,将处理好的数据发往历史数据节点,接收来自broker的查询请求。

安装

druid原生的安装过程比较繁琐,所以用的是一个叫imply的安装包,基本上一键安装。地址 

https://docs.imply.io/

相关文章

  • durid 概念

    概念 druid是基于olap的数据库查询系统。有点类似现在开源的kylin。下面我先简单介绍druid的一下基本...

  • Druid推荐配置

    Durid 和SpringBoot整合配置

  • Durid+springboot

    DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时...

  • Durid+MSSQL

    1,MSSQL驱动 MSSQL驱动版本不正确,报错:不支持“variant”数据类型 参考:尽量到仓库里找较新版本...

  • 第四章 SpringBoot集成Druid

    一、引入jdbc启动器和mysql驱动以及durid的依赖 二 基于druid starter的自动配置 三 基于...

  • spring boot 集成Durid

    介绍:使用springboot集成数据库连接池druid。 durid:Druid是Java语言中最好的数据库连接...

  • durid参数配置参考

    附加一张连接池和jdbc driver的交互说明

  • druid与mybatisplus 3.2 LocalDateT

    最近新项目使用mybatisplus和druid,发现报错了,网上找原因原来是durid兼容问题,之前用druid...

  • Durid abandon connection错误分析

    最近线上碰到一个问题,提示放弃数据库连接 spring事务的执行有以下几个步骤 1:获取连接 Connection...

  • SpringBoot 2.0 集成Atomikos、Durid

    使用JTA处理分布式事务 Spring Boot通过Atomkos或Bitronix的内嵌事务管理器支持跨多个XA...

网友评论

    本文标题:durid 概念

    本文链接:https://www.haomeiwen.com/subject/jdbszxtx.html