Influx Sql系列教程五:insert 新增資料
阿新 • • 發佈:2019-12-31
接下來開始進入influxdb的curd篇,首先我們看一下如何新增資料,也就是insert的使用姿勢
在進入本篇之前,對於不瞭解什麼是retention policy,tag,field的同學,有必要快速過一下這幾個基本概念,可以參考文後的系列教程
I. Insert 使用說明
基本語法
insert into <retention policy> measurement,tagKey=tagValue fieldKey=fieldValue timestamp
複製程式碼
1. 基本寫資料姿勢
當measurement不存在的時候,我們插入一條資料時,就會建立這個measurement
a. 基本case
下面給出一個簡單的例項
insert add_test,name=YiHui,phone=110 user_id=20,email="[email protected]"
- 新增一條資料,measurement為
add_test
,tag為name
,phone
,field為user_id
,email
> show measurements
name: measurements
name
----
yhh
> insert add_test,email="[email protected]"
> show measurements;
name: measurements
name
----
add_test
yhh
> select * from add_test
name: add_test
time email name phone user_id
---- ----- ---- ----- -------
1564149327925320596 [email protected] YiHui 110 20
> show tag keys from add_test;
name: add_test
tagKey
------
name
phone
> show field keys from add_test;
name: add_test
fieldKey fieldType
-------- ---------
email string
user_id float
複製程式碼
從上面的輸出,簡單小結一下插入的語句寫法
-
insert
+measurement
+","
+tag=value,tag=value
++
field=value,field=value
- tag與tag之間用逗號分隔;field與field之間用逗號分隔
- tag與field之間用空格分隔
- tag都是string型別,不需要引號將value包裹
- field如果是string型別,需要加引號
b. field型別
我們知道field有四種型別,int
,float
,string
,boolean
,下面看一下插入資料時,四種型別如何處理
> insert add_test,phone=110 user_id=21,email="[email protected]" ,age=18i,boy=true
> show field keys from add_test
name: add_test
fieldKey fieldType
-------- ---------
age integer
boy boolean
email string
user_id float
複製程式碼
小結一下四種型別的指定方式
型別 | 方式 | 示例 |
---|---|---|
float | 數字 |
user_id=21 |
int | 數字i |
age=18i |
boolean | true/false |
boy=true |
String |
"" or ''
|
email="[email protected]" |
c. 時間戳指定
當寫入資料不指定時間時,會自動用當前時間來補齊,如果需要自己指定時間時,再最後面新增上即可,注意時間為ns
> insert add_test,phone=110 user_id=22,boy=true 1564150279123000000
> select * from add_test;
name: add_test
time age boy email name phone user_id
---- --- --- ----- ---- ----- -------
1564149327925320596 [email protected] YiHui 110 20
1564149920283253824 18 true [email protected] YiHui 110 21
1564150279123000000 18 true [email protected] YiHui 110 22
複製程式碼
2. 指定儲存策略插入資料
前面寫入資料沒有指定儲存策略,表示這條資料寫入到預設的儲存策略中;我們知道一個資料庫可以有多個儲存策略,一個measurement中也可以存不同的儲存策略的資料,在寫入資料時,如果需要指定儲存策略,可以使用 insert into 儲存策略 ...
> show retention policies on test
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true
1_d 24h0m0s 1h0m0s 1 false
1_h 1h0m0s 1h0m0s 1 false
> insert into "1_d" add_test,name=YiHui2,phone=911 user_id=23,boy=true 1564150279123000000
> select * from add_test;
name: add_test
time age boy email name phone user_id
---- --- --- ----- ---- ----- -------
1564149327925320596 [email protected] YiHui 110 20
1564149920283253824 18 true [email protected] YiHui 110 21
1564150279123000000 18 true [email protected] YiHui 110 22
> select * from "1_d".add_test;
name: add_test
time age boy email name phone user_id
---- --- --- ----- ---- ----- -------
1564150279123000000 18 true [email protected] YiHui2 911 23
複製程式碼
II. 其他
0. 系列博文
- 190723-Influx Sql系列教程四:series/point/tag/field
- 190721-Influx Sql系列教程三:measurement 表
- 190719-Influx Sql系列教程二:retention policy 儲存策略
- 190718-Influx Sql系列教程一:database 資料庫
- 190717-Influx Sql系列教程零:安裝及influx-cli使用姿勢介紹
- 190509-InfluxDb之時間戳顯示為日期格式
- 190506-InfluxDB之配置修改
- 190505-InfluxDB之許可權管理
- 180727-時序資料庫InfluxDB之備份和恢復策略
- 180726-InfluxDB基本概念小結
- 180725-InfluxDB-v1.6.0安裝和簡單使用小結
參考博文
- docs.influxdata.com/influxdb/v1…
- docs.influxdata.com/influxdb/v1…
- docs.influxdata.com/influxdb/v1.7/tools/shell/#write-data-to-influxdb-with-insert
1. 一灰灰Blog: liuyueyi.github.io/hexblog
一灰灰的個人部落格,記錄所有學習和工作中的博文,歡迎大家前去逛逛
2. 宣告
盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
3. 掃描關注
一灰灰blog