全网最易懂,开源时序数据库influxDB,实际应用评测

前言:

        当今是信息爆炸的时代,在处理高频数据时,关系型数据库oracle/mysql明显表现出乏力,因秒级、毫秒级高频数据,分分钟可以把关系型数据库的表塞爆。在日常生活工作中,我们经常会遇到哪些需要高频分析的场景呢?本次我们借鉴时序数据库influxDB来引出高频数据分析的实践方案。

一、场景引导选型

        1、高频数据场景

        首先来说说我接触到的高频数据场景,因最近项目在做设备运行状态的分析,如车间24小时运行的反应釜、流量计、浓缩机、电表、水表等。我们需要收集对应运行数据,与工艺单关联进行产品生产质量的预判等。因某个因素的异常都会影响产品的最终质量,因此我们需要持续观测所有指标数据,并及时预警,处理异常。

        如果我们有1000台设备,需要观测的参数为200个,我们需收集1秒频次的数据,那我们一天数据量=1000*200*24小时*60分钟*60秒=17,2800,000,000(十七亿二千八百万)条数据。因此在高频数据场景下,传统关系型数据是不能满足应用需要的。

        在高频数据采集场景下,我们对数据库的要求是支持大量写入IO,存储占用空间少,并能及时完成运行异常预警。

        其实还有一个我们每个人都会接触的高频数据预警的场景,就是我们自己电脑运行的监控。

        我们怎么去评价一台电脑或者服务器运行正常呢,那就是CPU利用率不能超90%,内存占用不能超90%,磁盘SSD不能超80%等,当我们的CPU突然飙到了90%以上,并持续了几分钟,那就证明我们的电脑或者服务器是存在问题的,如果我们没收集这些性能指标数据,我们可能很难知道哪里出问题了,因此我们收集高频数据还有一个很重要的场景就是做系统的运维监控

        因此高频数据常用场景为:iot数据采集分析+设备运行监控

        2、高频数据适配数据库

       通过场景需求调研,时序数据库是最适配高频数据场景的数据库之一,时序数据库专门为时间标记的数据建立,对时间序列数据的存取有着天然的优势。在这类数据库中,数据通常会附带一个时间戳,优化了基于时间的查询和聚合操作。例如,在IoT(物联网)或金融行业中广泛应用的InfluxDB,能够快速处理和存储大量时序数据,并提供实时的分析功能。

 二、InfluxDB优缺点

        InfluxDB分为OSS社区版和 Enterprise企业版,OSS社区版是免费的,但是没开放集群功能,如果有集群需求可以选择Enterprise版本。但一般的应用场景OSS社区版就够用了,因此InfluxDB的优势还是在于高频的数据采集、预警,复杂的数据分析应用传统的关系型数据会是一个更好的方案。

        1、优点

        性能优化: 专为写入和查询时间序列数据而优化,处理大量写入操作快速,查询延迟低。

        易扩展: 支持水平扩展(sharding),可轻松处理增长的数据量。

        查询语言: 使用易于理解的SQL-like语法(InfluxQL)进行查询,方便用户熟悉。

        灵活性: 支持多种数据聚合和处理,如窗口函数和连续查询语言(CQL)。

        轻量级设计: 适合资源受限的环境,内存占用相对较低。

        2、缺点:

        复杂性: 对于非时间序列数据或复杂的数据模型,InfluxDB可能不够灵活,需要额外处理转换。

        存储限制: 对于非实时数据,长期存储可能会面临挑战,需要定期归档或清理。

        可视化工具: 相比于商业数据库,InfluxDB的可视化工具可能不够丰富或者定制化程度不高。

        社区支持与商业支持: 如果需要高级支持或定制化服务,大型企业可能更倾向于使用商业化的时间序列数据库产品。

        总的来说,时序数据库适合做高频数据采集、预警,如果是复杂数据分析就不是很合适。

