工业物联网 —— 新型数据库的召唤

2024-02-25 13:20

本文主要是介绍工业物联网 —— 新型数据库的召唤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

各位小伙伴大家好,我们又见面了,我们都知道时序数据库的主要应用场景之一就是工业物联网(IIoT)行业,因此本次Jesse就想和大家聊聊IIoT。 

本文仅代表个人观点,如有偏颇之处,还请海涵~

我们正在进入工业4.0时代,一系列的新技术使我们的生产经营和组织模式变得高效,比如预测性的机器分析、计算机视觉技术、无人驾驶的车辆以及具有增强现实功能的工业级可穿戴设备等等。虽然新技术多种多样,但我们还是能从中看到这些技术的共性—— 为了支持数据化的科学决策,他们都需要采集、处理、存储和分析大量的数据。IIoT(工业物联网)的核心价值就是希望使组织能够以可扩展、高性能、高效的方式来从大量数据中分析和提取价值。而数据库技术正是实现这一价值的核心。

不幸的是,由于缺乏必要的技能和相关基础设施技术的挑战,Cisco之前的调查认为70%的物联网项目是失败的。与此同时,工业组织大都面临传统基础设施转型的挑战,通过云端实时优化其流程是他们可供选择的转型方式之一。

IIoT数据是一个挑战

首先,IIoT所涉及的数据源和前端数据采集点广而分散,所以其数据规模和类型与传统和网络规模下的数据有诸多不同,传统的数据库和基础设施技术根本不适合处理IIoT规模的机器数据量。关于IIoT数据规模如果没有直观体会,我们可以试想一下,现在有一个拥有数万传感器的工厂,从一万个不同类型的传感器主动收集数据,同时这个组织还可能在世界各地经营着100家这样的工厂,运营着每条供应链。IIoT场景下选用的数据库,其任务不仅是收集这些庞大的传感器数据量,而且还要提供高效的性能并实现纳秒级的实时数据分析。

其次,IIoT场景的数据具有多样性的特点。IIoT传感器数据通常存储为多层嵌套的JSON文件。还有一些相关数据,例如文章和产品信息、批次信息、拓扑结构和固件,这些数据必须与传感器数据相关联,并结合情景才有意义。

最后,IIoT场景还生成带有时间戳的时序数据。比如,用于跟踪流程、地理空间以协调移动设备的数据点、用于验证产品状况的图像和其他多媒体BLOB数据。随着工业组织规模的扩大,如此庞大的数据范围必须易于管理。工业组织希望保持简单易用,因此他们更倾向于使用单个数据库而不是协调多个数据库。

传统数据库不适合IIoT

首先,传统的SQL类型数据库,比如,Oracle、MySQL等。他们的缺点我们在之前的介绍中其实以及多次提到过,其扩展成本很高,同时也满足不了IIoT场景下的高数据量和复杂查询,其问题很多。

其次,NoSQL和NewSQL数据库(如MongoDB和Apache Cassandra),他们的易用性使得它们有一定吸引力。不过,它们需要专业的工程师和复杂的管理,从而导致高昂的人员成本。同时,绝大多数工业工程堆栈都是SQL连接的,这使得这些NoSQL和NewSQL解决方案难以与现有工具集成和适应。最后,这些数据库选项也并未针对IIoT工作负载进行性能优化。

最后,我们来看看现有的时序数据库产品,看起来它们目前是IIoT场景下最有力的数据库提供商。但它们大都也有自己的不足,比如某国际领先的时序数据库厂商:其一,其开源版本没有完全分布式的架构,例如,连接、子查询和聚合查询不是以完全分布式的方式实现的,这使得横向扩展计算能力来满足这些需求变得困难。其二,它可以轻松存储数据并制作时间序列图表,但不是为运行高度并发的工作负载而构建的。而IIoT工作负载可能需要处理每个节点的数千个连接。例如,在高负载下运行交互式仪表板并同时写入系统。由于工业环境中数据的海量和速度,一个数据库每秒必须处理多个时序查询,这比标准时序数据库的顶级查询速度要快得多。

IIoT呼唤新的数据库

IIoT需要无限的可扩展性,因为IIoT解决方案可以轻松达到TB甚至PB级的数据。数据库不仅必须处理该数据量,还必须满足计算端的性能需求。存储和计算的可扩展性必须像添加新节点一样简单,这就好比我们在搭建乐高积木。此外,我们希望数据库是通用的数据模型,能够存储IIoT所需的不同类型的数据。它还必须支持大规模和高度并发的工作负载,并具有动态架构,使组织能够在运行时添加列,而无需重新标记或重放数据。最后,数据库必须为混合云和本地边缘部署提供支持。工厂需要能够在没有可靠的互联网连接或不需要云连接的情况下实时做出关键决策并启用分析。

IIoT的成功取决于效率

IIoT部署必须易于集成和操作,同时考虑效率。例如,文档和关系型数据库可能需要八个节点才能以可接受的速度运行一个 IIoT用例。相比之下,IIoT新的数据库可能只需要三个节点就可以单独处理相同的用例,从而大幅提高效率。效率还意味着能够规模化终端用户数量。例如,当组织利用交互式仪表板看到相关结果和机会时,他们可以迅速扩大员工数量。这是计算需求的巨大增长,当然扩展必须简单且价格合理。此外,高效的IIoT数据库解决方案是任何开发人员都可以开箱即用的解决方案,并且在将其作为分布式引擎运行时具有较低的复杂性。理想情况下,数据库将在很少维护和监督的情况下运行,并且不需要专门的DevOps人员。

数据库世界的发展日新月异,面对新的IIoT场景,我们期待新的数据库出现,CnosDB正在朝着这一方向努力。

CnosDB简介

CnosDB是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。

欢迎关注我们的代码仓库,一键三连🙇🙇🙇:https://github.com/cnosdb/cnosdb

这篇关于工业物联网 —— 新型数据库的召唤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745607

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

MybatisPlus中removeById删除数据库未变解决方案

《MybatisPlus中removeById删除数据库未变解决方案》MyBatisPlus中,removeById需实体类标注@TableId注解以识别数据库主键,若字段名不一致,应通过value属... 目录MyBATisPlus中removeBypythonId删除数据库未变removeById(Se

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结