Influx Sql系列教程三:measurement 表


在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. 系列博文

參考博文

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的個人博客,記錄所有學習和工作中的博文,歡迎大家前去逛逛

2. 聲明

盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激

3. 掃描關注

一灰灰blog
image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM