1. 程式人生 > 程式設計 >Influx Sql系列教程五:insert 新增資料

Influx Sql系列教程五:insert 新增資料

接下來開始進入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. 系列博文

參考博文

1. 一灰灰Blogliuyueyi.github.io/hexblog

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

2. 宣告

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

3. 掃描關注

一灰灰blog

image