暂无图片
暂无图片
暂无图片
暂无图片
1
暂无图片

开源时序数据库 InfluxDB

宇宙湾 2020-03-16
1187

介绍

InfluxDB™ is a time series database designed to handle high write and query loads. It is an integral component of the TICK stack. InfluxDB is meant to be used as a backing store for any use case involving large amounts of timestamped data, including DevOps monitoring, application metrics, IoT sensor data, and real-time analytics.

基本概念

DataBase

 类似于传统数据库中的 DataBase 概念

Measurement

 和 OLAP 中广义上的度量概念一致,某些 OLAP 数据库中又称为 metric

Tag

 和 OLAP 中广义上的维度概念一致,某些 OLAP 数据库中又称为 tagKV

Field

 数值

Timestamp

 时间戳

Points

 数据点

Series

 数据点组成的序列

Retention Policy

 数据过期策略,即 TTL

环境部署

目前,因为 InfluxDB 2.x 还没有稳定版本发布,所以这里我们使用的 InfluxDB 版本是 1.7.x

编译

  1. $ go get github.com/influxdata/influxdb

  2. $ cd $GOPATH/src/github.com/influxdata/influxdb

  3. $ go clean ./...

  4. $ go install -ldflags="-X main.version=1.7.10" ./...

  5. $ ll $GOPATH/bin

复制

启动

  1. $ $GOPATH/bin/influxd

复制

Grafana

  1. # 安装

  2. $ wget https://dl.grafana.com/oss/release/grafana-6.0.0-beta2.x86_64.rpm

  3. $ sudo yum localinstall grafana-6.0.0-beta2.x86_64.rpm


  4. # 启动

  5. $ systemctl daemon-reload

  6. $ systemctl start grafana-server

  7. $ systemctl status grafana-server


  8. # 自启动

  9. $ sudo systemctl enable grafana-server.service

复制

Telegraf

  1. $ wget https://dl.influxdata.com/telegraf/releases/telegraf-1.12.3-1.x86_64.rpm

  2. $ sudo yum localinstall telegraf-1.12.3-1.x86_64.rpm

  3. $ telegraf config > telegraf.conf

  4. $ telegraf --config telegraf.conf

复制

基本操作

版本

  1. $ curl -sL -I localhost:8086/ping | grep -i version

复制
  1. X-Influxdb-Version: v1.7.10

复制

控制台

  1. # 输入如下命令,即可进入到 InfluxDB 命令交互的控制台

  2. $ influx -host 'localhost' -port '8086'

复制

建表

  1. > show databases;

复制
  1. name: databases

  2. name

  3. ----

  4. _internal

复制
  1. # CREATE DATABASE <database_name> [WITH [DURATION <duration>] [REPLICATION <n>] [SHARD DURATION <duration>] [NAME <retention-policy-name>]]

  2. > create database "yuzhouwan";

复制
  1. > show databases;

复制
  1. name: databases

  2. name

  3. ----

  4. _internal

  5. yuzhouwan

复制
  1. > use yuzhouwan;

复制
  1. Using database yuzhouwan

复制

写入

  1. > insert blog,protocol=https,name=yuzhouwan value=666

复制

查询

明细查询

  1. > select * from blog

复制
  1. name: blog

  2. time name protocol value

  3. ---- ---- -------- -----

  4. 1556438552229094000 yuzhouwan https 666

复制

聚合查询

  1. > select mean(value) from blog

复制
  1. name: blog

  2. time mean

  3. ---- ----

  4. 0 666

复制

范围查询

  1. > select * from blog WHERE time > '2019-04-01T00:00:00Z' OR time < '2019-05-01T00:00:00Z'

复制
  1. name: blog

  2. time name protocol value

  3. ---- ---- -------- -----

  4. 1556438552229094000 yuzhouwan https 666

复制

数据导出

方法优缺点
通过 HTTP 接口直接查询简单易用
influx_tools 命令行工具里的 exporter 功能并不能导出原始数据点,只能操作 shard
influx_inspect 命令行工具里的 export 功能支持导出原始数据点,直接操作底层 TSM、WAL 文件

query 接口

  1. $ curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=yuzhouwan" --data-urlencode 'q=select * from blog'

复制
  1. {

  2. "results": [

  3. {

  4. "series": [

  5. {

  6. "columns": [

  7. "time",

  8. "name",

  9. "protocol",

  10. "value"

  11. ],

  12. "name": "blog",

  13. "values": [

  14. [

  15. "2019-04-28T08:02:32.229094Z",

  16. "yuzhouwan",

  17. "https",

  18. 666

  19. ]

  20. ]

  21. }

  22. ],

  23. "statement_id": 0

  24. }

  25. ]

  26. }

复制

influx_inspect 命令

  1. $ influx_inspect export -database yuzhouwan -start 2019-01-01T00:00:00+00:00 -end 2019-12-01T00:00:00+00:00 -out yuzhouwan.out

复制
  1. writing out tsm file data for yuzhouwan/autogen...complete.

复制
  1. $ cat yuzhouwan.out

复制
  1. # INFLUXDB EXPORT: 2019-01-01T08:00:00+08:00 - 2019-12-01T08:00:00+08:00

  2. # DDL

  3. CREATE DATABASE yuzhouwan WITH NAME autogen

  4. # DML

  5. # CONTEXT-DATABASE:yuzhouwan

  6. # CONTEXT-RETENTION-POLICY:autogen

  7. # writing tsm data

  8. blog,name=yuzhouwan,protocol=https value=666 1556438552229094000

复制


文章转载自宇宙湾,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

Sword
暂无图片
2年前
评论
暂无图片 0
哈喽 大佬 我是时序开发者社区的CSM Sword, 想邀请您加入我们时序开发者交流社群,结识更多爱好者。 可以 通过手机WX添加 18616704179
2年前
暂无图片 点赞
评论