首先我们向一个表中插入数据,具体格式如下,

插入

insert <measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

顺序为:表名(不存在则直接新建)+tag的key和value,field的key和value。注意中间的空格。

> insert test,host=127.0.0.1,monitor_name=test1,app=ios count=2,num=3
> select * from test
name: test
time                app count host      monitor_name num
----                --- ----- ----      ------------ ---
1585897703920290000     1     127.0.0.1 test
1585897983909417000 ios 2     127.0.0.1 test1        3
1585898383503216000 ios 2     127.0.0.1 test1        3
1585901694441000000 ios 2     127.0.0.1 app1         3
1585901704179677000 ios 2     127.0.0.1 ios1         3

展示tag

> show tag keys from test
name: test
tagKey
------
app
host
monitor_name

从上面可以看到app host monitor_name为tag 而num/count为field

distinct的字段仅是field 不能是tag

##distinct
> select distinct(count) from test
name: test
time distinct
---- --------
0    1
0    2
##distinct 仅仅对field生效,app是tag,不生效,所以没有结果
> select distinct(app) from test
>

在工作中,一个字段经常用来做查询,于是我设置成了tag类型,但是有一个需求是仅仅展示这个tag的value,并且有一些where查询条件,于是我增加了一个冗余的field类型的value1。就是为了满足这个distinct只能是field类型

group by仅是tag 不能是field

## 此时app是tag类型
> select * from test group by app
name: test
tags: app=
time                count host      monitor_name num
----                ----- ----      ------------ ---
1585897703920290000 1     127.0.0.1 test         name: test
tags: app=ios
time                count host      monitor_name num
----                ----- ----      ------------ ---
1585897983909417000 2     127.0.0.1 test1        3
1585898383503216000 2     127.0.0.1 test1        3
>

查询单个tag的value值

##查询所以tag为app的value的值
> show tag values from test with key="app"
name: test
key value
--- -----
app ios
##用下面这种方式,是查询不到app的value值的,app为tag的情况
> select app from test
##但是,当查询的包括tag+field的时候,却可以查询出来
> select app,count from test
name: test
time                app count
----                --- -----
1585897703920290000     1
1585897983909417000 ios 2
1585898383503216000 ios 2

模糊查询

> select * from test
name: test
time                app count host      monitor_name num
----                --- ----- ----      ------------ ---
1585897703920290000     1     127.0.0.1 test
1585897983909417000 ios 2     127.0.0.1 test1        3
1585898383503216000 ios 2     127.0.0.1 test1        3
1585901694441000000 ios 2     127.0.0.1 app1         3
1585901704179677000 ios 2     127.0.0.1 ios1         3
## =~/给定字段/ 包含指定字段的
> select * from test where monitor_name =~/app/
name: test
time                app count host      monitor_name num
----                --- ----- ----      ------------ ---
1585901694441000000 ios 2     127.0.0.1 app1         3
##=~/^给定字段/ 以指定字段开始的
> select * from test where monitor_name =~/^app/
name: test
time                app count host      monitor_name num
----                --- ----- ----      ------------ ---
1585901694441000000 ios 2     127.0.0.1 app1         3
##=~/给定字段$/ 以指定字段结尾的
> select * from test where monitor_name =~/p1$/
name: test
time                app count host      monitor_name num
----                --- ----- ----      ------------ ---
1585901694441000000 ios 2     127.0.0.1 app1         3

分页 limit offset

limit pageSize offset (pageIndex - 1) * pageSize
比如:limit 10 offset 15,就是从第15行开始之后的10条数据

 > select * from test
name: test
time                app count host      monitor_name num
----                --- ----- ----      ------------ ---
1585897703920290000     1     127.0.0.1 test
1585897983909417000 ios 2     127.0.0.1 test1        3
1585898383503216000 ios 2     127.0.0.1 test1        3
1585901694441000000 ios 2     127.0.0.1 app1         3
1585901704179677000 ios 2     127.0.0.1 ios1         3
> select * from test limit 2 offset 2
name: test
time                app count host      monitor_name num
----                --- ----- ----      ------------ ---
1585898383503216000 ios 2     127.0.0.1 test1        3
1585901694441000000 ios 2     127.0.0.1 app1         3
> 

没有IN操作,但是有 OR

influxDB中没有in的操作,但是有or。对于习惯了mysql的in来说,用or就需要在代码中循环了。

> select * from test;
name: test
time                app count host      monitor_name num
----                --- ----- ----      ------------ ---
1585897703920290000     1     127.0.0.1 test
1585897983909417000 ios 2     127.0.0.1 test1        3
1585898383503216000 ios 2     127.0.0.1 test1        3
1585901694441000000 ios 2     127.0.0.1 app1         3
1585901704179677000 ios 2     127.0.0.1 ios1         3
> select * from test where monitor_name = 'test' or monitor_name ='app1'
name: test
time                app count host      monitor_name num
----                --- ----- ----      ------------ ---
1585897703920290000     1     127.0.0.1 test
1585901694441000000 ios 2     127.0.0.1 app1         3

