InfluxDB:开启你的高性能读写数据之旅!

简介influxDb

InfluxDB 是一款开源的时序数据库(Time Series Database,简称TSDB)。

专门设计用于高效地存储、检索和分析时间序列数据。

这种类型的数据通常由时间戳和一组数值组成,广泛用于监控系统、传感器数据收集、实时分析等多种应用场景。

influxDB具有以下特点:

高性能数据存储InfluxDBTSM 引擎提供了数据的高速读写和压缩功能,使其在处理大规模时序数据时表现出色。

简单高效的API接口InfluxDB 提供了简单高效的 HTTP API 用于数据的写入和查询,以及类似SQL的查询语言,便于用户进行数据聚合查询

索引功能InfluxDB 允许对 tag 建立索引,实现快速有效的数据查询

数据保留策略InfluxDB 具有数据保留策略,可以自动使旧数据失效,从而优化存储空间的使用

部署简单InfluxDB 利用 Go语言 的特性,无需任何外部依赖即可独立部署,简化了部署过程

丰富的聚合运算和采样能力InfluxDB 提供了灵活的数据保存策略和连续查询功能,适合对海量数据进行采样和分析

支持多种协议InfluxDB 支持多种数据采集协议,包括 HTTPUDP 等,同时兼容其他数据采集组件的通讯协议

强大的生态InfluxDBTICK 栈的一部分,与其他组件如 TelegrafChronografKapacitor等集成,提供从数据采集到可视化的完整解决方案

数据可视化和监控集成InfluxDB 可以与 GrafanaPrometheus 等数据可视化工具和监控系统集成,方便用户创建监控仪表盘和分析数据

高性能读写InfluxDB 针对时间序列数据进行了优化,具有高写入和高查询性能,适合处理大规模数据量

数据压缩InfluxDB 利用时间序列数据的特性进行数据压缩,有效减小存储占用

可扩展性InfluxDB 支持水平扩展,可以通过增加节点来提高存储和查询能力

安装

进入官网

arduino 复制代码
https://www.influxdata.com/

下载influxdb

启动服务

把下载好的安装包解压后,打开 cmd 窗口,切换到运行文件目录。输入:influx

此时 influx 服务已经启动,然后就是初始化配置。

基本配置

打开浏览器窗口输入以下网址:

arduino 复制代码
http://127.0.0.1:8086/

出现以下界面

开始配置

配置完成

influx 名词跟关系数据库的对比

sql influx
表(Table) 逻辑容器(measurement)
库(database) 桶(buckets)
列(column) 字段(Field)
索引(Index) 索引(tags)

添加数据

此处用 http 添加数据,用 postman 导入下面 url

bash 复制代码
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
    '

更改 tokenorg ,和 bucket

influx 的写入格式如下:

ini 复制代码
measurement,tag_key=tag_value field_key="field_value" timestamp

查看添加的数据

读取数据

此处用 http 请求读取数据,用 postman 导入以下 curl

bash 复制代码
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

bash 复制代码
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 的性能强大,但是跟传统数据的使用场景还是有很大区别,比如时序数据库不支持修改数据。

选择合适的工具,完成目标才是最重要的。

-- 欢迎点赞、关注、转发、收藏【我码玄黄】,gonghao同名

相关推荐
bubiyoushang88833 分钟前
基于 C/C++ 的 MQTT 物联网通信协议实现
c语言·c++·物联网
网易CodeWave-小码哥1 小时前
AI Coding沙龙杭州站回顾,共探ISV效能利润双增长
数据库·人工智能
gstl2 小时前
sql执行顺序
数据库·sql
本地化文档2 小时前
psycopg3-docs-l10n
数据库·python·postgresql·github·gitcode·sphinx
Safeploy安策数据2 小时前
从算法到架构:构建企业级数据库加密与密钥防护体系的实战手册
数据库·安全·架构
科研小刘带你玩学术2 小时前
【科研快报】AI时代如何高效“组队“?计算社会选择理论带来新思路
数据挖掘·数据分析·計算社會選擇·委員會選舉·參數化複雜性分析
Litluecat2 小时前
信创改造,Oracle切海量数据库,语法与类型坑
数据库·sql·oracle·信创·字段类型·海量
星越华夏2 小时前
MongoDB安装实战指南
数据库·mongodb
川石课堂软件测试2 小时前
性能测试|JMeter常用线程组设置策略
大数据·数据库·功能测试·测试工具·jmeter·mysql·单元测试
cheems95272 小时前
[Redis] redis常见命令和String字符串解析
数据库·redis·缓存