06.insert 添加数据
约 766 字大约 3 分钟
接下来开始进入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
Loading...