简介influxDb
InfluxDB
是一款开源的时序数据库(Time Series Database
,简称TSDB
)。
专门设计用于高效地存储、检索和分析时间序列数据。
这种类型的数据通常由时间戳和一组数值组成,广泛用于监控系统、传感器数据收集、实时分析等多种应用场景。
influxDB具有以下特点:
高性能数据存储:InfluxDB
的 TSM
引擎提供了数据的高速读写和压缩功能,使其在处理大规模时序数据时表现出色。
简单高效的API接口:InfluxDB
提供了简单高效的 HTTP API
用于数据的写入和查询,以及类似SQL
的查询语言,便于用户进行数据聚合查询
索引功能:InfluxDB
允许对 tag
建立索引,实现快速有效的数据查询
数据保留策略:InfluxDB
具有数据保留策略,可以自动使旧数据失效,从而优化存储空间的使用
部署简单:InfluxDB
利用 Go语言
的特性,无需任何外部依赖即可独立部署,简化了部署过程
丰富的聚合运算和采样能力:InfluxDB
提供了灵活的数据保存策略和连续查询功能,适合对海量数据进行采样和分析
支持多种协议:InfluxDB
支持多种数据采集协议,包括 HTTP
、UDP
等,同时兼容其他数据采集组件的通讯协议
强大的生态:InfluxDB
是 TICK
栈的一部分,与其他组件如 Telegraf
、Chronograf
、Kapacitor
等集成,提供从数据采集到可视化的完整解决方案
数据可视化和监控集成:InfluxDB
可以与 Grafana
、Prometheus
等数据可视化工具和监控系统集成,方便用户创建监控仪表盘和分析数据
高性能读写:InfluxDB
针对时间序列数据进行了优化,具有高写入和高查询性能,适合处理大规模数据量
数据压缩:InfluxDB
利用时间序列数据的特性进行数据压缩,有效减小存储占用
可扩展性:InfluxDB
支持水平扩展,可以通过增加节点来提高存储和查询能力
安装
进入官网
https://www.influxdata.com/
下载influxdb
启动服务
把下载好的安装包解压后,打开 cmd
窗口,切换到运行文件目录。输入:influx
此时 influx
服务已经启动,然后就是初始化配置。
基本配置
打开浏览器窗口输入以下网址:
http://127.0.0.1:8086/
出现以下界面
开始配置
配置完成
influx 名词跟关系数据库的对比
sql | influx |
表(Table) | 逻辑容器(measurement) |
库(database) | 桶(buckets) |
列(column) | 字段(Field) |
索引(Index) | 索引(tags) |
添加数据
此处用 http
添加数据,用 postman
导入下面 url
curl --request POST \ "http://localhost:8086/api/v2/write?org=YOUR_ORG&bucket=YOUR_BUCKET&precision=ns" \ --header "Authorization: Token YOUR_API_TOKEN" \ --header "Content-Type: text/plain; charset=utf-8" \ --header "Accept: application/json" \ --data-binary ' airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 1630424257000000000 airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 1630424257000000000 '
更改 token
,org
,和 bucket
influx
的写入格式如下:
measurement,tag_key=tag_value field_key="field_value" timestamp
查看添加的数据
读取数据
此处用 http
请求读取数据,用 postman
导入以下 curl
curl -G "http://[InfluxDB_host]:8086/query?db=mydb" --data-urlencode "q=SELECT+\"value\"+FROM+\"temperature\"+WHERE+time+%3E%3D+now%28%29+-+1h" --header "Authorization: Token [YourAuthToken]"
更改成你自己的配置,读取数据如下:
删除数据
此处用 http
请求读取数据,用 postman
导入以下 curl
curl --location --request POST 'http://127.0.0.1:8086/api/v2/delete?org=root&bucket=environment' \ --header 'Authorization: Token [youer token]' \ --header 'Content-Type: application/json' \ --data-raw '{ "start":"2020-06-10T16:00:00Z", "stop":"2024-07-11T19:40:00Z" }'
控制面板查看,此时是有数据的:
执行删除:
此时查看数据已经没有了:
总结
InfluxDB
的使用场景主要集中在需要高效处理和分析时间序列数据的领域。
比如:监控系统,物联网,实时分析,金融交易监控,环境监测等。
尽管 influx
的性能强大,但是跟传统数据的使用场景还是有很大区别,比如时序数据库不支持修改数据。
选择合适的工具,完成目标才是最重要的。