InfluxDB学习之InfluxDB的HTTP API写入操作

HTTP API也有两种操作:写入和查询,本文就先给大家介绍一下 InfluxDB的HTTP API的写入操作方式。

在InfluxDB学习的上一篇文章:InfluxDB学习之InfluxDB的基本操作 中,我们提到 InfluxDB操作有三种方式,其中一种是HTTP API的方式。

HTTP API也有两种操作:写入和查询,本文就先给大家介绍一下 InfluxDB的HTTP API的写入操作方式。更多InfluxDB详细教程请看:InfluxDB系列学习教程目录

InfluxDB技术交流群:580487672(点击加入)

一、说明

为了方便,本文主要使用curl来发起http请求,示例当中也是使用curl这个工具来模拟HTTP 请求。

在实际使用中,可以将请求写入代码中,通过其他编程语言来模拟HTTP请求。

二、InfluxDB通过HTTP API操作数据库

1)建立数据库

curl -POST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"

执行这个语句后,会在本地建立一个名为mydb的数据库。

2)删除数据库

curl -POST http://localhost:8086/query --data-urlencode "q=DROP DATABASE mydb"

其实使用HTTP API就是向 InfluxDB 接口发送相应的POST请求。

将语句通过POST方式发送到服务器。

三、InfluxDB通过HTTP API添加数据

InfluxDB通过HTTP API添加数据主要使用如下格式:

curl -i -XPOST ‘http://localhost:8086/write?db=mydb‘ --data-binary ‘cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000‘

说明:db=mydb是指使用mydb这个数据库。

--data-binary后面是需插入数据。

cpu_load_short是表名(measurement),tag字段是host和region,值分别为:server01和us-west。

field key字段是value,值为0.64。

时间戳(timestamp)指定为1434055562000000000。

这样,就向mydb数据库的cpu_load_short表中插入了一条数据。

其中,db参数必须指定一个数据库中已经存在的数据库名,数据体的格式遵从InfluxDB规定格式,首先是表名,后面是tags,然后是field,最后是时间戳。tags、field和时间戳三者之间以空格相分隔。

四、InfluxDB通过HTTP API添加多条数据

InfluxDB通过HTTP API添加多条数据与添加单条数据相似,示例如下:

curl -i -XPOST ‘http://localhost:8086/write?db=mydb‘ --data-binary ‘cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257‘

这条语句向数据库mydb的表cpu_load_short中插入了三条数据。

第一条指定tag为host,值为server02,第二条指定tag为host和region,值分别为server02和us-west,第三条指定tag为direction,host,region,值分别为:in,server01,us-west。

五、InfluxDB 的HTTP API响应

在使用HTTP API时,InfluxDB的响应主要有以下几个:

1)2xx:204代表no content,200代表InfluxDB可以接收请求但是没有完成请求。一般会在body体中带有出错信息。

2)4xx:InfluxDB不能解析请求。

3)5xx:系统出现错误。

好了,有关InfluxDB的HTTP API写入操作就先为大家介绍到这里,下一篇将会介绍下如何使用 InfluxDB的HTTP API执行查询操作。

更多InfluxDB详细教程请看:InfluxDB系列学习教程目录

InfluxDB技术交流群:580487672(点击加入)

时间: 2024-12-05 15:13:51

InfluxDB学习之InfluxDB的HTTP API写入操作的相关文章

InfluxDB学习之InfluxDB的安装和简介

最近用到了 InfluxDB,在此记录下学习过程,同时也希望能够帮助到其他学习的同学. 本文主要介绍InfluxDB的功能特点以及influxDB的安装过程.更多InfluxDB详细教程请看:InfluxDB系列学习教程目录 一.InfluxDB 简介 InfluxDB 是用Go语言编写的一个开源分布式时序.事件和指标数据库,无需外部依赖. 类似的数据库有Elasticsearch.Graphite等. 其主要特色功能 1)基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等) 2)可度

InfluxDB学习之InfluxDB的基本操作

InfluxDB 是一个开源分布式时序.事件和指标数据库. 使用 Go 语言编写,无需外部依赖.其设计目标是实现分布式和水平伸缩扩展. 它有三大特性: 1. Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等) 2. Metrics(度量):你可以实时对大量数据进行计算 3. Eevents(事件):它支持任意的事件数据 特点 schemaless(无结构),可以是任意数量的列 Scalable min, max, sum, count, mean, me

InfluxDB学习之InfluxDB常用函数(三)变换类函数

1)DERIVATIVE()函数 作用:返回一个字段在一个series中的变化率. InfluxDB会计算按照时间进行排序的字段值之间的差异,并将这些结果转化为单位变化率.其中,单位可以指定,默认为1s. 语法: SELECT DERIVATIVE(<field_key>, [<unit>]) FROM <measurement_name> [WHERE <stuff>] 其中,unit取值可以为以下几种: u --microsecondss --secon

InfluxDB学习之InfluxDB的基本概念

InfluxDB与传统数据库在概念上有许多的不同,本文就给大家介绍下InfluxDB中的一些基本概念,更多InfluxDB详细教程请看:InfluxDB系列学习教程目录 InfluxDB技术交流群:580487672(点击加入) 一.与传统数据库中的名词做比较 influxDB中的名词 传统数据库中的概念 database 数据库 measurement 数据库中的表 points 表里面的一行数据 二.InfluxDB中独有的概念 1)Point Point由时间戳(time).数据(fiel

InfluxDB学习之InfluxDB数据保留策略(Retention Policies)

InfluxDB每秒可以处理成千上万条数据,要将这些数据全部保存下来会占用大量的存储空间,有时我们可能并不需要将所有历史数据进行存储,因此,InfluxDB推出了数据保留策略(Retention Policies),用来让我们自定义数据的保留时间.更多InfluxDB详细教程请看:InfluxDB系列学习教程目录 InfluxDB技术交流群:580487672(点击加入) 一.InfluxDB 数据保留策略 说明 InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间

InfluxDB学习之InfluxDB常用函数(一)聚合类函数

1)count()函数 返回一个(field)字段中的非空值的数量. 语法: SELECT COUNT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>] 示例: >SELECT COUNT(water_level) FROM h2o_feet name: h2o_feet--------------time                           

InfluxDB学习之InfluxDB常用函数(二)选择类函数

1)BOTTOM()函数 作用:返回一个字段中最小的N个值.字段类型必须是长整型或float64类型. 语法: SELECT BOTTOM(<field_key>[,<tag_keys>],<N>)[,<tag_keys>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>] 使用示例 > SELECT BOTTOM(water_level,3) FR

PHP的学习--使用PhpDocumentor 2生成API文档

官网地址:http://www.phpdoc.org/ 项目地址:https://github.com/phpDocumentor/phpDocumentor2 phpDocumentor 2是一个可以 分析php源代码和注释块并生成文档的程序. 基于phpdocumentor 1和javadoc启发而来,它持续创新的使用了一些新技术和支持php的新特性. phpDocumentor 2的特点: 兼容php5.3,全面支持命名空间和闭包等. 识别支持任何tag,以及一些追加的 (比如 @link

NIO学习:使用Channel、Buffer写入文件

NIO的效率要高于标准IO,因为NIO将最耗时的IO操作(填充和提取缓冲区)转移会操作系统.NIO以块为单位传输数据,相比标准IO的以字节为单位效率要高很多. 通道和缓冲时NIO的核心对象,每个NIO操作都要使用到它们. 通道是对流的模拟,但与流不同,通道的传输是双向的,一个通道可以同时用于读和写. 缓冲区是一个容器,它包含将要写入或者刚读出的数据.使用通道进行读写时都要经过缓冲区. 使用NIO写入文件,可以通过文件流获取通道 FileOutputStream outputStream=new