三、influxDB应用分析

        时序数据库拥有高性能是因为他们摒弃了复杂的数据结构设计,如采用列式存储、不支持删除和高频的更新数据操作。正如时序数据库的经典介绍,时间不可倒流,数据只写不改

        1、结构优化

           如下图所示influxDB没有表的概念,数据采用列式存储的方式,通过_measurement(类似表名)+_field/_vaule(字段名及对应值:键值对)+_time(时间戳)组合时序数据库的“表”的必要元素。其中还有一个name为表索引,这个设计是为了提高数据查询效率和对应字段所属的分类。

        这也是时序数据库能支持高写入、高查询吞吐量的场景的原因。

        2、数据采集方式

        influxDB支持CSV文件格式数据采集和符合influxDB语法行

        同时支持目前绝大多数编程语言

        influxDB也有自己专门的数据采集工具 Telegraf

        因此,我们可以使用自己熟悉的编程语言来完成数据的采集工作,同样也可以使用时序数据库的数据采集插件,如 Telegraf,因此influxDB数据采集的生态还是很完善的。

        3、业务预警

        上面提到一些预警的场景,同样的在influxDB里面就自带了一套预警系统,如我们要预警我们的CPU利用率,设置阀值为90%,当超过90%时我们进行预警提醒,这就是一个常用的预警场景。

         如上图所示,我们通过设置定时预警任务来完成我们需要的预警操作。

四、总结

        总的来说,时序数据库能很好的解决高频数据采集、预警的问题,但是不适合做复杂的数据分析,因此我们在做数据库架构和调研时,可以根据自己的需求灵活选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[自动驾驶 SoC]-3 英伟达Orin

NVIDIA Jetson AGX OrinTM series (资料来源:nvidia-jetson-agx-orin-technical-brief.pdf) 1 整体介绍 1) Orin SoC结构 Orin SoC,如下图所示,由一个NVIDIA Ampere architecture GPU, Arm Cortex-A78AE CPU, 下一代深度学习核视觉处理加速…

企业防盗版,如何保障上网安全

信息化的发展企业日常办公越来越依赖互联网。然而,终端及普通PC在访问互联网过程中,会面临各种不容忽视的风险。这些风险包括: 员工主动故意的数据泄漏:员工可能故意泄露敏感信息。后台应用程序外发信息:一些应用程序…

代码覆盖率:衡量测试的有效性

在软件开发领域,确保代码的可靠性和稳健性至关重要。实现这一目标的关键实践之一是通过测试。但是,测试本身需要进行测量和评估,以确保其有效性。这就是代码覆盖率发挥作用的地方。代码覆盖率是一种指标,它量化了测试期间程序源代…

遥感图像地物覆盖分类,数据集制作-分类模型对比-分类保姆级教程

遥感图像地物覆盖分类,数据集制作-分类模型对比-分类保姆级教程 在遥感影像上人工制作分类数据集采用python+gdal库制作数据集挑选分类模型(RF、KNN、SVM、逻辑回归)选择随机森林模型建模分类遥感图像预测在遥感影像上人工制作分类数据集 1.新建shp文件 地理坐标系保持和影像…

本地大模型服务 Ollama:从安装到使用

文章目录 前言一、下载安装1.1 官网安装1.2 压缩包安装1.3 docker 安装二、命令行使用2.1 常用命令2.2 模型列表2.3 使用三、Open-WebUI3.1 安装3.2 修改语言3.3 使用参考前言 Ollama 是专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的开源框架,它有如下几个特点…

如何应对 Android 面试官 -> MVVM 实战一个新闻客户端 (上)

前言 本章我们基于重构的方式进行一个 MVVM 的实战,我们将一个新闻列表的普通实现,一步一步的改造成 MVVM 的架构模式,一共分为上中下三个章节; 传统方式实现 首先咱们来看具体实现的最终效果,就是一个新闻列表页面&a…

connect-caption-and-trace——用于共同建模图像、文本和人类凝视轨迹预测

介绍 论文地址:https://arxiv.org/abs/2105.05964 源码地址:https://github.com/facebookresearch/connect-caption-and-trace 在过去,计算机视觉和自然语言处理领域的模型和算法的发展只有偶尔的重叠,但近年来,这两…

python-04

str.spilt() str.spilt(str" ", num string.count(str)); str:分隔符,默认为所有的空字符,包括空格、换行符"\n"、制表符"\t"等。 num:分隔次数 str "小时候 总有他们在耳边叮咛嘱咐 小…

