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格式的输出