原文链接: https://blog.csdn.net/njpjsoftdev/article/details/52956194

Druid使用JSON over HTTP 作为底层的查询语言,不过强大的社区也为我们提供了多种查询方式,比如Python接口pydruid、R接口RDruid、JavaScript接口plywood、类SQL接口plyql、PHP接口druid-php等。

Druid查询目前只支持单表操作,基本涵盖了ANSISQL中常用的查询语句,包括:

聚合类(Aggregation)查询 
时间序列查询 
TopN查询 
GroupBy

元信息(Metadata)类查询 
时间范围查询(数据集最早和最近出现时间点) 
Segment元信息 
DataSource元信息

搜索类(Search)查询(包括Select查询) 
不过Druid目前还不支持JOIN类操作,以上已支持的各类查询的详细说明可以参见:http://druid.io/docs/0.9.1.1/querying/searchquery.html

查询过程 
在介绍BrokerNode中已基本概述了Druid是如何查询集群内的数据。BrokerNode作为集群内查询入口,需要了解数据在集群内的分布情况,才能将查询请求发送给对应的数据节点(包括HistoricalNode和Real-TimeNode),BrokerNode会merge每个节点返回的数据,最终返回给用户。

在这里主要说下带有过滤(filter)的查询请求,我们知道Segments内部存在位图索引,所以数据的过滤操作完全可以转换为bitmap的按位逻辑操作,所以无论是HistoricalNodes还是Real-TimeNodes,都不需要去查看原始数据,只需要通过位图索引的按位逻辑操作,获得符合过滤条件的行号,再取出需要的列返回给Broker即可。

Druid.io系列(五):查询过程的更多相关文章

  1. Sql Server来龙去脉系列之三 查询过程跟踪

    我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...

  2. Druid.io系列(一):简介

    原文链接: https://blog.csdn.net/njpjsoftdev/article/details/52955676 Druid.io(以下简称Druid)是面向海量数据的.用于实时查询与 ...

  3. Druid.io系列(九):数据摄入

    1. 概述 Druid的数据摄入主要包括两大类: 1. 实时输入摄入:包括Pull,Push两种 - Pull:需要启动一个RealtimeNode节点,通过不同的Firehose摄取不同种类的数据源 ...

  4. Druid.io系列(六):问题总结

    原文地址: https://blog.csdn.net/njpjsoftdev/article/details/52956508 我们在生产环境中使用Druid也遇到了很多问题,通过阅读官网文档.源码 ...

  5. Druid.io系列(三): Druid集群节点

    原文链接: https://blog.csdn.net/njpjsoftdev/article/details/52955937 1 Historical Node Historical Node的职 ...

  6. Druid.io系列(二):基本概念与架构

    原文链接:  https://blog.csdn.net/njpjsoftdev/article/details/52955788 在介绍Druid架构之前,我们先结合有关OLAP的基本原理来理解Dr ...

  7. Druid.io系列(八):部署

    介绍 前面几个章节对Druid的整体架构做了简单的说明,本文主要描述如何部署Druid的环境 Imply提供了一套完整的部署方式,包括依赖库,Druid,图形化的数据展示页面,SQL查询组件等.本文将 ...

  8. Druid.io系列(七):架构剖析

    1. 前言 Druid 的目标是提供一个能够在大数据集上做实时数据摄入与查询的平台,然而对于大多数系统而言,提供数据的快速摄入与提供快速查询是难以同时实现的两个指标.例如对于普通的RDBMS,如果想要 ...

  9. Druid.io系列(四):索引过程分析

    原文链接: https://blog.csdn.net/njpjsoftdev/article/details/52956083 Druid底层不保存原始数据,而是借鉴了Apache Lucene.A ...

随机推荐

  1. zabbix_agent中使用.pgpass

    在配置zabbix过程中,使用了.pgpass 原理: psql -h 192.168.5.XXX -p 5433 -d mydb -U postgres 这个时候要输入密码:user_test 但是 ...

  2. Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法

    这里也会遇到一次性关闭所有modal引起阴影遮罩的问题,也就是所有modal都关闭了,但是主页面仍然被阴影遮罩. 这个问题从哪来的,是因为modal叠加,我们点击窗口之外的空白部分,一次性关闭所有mo ...

  3. http和https区别

    超文本传输协议 HTTP 协议被用于在 Web 浏览器和网站服务器之间传递信息,HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了 Web 浏览器和网站服务器之间的传输报文, ...

  4. js函数的伪重载

    这也是今天写东西是遇到的一个问题,导致我联想起了函数重载的问题. 在javascript中是没有函数重载机制的,对于用惯了java开发的同学可能就表示吃惊了,我屮艸芔茻,函数 没有重载?那怎么搞?!! ...

  5. Lodash 浓缩

    Lodash 是个十分有用的工具库,但我们往往只需要其中的一小部分函数.这时,整个 lodash 库就显得十分庞大,我们需要减小 lodash 的体积. cherry-pick 方法 Lodash 官 ...

  6. JVM原理二----JAVA虚拟机体系结构

    组成: 指令集,寄存器,栈,无用单元收集(GC),方法区域.JAVA核心 1,指令集:这个不太清楚 2,寄存器:和处理器中的寄存器类似 pc:Java程序计数器. optop:指向*作数栈顶端的指针. ...

  7. BZOJ4237 稻草人 【CDQ分治】

    Description JOI村有一片荒地,上面竖着N个稻草人,村民们每年多次在稻草人们的周围举行祭典. 有一次,JOI村的村长听到了稻草人们的启示,计划在荒地中开垦一片田地.和启示中的一样,田地需要 ...

  8. CALayer2-创建新的层

    本文目录 一.添加一个简单的图层 二.添加一个显示图片的图层 三.为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UIColor和UIImage? 四.UIV ...

  9. pat乙级 1091 N-自守数 (15 分)

    如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”.例如 3×92​2​​=25392,而 25392 的末尾两位正好是 92,所以 92 是一个 3-自守 ...

  10. bad ELF interpreter

    安装JDK的时候遇到的问题,  多半是64位的系统安装了32位的软件导致的