一. InfluxDB数据库介绍
InfluxDB是Influxdata旗下开源的一种时序数据库(Time Series Database),根据DB-engine排名,目前在time series数据库领域排名第一位。
InfluxDB下载地址
https://portal.influxdata.com/downloads/
InfluxDB排名
https://db-engines.com/en/ranking/time+series+dbms
InfluxDB主要功能
- 对时序数据(sereis data)使用TSM存储引擎,提供高性能的数据写入和压缩功能。
- go语言编写,程序只有一个二进制的可执行文件,没有其他依关系。
- 通过http API可提供高性能的便捷的读写操作。
- 插件支持采集Graphite, collectd, and OpenTSDB等数据源。
- 提供类似SQL语法格式的数据操作。
- 保留策略(retention policies)功能可以定期清除老旧数据。
- 不间断(continuous queries)自动化查询功能统计聚合数据来使数据查询更有效率。
缺点:
- 社区版只支持单机部署,集群功能需要使用收费的企业版。
- InfluxDB中文学习文档较少,对于想要了解该数据库的用户有一定的不便。
InfluxDB与RDBMS中的概念比较
概念 | InfluxDB | RDBMS |
数据库 | database | database |
表 | measurement | table |
行 | point | row |
列 | tag(可索引),field(不可索引) | column |
二. InfluxDB数据库安装
# mkdir /usr/local/influxdb # groupadd -r dba # useradd -r -g dba tnuser # chown -R tnuser.dba /usr/local/influxdb # sudo su - tnuser $ cd /usr/local/influxdb $ wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0-static_linux_amd64.tar.gz $ tar -zxf influxdb-1.8.0-static_linux_amd64.tar.gz $ mv influxdb-1.8.0-1/* . $ rm -rf influxdb-1.8.0*
修改InfluxDB数据库配置文件,模板文件在数据库安装路径下的etc/influxdb/influxdb.conf
reporting-disabled = true bind-address = "0.0.0.0:8088" [meta] dir = "/usr/local/influxdb/meta" retention-autocreate = true [data] dir = "/usr/local/influxdb/data" wal-dir = "/usr/local/influxdb/wal"
使用CentOS7的systemctl管理InfluxDB服务
[Unit]
Description=InfluxDB is time series database
Documentation=https://docs.influxdata.com/influxdb/v1.8/introduction/get-started/
After=syslog.target
After=network.target
[Service]
Type=fork
User=tnuser
Group=dba
Restart=always
# Disable OOM kill on the Redis
OOMScoreAdjust=-1000
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0
ExecStart=/usr/local/influxdb/usr/bin/influxd run -config /usr/local/influxdb/etc/influxdb/influxdb.conf
ExecStop=/bin/kill -15 $MAINPID
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload # systemctl enable influxdb # systemctl start influxdb # systemctl status influxdb ● influxdb.service - InfluxDB is time series database Loaded: loaded (/usr/lib/systemd/system/influxdb.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2020-04-18 23:19:03 PDT; 1s ago Docs: https://docs.influxdata.com/influxdb/v1.8/introduction/get-started/ Main PID: 22583 (influxd) CGroup: /system.slice/influxdb.service └─22583 /usr/local/influxdb/usr/bin/influxd Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.203421Z lvl=info msg="InfluxDB starting" log...568f5 Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.203467Z lvl=info msg="Go runtime" log_id=0MG...ocs=4 Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.311597Z lvl=info msg="Using data dir" log_id.../data Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.311635Z lvl=info msg="Compaction settings" l...31648 Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.311647Z lvl=info msg="Open store (start)" lo...start Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.553803Z lvl=info msg="Reading file" log_id=0...87843 Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.572851Z lvl=info msg="Opened file" log_id=0M...749ms Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.594031Z lvl=info msg="Opened file" log_id=0M...915ms Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.610554Z lvl=info msg="Opened shard" log_id=0...256ms Apr 18 23:19:04 ec2t-dbaadmin-01.mypna.com influxd[22583]: ts=2020-04-19T06:19:04.612039Z lvl=info msg="Opened shard" log_id=0...741ms Hint: Some lines were ellipsized, use -l to show in full.