InfluxDB 基础知识和常用命令汇总
InfluxDB
简介
InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。类似的数据库有Elasticsearch、Graphite等。
安装
- MacOS
1 | $ brew install influxdb |
基本概念
名词
InfluxDB 名词 | 对应的数据库概念 |
---|---|
database | 数据库 |
measurement | 表 |
points | 表中一行数据 |
Point
point 由时间戳(time)、数据(field)、标签(tags)组成。
point属性 | 传统数据库概念 |
---|---|
time | 每个数据记录时间,是数据库中的主索引(会自动生成) |
fields | 各种记录值(没有索引的属性)也就是记录的值:温度, 湿度 |
tags | 各种有索引的属性:地区,海拔 |
Series
所有在数据库中的数据,都需要通过图表来展示,而这个series表示这个表里面的数据,可以在图表上画成几条线:通过tags排列组合算出来。
1 | $ show series from measurement_name |
入门操作
连接远程数据库
1
$ influx -host 192.168.9.4 -port 7076
连接本地数据库时先启用
influxd
进程,之后执行influx
进入本地数据库 ;查看命令
1
2
3
4
5
6
7$ show databases // 查看数据库
$ use database_name //使用数据库
$ show measurements // 查看表
$ show field keys // 查看表中列名及其属性
$ show tag keys // 查看关键key值
$ select * from table_name limit 5 //查看表中数据
$ show retention policies // 查看数据保留策略删除命令
1
2drop measurement measurement_name //删除表
DELETE FROM <measurement_name> WHERE [<tag_key>='<tag_value>'] | [<time interval>] // 删除数据
备份与恢复
1 | influxd backup -portable /home/influxdb_backup |
导出/导入数据
方法一
1 | influx -database 'telegraf' -host 'localhost' -username 'admin' -password '123456789' -execute 'select * from mem' -format 'csv' -precision 's' > mem-export.csv |
导出的数据格式如下,📢 导出的表格数据结构不易导入其它数据库;
方法二
influx_inspect -export
导出 line protocol 格式直接导入其它数据库;
1 | influx_inspect export |
对应的导入数据:
1 | influx |
其它操作
- 网页查询:[
http://10.0.80.167:8086/query?db=aiops_quoridor&q=](http://10.0.80.167:8086/query?db=aiops_quoridor&q=) {query}
Python API
参考文档: InfluxDB 5.3.0 documentation
1 | import pandas as pd |
常见问题
查询报错:“ERR: error parsing query”?
原因:查询语句中包含特殊字符且没有添加双引号,例如‘-,.’等。
解决方法:查询字段添加双引号!
字符串查询:“查不到结果”?
字符串使用单引号
''
查看 influx-proxy log
1 | docker logs --tail 100 10000-influxproxy |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梦家博客!
评论
TwikooValine