190726-Influx Sql系列教程五:insert 添加数据

文章目录
  1. I. Insert 使用说明
    1. 1. 基本写数据姿势
      1. a. 基本case
      2. b. field类型
      3. c. 时间戳指定
    2. 2. 指定保存策略插入数据
  2. II. 其他
    1. 0. 系列博文
    2. 1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
    3. 2. 声明
    4. 3. 扫描关注

接下来开始进入influxdb的curd篇,首先我们看一下如何添加数据,也就是insert的使用姿势

在进入本篇之前,对于不了解什么是retention policy, tag, field的同学,有必要快速过一下这几个基本概念,可以参考文后的系列教程

I. Insert 使用说明

基本语法

1
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
> 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,下面看一下插入数据时,四种类型如何处理

1
2
3
4
5
6
7
8
9
> 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

1
2
3
4
5
6
7
8
> 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 保存策略 ...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
> 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. 系列博文

参考博文

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

3. 扫描关注

一灰灰blog

QrCode

知识星球

goals

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×