1. 程式人生 > 程式設計 >Influx Sql系列教程三:measurement 表

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,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. 一灰灰Blogliuyueyi.github.io/hexblog

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

2. 宣告

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

3. 掃描關注

一灰灰blog

image