一, 基础操作

# 创建数据库

create database <dataname>

# 删除数据库

drop database <dataname>

# 查看数据库

show databases

# 创建用户和设置密码

create user <user> with password <password>

# 创建用户,密码,并赋予所有的权限 (需要注意的是密码必须使用引号括起来,否则会报错)

create user user with password 'admin' with all privileges

# 重设密码

set password for xxx='newpwd'

# 删除用户

drop user xxx

# 查看用户

show users

# 授权  数据库给指定用户

grant all privileges on <database> to <user>
or
grant [read,write,all] on <database_name> to <username>

# 回收

revoke all privileges from <username>
or
revoke [read,write,all] on <database_name> from <username>

# 查询权限

show grants for <username>

# 新增数据

insert <tbname>,<tags> <values> [timestamp]

# 删除一条数据

delete from students where time=1532515056470523491

# 显示直接阅读的友好方式 (InfluxDB中time默认显示为19位的ns级别的时间戳,查看不方便)

precision rfc3339

1.measurements

在influxdb中measurement相当于mysql中的表,可以理解为一条一条记录都是存与measurent中的,一个数据库中可以有多个measurement,一个measurement中可以存很多的数据。虽然可将measurement类比为mysql中的表,但是他们之间的差别也挺明显的

首先我们先了解一下measurement的几个常用命令,如何查看、新增删除

# 查看一个数据库中有哪些measurement

show measurements

# 我们也可以在不执行use databaseName的时候,进行查看;

show measurements on <measurements>

如何创建measurement?

在influxdb中没有专门用来创建measurement的命令,在执行向某个measurement新增记录的时候,如果不存在measurement,则会新创建一个, 下面是一条简单的演示:

insert userInfo,name=一灰灰blog userId=10,blog="https://www.www.com"

# 删除 measurement

drop measurement <measurement>

measurement是没有修改操作的

2. tag

influxdb数据结构中记录元数据(metadata)的kv对,不要求必须存在,tag key/value 都是字符串类型,而且会建立索引,因此基于tag进行查询效率比单纯的基于field进行查询是要高的;后续的一些sql也会发现,某些查询只能基于tag.

重点提炼

  • tag key/value: 字符串类型
  • 有索引

常见的查询tag的语法如下

show tag keys on <database> from <measurement>

下面给出一个实际的例子, insert语句后面会说到,我们塞入的一条数据,指定name为tag,另外三个为field

> insert yhh,name=一灰灰 age=26,id=10,blog="http://blog.hhui.top"
> select * from yhh
name: yhh
time                age blog                 id name
----                --- ----                 -- ----
1563888301725811554 26  http://blog.hhui.top 10 一灰灰
> show tag keys from yhh
name: yhh
tagKey
------
name

上面是获取tag keys的查询方式,下面介绍下查询tag values的使用姿势

show tag values on <database> from <measurement> with KEY [ [<operator> "<tag_key>" | <regular_expression>] | [IN ("<tag_key1>","<tag_key2")]] [WHERE <tag_key> <operator> ['<tag_value>' | <regular_expression>]] [LIMIT_clause] [OFFSET_clause]

举例说明:

show tag values from bar_data with key="vt_symbol"

3. field

成员,也可以理解为一条记录中,不需要建立索引的数据,一般来说,不太会有参与查询语句建设的可以设置为field

区别与tag,field有下面几个特性

  • 类型可以为:浮点,字符串,整形
  • 没有索引

查看field key的语句如下

show field keys on <database> from <measurement>

下面给出一个实际的例子, insert语句后面会说到,我们塞入的一条数据,指定name为tag,另外三个为field

> insert yhh,name=一灰灰 age=26,id=10,blog="http://blog.hhui.top"
> select * from yhh
name: yhh
time                age blog                 id name
----                --- ----                 -- ----
1563888301725811554 26  http://blog.hhui.top 10 一灰灰
> show tag keys from yhh
name: yhh
tagKey
------
name

4. point

https://docs.influxdata.com/influxdb/v1.7/concepts/glossary/#point

在influxdb中,你可以将一条mysql中的记录简单的理解为一个point,它由四个组件

  • measurement
  • tag set
  • field set
  • timestamp

每个point是根据 timestamp + series 来保证唯一性。

关于point可以怎么理解呢?因为influxdb是时序数据库,简单来讲就是每个数据都是时间轴上的一个点,这些数据与时间强相关,其中的tag用来检索,field用来记录一些信息,measurement用来将相同类型的数据归集

5. series

官方的说明是:

The collection of data in the InfluxDB data structure that share a measurement, tag set, and retention policy.

influxdb中measurement + tags set + retention policy 组成的数据集合

直接看定义可能有点懵逼,官方提供查看series的命令如下

show series on <database> from <measurement>

举个实际例子:

> select * from myapp
name: myapp
time                cpu   host      load mem   qps  rt   service
----                ---   ----      ---- ---   ---  --   -------
1532597158613778583 45.23 127.0.0.1 1.21 4145m 1340 1313 app.service.index
1532597501578551929 45.23 127.0.0.1 1.21 4145m 1341 1312 app.service.index
1532597510225918132 45.23 127.0.0.1 1.21 4145m 1341 1312 app.service.about
1532597552421996033 45.23 127.0.0.2 1.21 4145m 1341 1312 app.service.about

上面四条数据,对应几个series呢 ?

根据前面的说法,tagKey + tagValue 确定给一个series (实际上是 measurement + retention policy + tags来确定),因此上表总共有三个series

  • 127.0.0.1 | app.service.index
  • 127.0.0.1 | app.service.about
  • 127.0.0.2 | app.service.about

那么这个series到底是什么东西呢?

如果将上面的数据图表化的方式显示出来,我们可以怎么办?

  • 首先我们确定好应用及其和服务名,然后查看这个服务在这台机器上,在时间线上的服务性能
  • 翻译过来就是,将cpu/service作为检索条件,以time为时间轴,将value(cpu,load,mem,qps,rt)映射到二维坐标上作为一个点(point),然后将所有的point连接成线,最终得到连续的图表

所以series就是上面的检索条件,同时point的概念也容易理解了

二, insert 添加数据

  • 在insert执行语句中,tag与tag、field与field之间用","进行分割,tag与field之间用空格分割
  • tag的value都是String类型,不需要加双引号
  • field的String类型数据,需要放在双引号中,否则会报错
  • 如果需要显示添加时间戳,在filed后添加空格,再添加时间戳

一条实际的插入数据如下:

> insert myapp,host=127.0.0.1,service=app.service.index qps=1340,rt=1313,cpu=45.23,mem="4145m",load=1.21
> select * from myapp
name: myapp
time                cpu   host      load mem   qps  rt   service
----                ---   ----      ---- ---   ---  --   -------
1532597158613778583 45.23 127.0.0.1 1.21 4145m 1340 1313 app.service.index

influxdb概念 常用查询语句相关推荐

  1. MongoDB 查询语法与常用查询语句总结

    MongoDB 常用查询语句总结 先来一波查询语句语法的基本解释: 列子: db.mycol.find({"likes": {$gt:10}, $or: [{"by&qu ...

  2. Mongodb常用查询语句_笔记

    目录 前言 一.Mongodb简介 二.Mongodb常用查询语句 总结 前言 工作中会使用到Mongodb数据库,这是一个非关系型数据库,所以它的一些查询语句跟sql会不太一样,一时半会不能马上写出 ...

  3. SQL常用查询语句汇总

    SQL查询关键字为SELECT,常用查询语句代码及结果如下(本文使用MySQL数据库管理系统): -- 1检索单个列 SELECT prod_name FROM Products;-- 2检索多个列 ...

  4. 【大数据】InfluxDB的常用查询及常用函数

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

  5. 结构化查询语句简称mysql_整理MySql常用查询语句

    MySql的性能优化 性能优化是通过某些有效的方法提高MySQL数据库的性能.性能优化的目的是为了是MySQL数据运行速度更快.占用的磁盘空间更小.性能优化包括很多方面,例如优化查询速度.优化更新速度 ...

  6. mysql 常用查询语句

    常用的查询语句 数据库使用的是:mysql 8.0.28,安装过程可参考: mysql 8.0安装教程 1.初识SQL SQL是为操作数据库而开发的语言.国际标准化组织(ISO)为 SQL 制定了相应 ...

  7. Hive 表常用查询语句-总结

    Hive之前不常用,每次都是现用现查,就是现在总结记下笔记,边学边记(下面都是一些简单的例子,由易到难吗)>_<. 1.基本的查询语句 现在假设有数据库 db,数据表table1,tabl ...

  8. MySQL数据库的查询:常用查询语句、MySQL函数、多表查询、视图表

    文章目录 一.构造数据 二.常用的查询语句 1.SELECT:字段表达式 2.FROM 子句 3.WHERE 子句:按指定条件过滤 4.GROUP BY:分组查询 5.HAVING 6.ORDER B ...

  9. DB2数据库常用查询语句

    DB2数据库常用查询: 1.DB2查找存储过程语句,存储过程名字大写 SELECT PROCNAME,TEXT,CREATE_TIME,A. * FROM SYSCAT.PROCEDURES a WH ...

最新文章

  1. 记录:自制的小说推荐程序(一)
  2. 重复制造--REM主数据
  3. 元胞自动机(Cellular Automata)
  4. C#模拟MSN窗体抖动
  5. POJ1269 Intersecting Lines 计算几何 C语言
  6. The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
  7. UC浏览器APP如何卸载插件
  8. C#LeetCode刷题之#53-最大子序和(Maximum Subarray)
  9. bzoj千题计划181:bzoj1878: [SDOI2009]HH的项链
  10. 逐渐“狗化”!网易云音乐控诉酷狗像素级抄袭,酷狗高管反击...
  11. linux中elf文件的作用,Linux中ELF格式文件介绍
  12. python切面编程_python编程上可九天揽月,下可五洋捉鳖,10行代码进行图像识别...
  13. 产品质量检测系统uml建模心得
  14. MCS:连续随机变量——Erlang分布
  15. 硬盘数据恢复软件FinalData使用心得
  16. Linux文件与目录的三种时间状态(mtime,atime,ctime)区别
  17. 为Exynos4412移植2022版U-Boot(一)步骤及其原理分析
  18. 大数据平台自动化运维,数据中心运维平台
  19. DB2也可以PINNED
  20. 构造虚假栈帧 | 花式栈溢出

热门文章

  1. 程序员因企业拖欠两月工资,想把代码删掉走人,网友:删库跑路?
  2. 数据仓库面试题汇总-数仓-四
  3. Hive读取复杂的数据类型(Array,Map,Struct)
  4. 生命游戏小游戏开发报告
  5. jeesite表单文件组件不显示
  6. 多元函数第四:欧式几何(2)直线,超平面,半空间,球体,球面
  7. 幕后故事 | YRCloudFile助力顶级视效制作公司MORE VFX打造视觉盛宴
  8. 骁龙芯片能牵容鸿蒙系统吗,活见久!华为新机曝光:搭载骁龙870处理器,运行鸿蒙系统!...
  9. css文字图片动画_文字图像互动动画
  10. 老照片特效 php,PHP教程:php利用imagemagick实现复古老照片效果实例