通过上篇博客,我们已经简单认识了InfluxDB了,其实在实际使用中,我们最常用的就是查询了,这篇博客就详细了解下InfluxDB的查询操作

一、常用查询

1、从单个measurement查询所有的field和tag

SELECT * FROM measurement_name where tag='serverA'

2、从单个measurement查询所有的field

SELECT *::field FROM measurement_name

3、从单个measurement查询特定的field和tag

SELECT "tag_name","tag_name","field_name" FROM measurement_name

4、从多个measurement中查询数据

select * from "measurement_name","measurement_name1"

5、模糊查询
(1)前缀匹配

select * from measurement_name where field=~/^给定字段/

(2)后缀匹配

select * from measurement_name where field=~/给定字段$/

(3) 包含

select * from measurement_name where field=~/给定字段/

二、select语句常见的问题

1、select查询时,至少要有一个field key,单独查tag是不可以的
2、查看tag的值用show

show tag values from "measurement_name" with key="tag_name"

3、 查询的字段值是字符串类型的,需要加单引号
4、查询的字段名是特别的(比如字段名与Influx的关键词一样),需要加双引号

三、常用函数
(1)count()函数
作用:返回一个(field)字段中的非空值的数量

SELECT COUNT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(2)DISTINCT()函数
作用:返回一个字段(field)的唯一值

SELECT DISTINCT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(3)MEAN() 函数
作用:返回一个字段(field)中的值的算术平均值(平均值)。字段类型必须是长整型或float64。

