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

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

相关文章

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma