Deploying InfluxDB using Docker
- docker influxdb: http://www.tomdee.co.uk/2015/10/10/deploying-influxdb-using-docker/
- docker pull influxdb
- docker run -d –volume=/var/influxdb:/data –restart=always -e PRE_CREATE_DB=”tomdee” -p 8083:8083 -p 8086:8086 influxdb:lastest
Influxdb HTTP API
Influxdb的http api的请求端口为: 8086
Writing Data
https://docs.influxdata.com/influxdb/v1.0/guides/writing_data/
create database
curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"- 使用POST方法
- url为
/query q用于设置URL参数CREATE DATABASE mydb为influxdb的语法
writing data
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'- 使用POST方法
- url为
/write db=mydb用于指定db名称- cpu_load_short 为
measurement, 类似于table, collection的概念 - host,region为tag key
- server01, us-west为tag value
tag key和tag value都会被索引, 类型为string- value为
field key, 不会被索引 - 0.64为
field value - 1434055562000000000 为
timestamp
/write api支持一次写入多条数据或者从文件中读取, 但每条数据必须被组织在单行中
Schema Design
Influxdb是schemaless database(无模式), 但是对于同一个measurement, tag field对应的tag value的数据类型必须一致
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'tobeornottobe booleanonly=true'
1 | HTTP/1.1 204 No Content |
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'tobeornottobe booleanonly=5'
1 | HTTP/1.1 400 Bad Request |
Querying Data
https://docs.influxdata.com/influxdb/v1.0/guides/querying_data/
curl -GET 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west'"- 使用GET方法
- url为
/query q用于设置URL参数CREATE DATABASE mydb为influxdb的语法- 需要指定db名称
- 查询语法中
tag key, field key需要使用""引起来,tag value需要使用''引起来 pretty=true获取JSON格式的输出