SELECT MEAN(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(4)MEDIAN()函数
作用:从单个字段(field)中的排序值返回中间值(中位数)。字段值的类型必须是长整型或float64格式。

SELECT MEDIAN(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(5)SPREAD()函数
作用:返回字段的最小值和最大值之间的差值。数据的类型必须是长整型或float64。

SELECT SPREAD(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(6)SUM()函数
作用:返回一个字段中的所有值的和。字段的类型必须是长整型或float64。

SELECT SUM(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(7)BOTTOM()函数
作用:返回一个字段中最小的N个值。字段类型必须是长整型或float64类型。

SELECT BOTTOM(<field_key>[,<tag_keys>],<N>)[,<tag_keys>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(8)FIRST()函数
作用:返回一个字段中最老的取值。

SELECT FIRST(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(9)LAST()函数
作用:返回一个字段中最新的取值。

SELECT LAST(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(10)MAX()函数
作用:返回一个字段中的最大值。该字段类型必须是长整型,float64,或布尔类型。

SELECT MAX(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(11)MIN()函数
作用:返回一个字段中的最小值。该字段类型必须是长整型,float64,或布尔类型。

SELECT MIN(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(12)PERCENTILE()函数
作用:返回排序值排位为N的百分值。字段的类型必须是长整型或float64。

SELECT PERCENTILE(<field_key>, <N>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(13)DERIVATIVE()函数
作用:返回一个字段在一个series中的变化率。
InfluxDB会计算按照时间进行排序的字段值之间的差异,并将这些结果转化为单位变化率。其中,单位可以指定,默认为1s。

SELECT DERIVATIVE(<field_key>, [<unit>]) FROM <measurement_name> [WHERE <stuff>]

其中,unit取值可以为以下几种:

u --microsecondss --secondsm --minutesh --hoursd --daysw --weeks
DERIVATIVE()函数还可以在GROUP BY time()的条件下与聚合函数嵌套使用,格式如下:

SELECT DERIVATIVE(AGGREGATION_FUNCTION(<field_key>),[<unit>]) FROM <measurement_name> WHERE <stuff> GROUP BY time(<aggregation_interval>)

(14)DIFFERENCE()函数
作用:返回一个字段中连续的时间值之间的差异。字段类型必须是长整型或float64。

SELECT DIFFERENCE(<field_key>) FROM <measurement_name> [WHERE <stuff>]

与GROUP BY time()以及其他嵌套函数一起使用的语法格式:

SELECT DIFFERENCE(<function>(<field_key>)) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)

其中,函数可以包含以下几个:

COUNT(), MEAN(), MEDIAN(),SUM(), FIRST(), LAST(), MIN(), MAX(), 和 PERCENTILE()。

(15)ELAPSED()函数
作用:返回一个字段在连续的时间间隔间的差异,间隔单位可选,默认为1纳秒。

SELECT ELAPSED(<field_key>, <unit>) FROM <measurement_name> [WHERE <stuff>]

(16)MOVING_AVERAGE()函数
作用:返回一个连续字段值的移动平均值,字段类型必须是长整形或者float64类型。

SELECT MOVING_AVERAGE(<field_key>,<window>) FROM <measurement_name> [WHERE <stuff>]

与其他函数和GROUP BY time()语句一起使用时的语法

SELECT MOVING_AVERAGE(<function>(<field_key>),<window>) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)

此函数可以和以下函数一起使用:

COUNT(), MEAN(),MEDIAN(), SUM(), FIRST(), LAST(), MIN(), MAX(), and PERCENTILE().

(17)NON_NEGATIVE_DERIVATIVE()函数
作用:返回在一个series中的一个字段中值的变化的非负速率。
SELECT NON_NEGATIVE_DERIVATIVE(<field_key>, []) FROM <measurement_name> [WHERE ]

与聚合类函数放在一起使用时的语法如下所示:

SELECT NON_NEGATIVE_DERIVATIVE(AGGREGATION_FUNCTION(<field_key>),[<unit>]) FROM <measurement_name> WHERE <stuff> GROUP BY time(<aggregation_interval>)

此函数与DERIVATIVE()函数类似

(18)STDDEV()函数
作用:返回一个字段中的值的标准偏差。值的类型必须是长整型或float64类型。

SELECT STDDEV(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

【大数据】InfluxDB的常用查询及常用函数相关推荐

  1. 05.SQL Server大数据群集小试牛刀--HDFS查询

    05.SQL Server大数据群集小试牛刀--HDFS查询 SQL Server大数据群集查询HDFS ,利用之前创建好的大数据群集,使用官方提供的测试数据进行测试.脚本是官方的脚本,要知道干了什么 ...

  2. 大数据江湖之即席查询与分析(上篇)--即席查询与分析的前世今生

    如今,大数据领域新技术层出不穷,可谓百家争鸣,甚是红火.不乏有些玩家动辄搞出个大数据平台,可谓包罗万象,号称无所不能.小弟则以为在大数据江湖中如能修炼好独门绝技,有能拿得出手的看家本领已然实属不易.小 ...

  3. 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo

    上篇小弟分享了几个"即席查询与分析"的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的"手把手教你搭建即席查询与分析Demo"啥时候能出?说到就得 ...

  4. 大数据技术分享:hive内部常用函数都有哪些?

    小伙伴们在进行大数据的数据仓库分析时可能会用到hive这个工具,经常用来编写hql语句进行数据分析.今天小千就来给大家介绍十个经常会在开发过程中用到的函数和使用实例,记得收藏起来. 1.随机函数ran ...

  5. 大数据的分布式SQL查询引擎 -- Presto的详细使用

    Presto – Distributed SQL Query Engine for Big Data 官网 项目源码 官方文档 目录 1 Presto 概述 2 概念 2.1 服务进程 2.2 数据源 ...

  6. Mybatis-plus 大数据量数据流式查询通用接口

    文章目录 一.案例需求 二.使用案例: 2.1. 自定义查询接口 2.2. 逻辑处理类 2.3. 调用案例 2.4. 具体逻辑处理案例 三.企业案例 3.1. key名称获取 3.2. 逻辑类测试 3 ...

  7. 大数据江湖之即席查询与分析(中篇)--即席查询与分析的典型场景

    上篇提到了大数据做数据分析的三种最为典型计算模式:批处理(Batch),即席查询与分析(Ad-hoc),流计算(Stream):对于批处理和流计算,虽然小弟也略知一二,早在Hive还没出来之前,也是从 ...

  8. 【若泽大数据实战第十九天】Hive 函数UDF开发以及永久注册udf函数

    前言: 回顾上期课程,上次课我们讲了聚合函数,多进一出, 分组函数  group by,出现在select里面的字段除了分组函数之外,其他都要出现在group by里面,分组函数的过滤必须使用hivi ...

  9. 大数据培训课程之RDD中的函数传递

    RDD中的函数传递 在实际开发中我们往往需要自己定义一些对于RDD的操作,那么此时需要主要的是,初始化工作是在Driver端进行的,而实际运行程序是在Executor端进行的,这就涉及到了跨进程通信, ...

最新文章

  1. 算法笔记-判断链表保存的字符串是否是回文
  2. Java判断一个数是否是回文数
  3. python graphviz工具的使用
  4. mysql数据库优化韩顺平_韩顺平 Mysql数据库优化(一) 优化概述
  5. php怎么添加验证码,PHP添加验证码以及使用
  6. js动态增加,删除td,tr,table,div
  7. 服务器控件转换成HTML
  8. 【AI视野·今日CV 计算机视觉论文速览 第212期】Thu, 3 Jun 2021
  9. 【tarjan缩点】受欢迎的牛
  10. python 多线程伪_Python每日3题什么是死锁?
  11. 项目进度计划检查方法与项目进度管理相关模版表单(干货+资料)
  12. IntelliJ IDEA主题选择
  13. windows server 开机自动启动项
  14. Deadlock found when trying to get lock; try restarting transaction 【MySQL死锁问题解决】
  15. 安装 emoji 字体
  16. 队爷的讲学计划(tarjan +拓扑排序)
  17. android动画知乎,GitHub - ryanhoo/Zhihu-Parallax-Animation: 知乎 Android 客户端启动页的视差动画效果实现...
  18. MySQL约束条件和多表查询方式详解
  19. 三角函数π/2转化_人工智能数学基础1:三角函数的定义、公式及固定角三角函数值...
  20. php视频转mp4软件,3gp mp4视频转换免费软件 3gp如何转mp4

热门文章

  1. 生成图像质量和多样性的评估方法
  2. js 导出excels
  3. 如何开发一个简单的智能对话查询工具
  4. 电脑风扇声音大怎么办
  5. 解决Apache提示没有权限访问的问题
  6. 利用phantomjs模拟QQ自动登录
  7. 信息世界中的基本概念
  8. 什么是SSCC-18条形码
  9. java 生成对称密钥_Java中创建对称密钥的代码
  10. 有点牛~前端刚毕业拿20K,班级均薪高达11K