更多:

  • influxdb官网学习教程
  • influxdb官网教程
  • influxdb中文教程
    `

INFLUXDB-influxDB一些查询语法你必须知道相关推荐

  1. Influxdb中Select查询请求结果涉及到的一些数据结构

    女主宣言 本文将给大家介绍的是在Influxdb中Select查询请求结果中涉及到的一些数据结构,对于Influxsql的查询语句不太熟悉的同学,可以在先了解了解: https://docs.infl ...

  2. Grafana教程(prometheus 基本查询语法,alerting报警)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 prometheus原理可以参考:https://blog.csdn.net/luanpeng825485697/article/details/82 ...

  3. 2021年大数据Hive(四):Hive查询语法

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 hive查询语法 一.SELECT语句 1.语句结构 2.全表查 ...

  4. lucene查询语法,适用于ELk:kibana查询

    lucene查询语法,适用于ELk:kibana查询 Kibana在ELK中扮演着数据可视化角色,用来查询及展示数据: Elasticsearch查询采用的是luncene搜索引擎,其4过滤查询语法和 ...

  5. 数据蒋堂 | JOIN延伸 - 维度查询语法

    来源:数据蒋堂 作者:蒋步星 本文长度为1320字,建议阅读3分钟 本文为你讲解JOIN延伸之维度查询语法. 有了维度定义后,我们就可以来梳理前面讲过的简化JOIN语法了. 先定义字段维度: 维度字段 ...

  6. 全文检索4.5查询语法

    一 语法概要 select域名, 域名@Seg from 索引库名称 where 域名:域值 order by 域名(整型.浮点.日期.排序文本类型.枚举类型)limit n classify by  ...

  7. 味道不错的NBearLite查询语法

    最近在博客园博客程序的开发中使用了NBearLite进行数据库访问操作,然后通过NBearMapping将查询的结果映射到实体类.     NBearLite的查询语法设计得很体贴,用起来很舒服,正是 ...

  8. Mysql数据库查询语法详解

    数据库的完整查询语法 在平常的工作中经常需要与数据库打交道 , 虽然大多时间都是简单的查询抑或使用框架封装好的ORM的查询方法 , 但是还是要对数据库的完整查询语法做一个加深理解 数据库完整查询语法框 ...

  9. 《MongoDB管理与开发精要》——3.2节查询语法

    3.2 查询语法 MongoDB最大的特点是,它支持的查询语言非常强大,其语法类似于面向对象的查询语言,不但可以实现关系型数据库查询的大部分功能,而且还支持对数据建立索引.由于MongoDB可以支持非 ...

  10. Lucene查询语法详解

    Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询. 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 ...

最新文章

  1. 详细设计 英文_人体工程学设计:COMMA感应式无线充电器深度拆解
  2. 【STM32】SYSTEM文件夹介绍,delay,sys,usart
  3. 2022-2027年中国PPR管材行业发展态势及市场需求分析报告
  4. 教你一招如何使用几行代码实现zookeeper作为springcloud的服务注册中心
  5. bzoj 2535: [Noi2010]Plane 航空管制2【拓扑排序+堆】
  6. MongoDB 4.2 新特性解读
  7. vSAN其实很简单-如何处理“vSAN磁盘写满”问题?
  8. 数据结构学习(2):汉诺塔问题
  9. springboot整合rabbitmq(一)
  10. Java的八大常用类
  11. python使用gps设备
  12. coco数据集分割可视化格式转换
  13. 3D打印切片软件Cura入门
  14. BSC Web3生态深度研究
  15. 二进制数据图片(bit-data-map): 一种通过图片的形式传递数据信息的方式
  16. Saleor:开源、免费的无头电子商务平台——系列教程,快速打造属于你的电商网站
  17. Abandoned connection cleanup thread failed to stop
  18. 后向投影算法(BPA)-SAR成像算法系列(二)
  19. 磁盘清理工具(python)
  20. 精益生产之MES制造执行系统

热门文章

  1. doc与docx批量互转宏代码
  2. android支付宝支付成功后调其他界面,支付宝支付成功回调地址怎么不改变当前页面?...
  3. 搜索引擎:高级搜索技巧(初)
  4. 基础I/O【Linux】
  5. 最简单的 DRM 应用 drm设备不工作
  6. mysql 获取一个库下的所有表名
  7. sklearn 中的Ridge函数
  8. ccc-sklearn-9-SVM(3)
  9. 笨办法学Python 25
  10. 基于蜻蜓优化算法的配电网重构求解(Python代码实现)【IEEE123节点算例】