接下來開始進入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="bangzewu@126.com"
- 新增一條數據,measurement為
add_test
, tag為name
,phone
, field為user_id
,email
> show measurements
name: measurements
name
----
yhh
> insert add_test,name=YiHui,phone=110 user_id=20,email="bangzewu@126.com"
> show measurements;
name: measurements
name
----
add_test
yhh
> select * from add_test
name: add_test
time email name phone user_id
---- ----- ---- ----- -------
1564149327925320596 bangzewu@126.com 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,name=YiHui,phone=110 user_id=21,email="bangzewu@126.com",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="bangzewu@126.com" |
c. 時間戳指定
當寫入數據不指定時間時,會自動用當前時間來補齊,如果需要自己指定時間時,再最后面添加上即可,注意時間為ns
> insert add_test,name=YiHui,phone=110 user_id=22,email="bangzewu@126.com",age=18i,boy=true 1564150279123000000
> select * from add_test;
name: add_test
time age boy email name phone user_id
---- --- --- ----- ---- ----- -------
1564149327925320596 bangzewu@126.com YiHui 110 20
1564149920283253824 18 true bangzewu@126.com YiHui 110 21
1564150279123000000 18 true bangzewu@126.com 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,email="bangzewu@126.com",age=18i,boy=true 1564150279123000000
> select * from add_test;
name: add_test
time age boy email name phone user_id
---- --- --- ----- ---- ----- -------
1564149327925320596 bangzewu@126.com YiHui 110 20
1564149920283253824 18 true bangzewu@126.com YiHui 110 21
1564150279123000000 18 true bangzewu@126.com YiHui 110 22
> select * from "1_d".add_test;
name: add_test
time age boy email name phone user_id
---- --- --- ----- ---- ----- -------
1564150279123000000 18 true bangzewu@126.com 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安裝和簡單使用小結
參考博文
- https://docs.influxdata.com/influxdb/v1.7/concepts/glossary
- https://docs.influxdata.com/influxdb/v1.7/query_language/schema_exploration
- https://docs.influxdata.com/influxdb/v1.7/tools/shell/#write-data-to-influxdb-with-insert
1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
一灰灰的個人博客,記錄所有學習和工作中的博文,歡迎大家前去逛逛
2. 聲明
盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
3. 掃描關注
一灰灰blog