第四届人工智能、机器人和通信国际会议(ICAIRC 2024)

第四届人工智能、机器人和通信国际会议(ICAIRC 2024) 2024 4th International Conference on Artificial Intelligence, Robotics, and Communication 2024年12月27-29日 | 中国厦门 重要信息 会议官网:www.icairc.net 录用通知时间&…

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch1 基本概念

PPT 截取有用信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 学堂在线 习题 2、相应章节 过电子书 复习 3、总体 MOOC 过一遍 学堂在线 课程页面链接 中国大学MOOC 课程页面链接 B 站 视频链接 PPT和书籍下载网址: 【github链接】 onedrive链接: 【…

Python4 操作MySQL数据库

通过python的pymysql库连接到本地的MySQL数据库,并执行查询操作来获取数据,然后打印出每一行的数据,这里以一个简单的学生表为例进行介绍。 1. MySQL的安装与数据准备 首先需要安装MySQL,在安装完成之后使用Navicat与本地数据库…

Docker 部署项目,真的太雅了~

大家好,我是南城余! 最近在找工作,正好手里有台服务器,之前项目上线用的宝塔部署项目上线,在公司实习了一年后,发现如今项目部署都使用的是容器化部署方案,也就是类似于和 Docker 一样的部署方案…

海外仓系统能解决海外仓哪些难题?海外仓标准化管理实用指南

海外仓管理问题常常导致业务流程变慢,根据我们的调查显示,至少有48%的海外仓每周都会出现一些“小意外”。甚至这些小问题每天都在发生,问题的出现已经严重影响到了海外仓业务的进行。今天我们将重点分析海外仓比较常见的一些问题&#xff0c…

springboot vue 开源 会员收银系统 (7) 收银台的完善 新增开卡 结算

前言 完整版演示 开发版演示 在前面的开发中,我们成功完成了商品分类和商品信息的搭建,开发了收银台基础。现在,我们将进一步完善收银台的功能,添加开卡和结算功能,并在后台实现会员卡的创建和订单保存。同时&#xff…

地瓜网络技术综合助手教你一键下载腾讯会议高清视频

当您错过腾讯会议的直播课程,不必担心,地瓜网络技术综合助手帮您轻松获取视频回放。 只需几个简单步骤,即可在手头保留珍贵的学习资料。 首先,启动地瓜网络技术综合助手, 进行软件初始化并开启监测功能。 接下来&…

智慧乡村和美人家信息化系统

一、简介 智慧乡村和美人家信息化系统是一个综合管理平台,集成了首页概览、一张图可视化、数据填报、智能评估、便捷申报、公开公示、任务管理、活动发布和灵活配置等功能。该系统不仅提升了乡村管理效率,也优化了家庭生活的便捷性。通过一张图&#xf…

BEVM背靠比特大陆打造新赛道,算力RWA成下一个千亿市场?

众所周知,在加密行业,每隔一段时间就会有一个新的概念或者一个新词出现,并引来社区和资本的追捧关注,笔者近期在浏览新闻时,发现了一个特别有意思的新概念——算力RWA,在社区引起了不少讨论。 该词最早出现…

Flutter【组件】按钮

简介 flutter 按钮组件。提供一种封装按钮组件的思路,并不支持过多的自定义属性。根据使用场景及设计规范进行封装,使用起来比较方便。 github地址:https://github.com/ThinkerJack/jac_uikit pub地址:https://pub.dev/package…

el-upload组件校验不通过预览列表依然显示图片问题解决

如图校验不通过的图片依然显示在预览列表了&#xff0c;需要在校验不通过的时候移除图片 <el-uploadclass"upload-cls":action"ossSignature.host":auto-upload"false"ref"upload":list-type"listType":limit"limi…

如何在React中使用CSS模块,并解释为什么使用它们比传统CSS更有益?

在React中使用CSS模块是一种将CSS类名局部化到单个组件的方法&#xff0c;从而避免了全局作用域中的类名冲突。CSS模块允许你为组件编写样式&#xff0c;并确保这些样式只应用于该组件&#xff0c;而不会影响到其他组件。 以下是在React中使用CSS模块的步骤&#xff1a; 安装C…