欢迎访问我的博客,你的支持,是我最大的动力!

druid笔记1-查询语法

Linux 小马奔腾 289℃ 评论
目录:
[显示]

查询语法

查询http请求发送到查询节点(broker node),然后查询节点转发至历史节点(historical node)或实时节点(realtime node)处理,最后合并结果返回

查询基本组件

Filter

过滤器,json对象,对维度进行筛选,表示满足filter的行是需要的数据,类似sql中的where子句

  • selector filter 类似sql中的where key=value
  • regex filter 使用正则,java正则表达式语法
  • logical expression filter 支持and/or/not,允许嵌套
  • search filter 通过字符串匹配,有多种匹配方式,通过query.type指定
  • in filter 类似sql中的in
  • bound filter 比较过滤器,支持字符串比较,默认就是字符串比较,要芀为数字需设置alphaNumeric为true
  • javascript filter 只支持一个入参,即filter里指定的维度值,返回true或false

Aggregator

聚合器

  • count aggregator 计算数据行数
  • sum aggregator 求和

    1、longSum 负责64位有符号整型的求和
    2、doubleSum 负责64位浮点数的求和

  • min/max aggregator 求最小/最大值

    1、doubleMin doubleMax
    2、longMin longMax

  • cardinality aggregator 使用hyperloglog算法计算给定维度集合的基数 基数实际就是 count(distinct(value))
    对单个维度求基数,推荐hyperunique aggregator

  • hyperUnique aggregator 计算指定维度的基数

  • filtered aggretator 只对满足规则的维度进行聚合,可提升聚合效率

  • javascript aggregator 其中指定的列即为function的入参,执行性能会比较慢

Post-Aggregator

可以对Aggregator的结果进行二次加工并输出。最终的输出既包含Aggregator的结果,也包含Post-Aggregator的结果

  • Arithmetic Post-Aggregator 对Agg的结果进行算术运算
  • Field Accessor Post-Aggregator 返回指定Agg的值
  • Constant Post-Aggregator 返回一个常数
  • HyperUnique Cardinality Post-Aggregator 获取HyperUnique Aggretor的结果

Search Query

可以用在 filter 的 search 和 search查询中
定义了几种字符串匹配方式

  • contains 包含 可通过 case_sensitive 指定是否区分大小写
  • insensitive_contains 同 contains但不区分大小写
  • fragment 可以指定多个值,任意匹配一个即可

Interval

指定时间区间 时间格式为ISO-8601 前闭后开
"intervals":["2016-08-28T00:00:00+08:00/2016-08-29T00:00:00+08:00"]

Context

在查询中可指定的参数,若不指定,会使用默认值

 

 

 

转载请注明:轻风博客 » druid笔记1-查询语法

喜欢 (12)or分享 (0)