我们使用稳定版本1.7.8。
简介
开源的时间序列数据库。什么是时间序列数据库,最简单的定义就是数据格式里包含Timestamp字段的数据,比如某一时间磁盘使用率、网络流量、CPU的使用率等。
InfluxDB是一个开源的时间序列数据库,一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及执行分析。
特性
1、内置HTTP API,所以不用再写服务端代码来启动和运行。
2、数据可以被标记,允许非常灵活的查询。
3、类似SQL的查询语言
4、安装和管理简单,数据输入和输出速度快
5、它旨在实时响应查询。这意味着point数据写入即被索引并立即可供响应时间应小于100ms的查询使用。
下载
安装
/usr/bin
:
- influx:influxDB的命令行工具;
- influxd:influxDB的服务器程序;
- influx_inspect :influxDB的数据检查工具;
- influx_stress:influxDB的压力测试工具;
- influx_tsm : 数据库格式转换工具,将数据从b1或bz1格式转换为tsm1格式。
启动
进入/usr/bin目录下,启动命令
./influxd --config ../../etc/influxdb/influxdb.conf &
命令介绍
- influx
- ./influx -version 查看版本号
- ./influx -host 'hostname' 指定要连接的主机名
- ./influx -port '端口号' 指定要连接的端口号
- ./influx -socket 'unxi domani socket' 以UNIX域或socket方式连接
- ./influx -database 'database name' 指定要连接的数据库名
- ./influx -password 'password' 指定用于认证的密码
- ./influx -username 'username' 指定用于认证的用户名
- ./influx -ssl 启用HTTPS连接
- ./influx -unsafeSsl:当使用HTTPS连接到集群时,不适用SSL验证
- ./influx -execute 'command' 执行命令
- ./influx -type 'influxql|flux':指定调用REPL时使用的查询语言
- ./influx -format 'json|csv|column':指定服务器响应内容的格式
- ./influx -precision 'rfc3339|h|m|s|ms|u|ns' 指定时间戳格式,默认格式为rfc3339
- ./influx -consistency 'any|one|quorum|all':指定写入一致性级别
- ./influx -pretty :以阅读友好的方式显示JSON格式的内容
- ./influx -import 从之前的备份文件中还原备份数据
- ./influx -pps 设置数据导入时每秒允许允许导入多少条时许数据。默认为0,不限制导入速率。
- ./influx -path 需要还原的备份文件的存储路径
- ./influx -compressed 设置为true时,表示支持导入压缩格式的备份文件。
- influxd
- 服务器守护进程
- ./influxd --config "配置文件" 通过配置文件启动
- ./influxd bakcup "位置" 数据备份
- ./influxd config 显示默认的配置信息
- ./influxd help 显示帮助信息
- ./influxd restore "文件" 还原之前通过backup命令备份的数据
- ./influxd run 运行程序,默认参数,可忽略
- ./influxd version 显示版本信息
- influx_inspect
数据检查工具,可查看TSM文件格式的内容- ./influx_inspect deletetsm 批量删除原始TSM文件
- ./influx_inspect dumptsi 显示tsi文件的底层细节信息
- ./influx_inspect dumptsm 显示tsm1文件的底层细节
- ./influx_inspect buildtsi从tsm1数据中生成tsi1索引信息
- ./influx_inspect help 显示帮助信息
- ./influx_inspect export 导出数据
- ./influx_inspect report显示分片级别的数据信息
- ./influx_inspect verify 验证TSM文件的完整性
- ./influx_inspect verify-seriesfile 验证时序文件的完整性。
- influx_stress
压力测试工具。现在不推荐是使用了,推荐使用influx-stress和influxdb-comparisons。- influx-stress:https://github.com/influxdata/influx-stress
- influx-comparisons:https://github.com/influxdata/influxdb-comparisons
-
influx_tsm
数据格式转换工具
配置文件
//是否上报InfluxDB的配置信息到官网,true不上报
reporting-disabled = true
//RPC服务对应的地址,用于备份数据通信等,默认监听8088
bind-address = "127.0.0.1:8088
//meta节点的配置信息
[meta]
dir="/root/.influxdb/meta" #meta数据和Raft数据库的存储目录
retention-autocreate=true #是否在创建数据库时创建默认保留策略autogen,默认为true
logging-enabled = true #是否打开META日志
//data节点配置
//coordinator节点配置
//retention节点配置
//分片预创建配置
//monitor配置
//subscriber配置信息
//http配置
//logging配置
//graphite配置
//collectD配置
//openTSDB配置
//UDP协议配置
//连续查询配置
//TLS配置
基础操作
influxDB支持通过InfluxDB API和influx命令来操作,InfluxDB API是一种基于HTTP协议的REST API,推荐生产环境使用。influx命令行是一种类似于MySQL命令行的工具,推荐日常数据库管理中使用。为了方便演示,我们使用influx命令执行基础写入、查询操作。
连接数据库
首先启动命令行,连接到本地服务器,在安装目录的usr/bin目录下执行
./influx
命令
查看数据库
通过show databases
命令查看数据库
新安装的
InfluxDB
没有数据记录,所以输出结果中只看到_internal
创建数据库
create database "数据库名字", 比如create database my
选定数据库
use 数据库名字
插入操作
通过insert命令向表my中插入一条有关cpu负载的时序数据记录。注意,逗号前后不能有空格。
insert cpu_usage,host=server01,region=ch value=2
//指定时间戳,不指定的话,系统将写入时间作为时间戳
insert cpu_usage,host=server01,region=ch value=2 1592906727717942736
//cpu_usage是表明,host、region是tag,value、name是值,最后是时间戳
insert cpu_usage,host=server01,region=ch value=2,name=zhongguo 1592906727717942736
查看表名
show measurements,查看数据库my中当前所有的表信息,与mysql不通的是,influxDB不需要提前创建表,当写入时序数据时,influxDB会自动创建新表。
删除表
drop measurement cpu_usage
删除数据库
drop database my 删除数据库my
查询表信息
select * from cpu_usage
查询tag字段
show tag keys
显示field字段
show field keys
influxDB简单入门先介绍到这里,下一篇我们进一步学习。
网友评论