Influx Sql系列教程三:measurement 表

mac2022-06-30  29

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

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

1. show measurements

查看一个数据库中有哪些measurement,属于常规操作了

先确定数据库执行show measurements 查看当前数据库的所有measurement > use test Using database test > show measurements name: measurements name ---- yhh

我们也可以在不执行use databaseName的时候,进行查看;而且还支持按名进行匹配,语法为

SHOW MEASUREMENTS [ON <database_name>] [WITH MEASUREMENT <regular_expression>] [WHERE <tag_key> <operator> ['<tag_value>' | <regular_expression>]] [LIMIT_clause] [OFFSET_clause]

下面给出查询指定数据库中,以yhh开头的所有measurement示例

> show measurements on test name: measurements name ---- doraemon doraemon2 yhh yhh2 > show measurements on test with measurement =~ /yhh*/ name: measurements name ---- yhh yhh2

2. 创建measurement

在influxdb中没有专门用来创建measurement的命令,在执行向某个measurement新增记录的时候,如果不存在measurement,则会新创建一个

下面是一条简单的演示case

# 像userInfo中新增一条记录,如果userInfo这个measurement不存在,则新建一个 > insert userInfo,name=一灰灰blog userId=10,blog="https://blog.hhui.top/" > show measurements name: measurements name ---- doraemon doraemon2 userInfo yhh yhh2

3. 删除measurement

两种方式,一个是把measurement里面的所有数据都删完,那么这个measurement就没了

> select * from userInfo name: userInfo time blog name userId ---- ---- ---- ------ 1563712849953792293 https://blog.hhui.top/ 一灰灰blog 10 # 删除userInfo中的记录 > delete from userInfo where time=1563712849953792293 # 再次查看,发现userInfo已经被删除 > show measurements name: measurements name ---- doraemon doraemon2 yhh yhh2 >

另外一种方式就是直接使用drop measurement命令实现删除

# 先创建userInfo > insert userInfo,name=一灰灰blog userId=10,blog="https://blog.hhui.top/" > show measurements name: measurements name ---- doraemon doraemon2 userInfo yhh yhh2 # 直接使用drop语句删除 > drop measurement userInfo > show measurements name: measurements name ---- doraemon doraemon2 yhh yhh2 >

4. 修改

不同于mysql中的表,measurement是没有修改操作的,从前面的创建操作也可以看出,对于measurement而言,也就只有一个名字,那如果我希望重命名现有的measurement,该怎么办?

原则上不建议这么干,如果确实有需要,可以用下面的方式来变相实现

> show measurements name: measurements name ---- doraemon doraemon2 userInfo yhh yhh2 # 使用select into语句实现将查询结果保存到另外一个measurement中 > select * into userBaseInfo from userInfo name: result time written ---- ------- 0 1 > show measurements name: measurements name ---- doraemon doraemon2 userBaseInfo userInfo yhh yhh2 > select * from userBaseInfo, userInfo name: userBaseInfo time blog name name_1 userId ---- ---- ---- ------ ------ 1563713690876924095 https://blog.hhui.top/ 一灰灰blog 10 name: userInfo time blog name name_1 userId ---- ---- ---- ------ ------ 1563713690876924095 https://blog.hhui.top/ 一灰灰blog 10 >

II. 其他

0. 系列博文

190719-Influx Sql系列教程二:retention policy 保存策略190717-Influx Sql系列教程零:安装及influx-cli使用姿势介绍190509-InfluxDb之时间戳显示为日期格式190506-InfluxDB之配置修改190505-InfluxDB之权限管理180727-时序数据库InfluxDB之备份和恢复策略180726-InfluxDB基本概念小结180725-InfluxDB-v1.6.0安装和简单使用小结

参考博文

https://docs.influxdata.com/influxdb/v1.7/query_language/schema_exploration/#show-series

1. 一灰灰Blog: https://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

微博地址: 小灰灰BlogQQ: 一灰灰/3302797840

3. 扫描关注

一灰灰blog

转载于:https://www.cnblogs.com/yihuihui/p/11386678.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)