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

简介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 支持水平扩展,可以通过增加节点来提高存储和查询能力

安装

进入官网

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
    '

更改 token ,org ,和 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同名

相关推荐
SelectDB11 分钟前
SelectDB 是哪个公司的?是国产数据库吗?一篇讲清飞轮科技与 Apache Doris 的关系
数据库
GrowingIO技术社区14 分钟前
留存率怎么算?用户范围、回访行为与时间窗口
数据分析
这个DBA有点耶20 分钟前
库内计算推理:一条SQL背后的算子融合,和外挂方案差了几次网络往返
数据库·人工智能·sql
一知半解仙2 小时前
乌镇2026:当“智能互联网”第一次被数据照进现实
人工智能·物联网·机器人·开源
这个DBA有点耶2 小时前
函数索引的“完全一致”有多苛刻:写法、字符集、类型,差一处就失效
数据库·mysql·代码规范
星恒随风2 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
Alluxio3 小时前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
数据库急诊室_阿哲7 小时前
一次加索引建议的复核记录:从报告到签字
数据库·ai数据库
青瓦梦滋8 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
慧都小妮子8 小时前
Wyn商业智能国产数据库适配:数据接入、分析缓存与审计日志验证清单
数据库·数据分析·数据可视化·审计日志·商业智能