0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

物联网嵌入式数据库的来龙去脉

星星科技指导员 来源:嵌入式计算设计 作者:嵌入式计算设计 2022-09-10 15:56 次阅读

虽然物联网IoT) 的许多方面都已经到位,但用于管理物联网传感器数据的数据库仍然存在一些障碍。在与 hamsterdb 的 Christoph Rupp、ITTIA 的 Sasan Montaseri、McObject 的 Steve Graves 和 ScaleDB 的 Mike Hogan 的圆桌会议中,我们探讨了当前限制嵌入式数据库、扩展和保护 IoT 数据库的因素,以及用于管理和分析传感器输入的可用工具和技术来自连接的嵌入式设备的海洋。

当前嵌入式数据库和数据库管理系统 (DBMS) 的瓶颈在哪里,尤其是与物联网相关的瓶颈?

MONTASERI,ITTIA:嵌入式数据库将根据其所在的系统类型具有不同的数据库。我们将传感器、移动设备、物联网网关设备和嵌入式系统视为物联网系统的重要组成部分,每一个都面临着不同的数据管理挑战。

对于传感器而言,内存和闪存介质等有限资源是最重要的瓶颈,因为它们通常会产生源自单一来源的数据流。对于物联网网关,并发读取访问的写入性能很重要,因为设备将从多个传感器或类似设备收集数据。对于移动设备,主要瓶颈是无连接时数据的可用性。对于嵌入式系统,这些子系统的互操作性和可维护性非常重要。

GRAVES,McOBJECT:设备上嵌入式数据库系统的障碍,在许多情况下,与其说是 DBMS 本身的障碍,不如说是嵌入式系统(设备)的限制。例如,虽然 McObject 的 eXtremeDB DBMS 是在 2000 年明确为嵌入式系统编写的,重点是高效率和“占用空间小”,但它仍然需要至少 24 位内存地址(24 位指针),实际上大约需要 1 MB 内存。eXtremeDB 数据库系统核心的代码大小约为 150 KB,它至少需要 40 KB 的 RAM 用于数据库字典和其他运行时元数据,例如事务缓冲区、连接/事务/对象句柄、等等然后你需要内存来存储数据本身,或者如果它是一个持久性数据库,则需要缓存。

16 位系统根本无法为 DBMS (64 KB) 寻址足够的内存。尽管您可以将 DBMS 挤入该空间,但它不会为元数据、应用程序代码等留出空间。另一方面,一个 24 位指针可以寻址 16 MB——为 DBMS 和应用程序提供了足够的空间。

RUPP、hamsterdb:收集传感器数据或其他数据大多需要存储,但不一定是数据库。特别是处理能力低的设备会将其数据传输到服务器进行后处理和分析。瓶颈通常是用于将数据传输到中央服务器的 I/O 写入性能或网络吞吐量。提高 I/O 性能主要是金钱问题,因为更好的设备成本更高。

但是,通常可以在不牺牲数据质量的情况下应用策略来减少数据量,例如每秒仅存储一个平均值而不是许多离散值。此外,传感器数据通常不会随时间发生太大变化,因此可以很好地压缩(图 1,表 1)。整数压缩不是 CPU 密集型的。即使是低成本的 CPU 也可以每秒压缩数百万个整数,从而大大降低了存储需求。通过一些创造力,通常可以创建针对特定数据模式优化的定制解决方案。

在流行的数据库开发语言中,哪一种最适合物联网中的嵌入式数据库部署,为什么?

GRAVES:对于设备上的数据管理,SQL 可能不适合绝大多数用例。我们认为 C/C++ 和具有快速原生 API 的 DBMS 是最合适的。对于具有足够资源的嵌入式系统,其中一台嵌入式 Java 机器(例如 Aicas 的 JamaicaVM)可能是合适的。SQL 将过于占用资源。任何 SQL 实现的代码大小都将比非 SQL 解决方案大得多——不要与“noSQL”混淆——并且对于任何给定的工作单元会消耗更多的 CPU 周期。

设备上的嵌入式数据库系统将主要用于收集数据、基于该数据采取一些行动,并对数据进行一些处理/操作。这些操作不需要也不会受益于 SQL 语言的健壮性和复杂性。设备不会执行复杂的(当然也不是临时的)查询,这些查询涉及具有复杂过滤和排序的多个表。

另一方面,在设备的上游,用于收集、聚合和以其他方式处理物联网生成的大量数据的 DBMS 肯定会受益于 SQL。

HOGAN,SCALEDB:对于后端系统,即那些聚合和处理数据(分析、执行触发器等)的系统,大部分挑战是处理海量数据,这与来自间歇性推文或发布的人类数据不同。

MySQL 使用 SQL。它适用于在线事务处理 (OLTP) 用例,主要用于 IoT 的后端——不是设备端,而是网关和后端。大多数公司最终都采用了多种技术组合,例如用于客户/交易信息的 MySQL、用于快速提取设备数据的 NoSQL 以及用于分析设备数据的 Hadoop。我们的技术通过快速数据扩展您的 MySQL 基础架构,使您能够消除 NoSQL 和 Hadoop 部分并专门使用 MySQL 来最大限度地减少您使用的专业知识、招聘和不同工具,并显着降低成本。

RUPP:对于那些不需要支持 SQL 的数据库的应用程序,像 hamsterdb 这样的键/值存储的好处将很有吸引力:高性能、低资源要求。对于嵌入式 SQL 数据库,SQLite 是最明显的选择。

当前的嵌入式数据库技术如何促进传感器输入的存储和分析,这些输入可以从数百或数千扩展到可能的数百万?

GRAVES:管理物联网中传感器网络产生的海量数据集有很多维度。如果 DBMS 要支持应用程序的不同数据访问模式,则必须支持多个数据库索引。至少它应该提供:

哈希索引,用于通过键(简单或复合)快速查找特定对象

用于模式匹配、范围检索和排序结果的B-tree 索引(B-tree 可以针对内存数据存储进行优化)

地理空间数据的 R 树索引

PATRICIA Trie用于网络通信/电信系统的 IP 地址和电话号码索引

“模糊搜索”用例的Trigram 索引

可能导致它们在大数据规模上陷入困境的 DBMS 的一个特征是索引树的深度。这可以通过使用哈希索引来缓解。在 eXtremeDB 中,我们还修改了 B 树算法,以使树比传统的 B 树更浅。

一些嵌入式数据库系统(如 SQLite)是单任务的,因此无法利用多核,这在嵌入式系统中变得越来越普遍。理想情况下,DBMS 将是具有乐观并发模型的多任务处理,允许嵌入式系统开发人员充分利用目标系统的资源。

在某些情况下,从事传感器数据融合的嵌入式系统必须优先处理指示某些数据到达的中断。在 DBMS 中,在运行时确定事务优先级的能力可以满足这一要求。缺少这样的功能可能意味着丢失数据,例如当一个传感器数据单元在另一个传感器数据到达之前没有被抓取时。

RUPP:可能必须将昂贵的操作(如分析查询)卸载到服务器上。对于收集数据和简单查询,开发人员可以求助于键/值存储,这是一种精简的、类似 NoSQL 的数据库方法。一些键/值存储可作为嵌入式库使用,这避免了客户端/服务器架构的通信开销。这些通常还提供各种配置选项以针对特定用例进行优化。

我通常建议在服务器上执行后处理。后处理通常会根据产品演变或业务需求频繁更改,因此需要定期更新软件。在现场将更新部署到 IoT 设备比部署到由 ISV 直接控制的单个服务器要脆弱得多。如果传感器数据太大而无法传输到服务器,那么设备通常可以在不牺牲数据质量的情况下执行非常简单的合并策略,例如每秒只发送一个值而不是多个值。此外,通常可以有效地压缩数据。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2552

    文章

    51228

    浏览量

    754676
  • IOT
    IOT
    +关注

    关注

    187

    文章

    4216

    浏览量

    197061
收藏 人收藏

    评论

    相关推荐

    数据库是哪种数据库类型?

    数据库是一种部署在虚拟计算环境中的数据库,它融合了云计算的弹性和可扩展性,为用户提供高效、灵活的数据库服务。云数据库主要分为两大类:关系型数据库
    的头像 发表于 01-07 10:22 82次阅读

    哪些专业适合学习嵌入式开发?

    市场的80%以上,那什么专业能够轻松转行呢? 1)计算机科学与技术:作为基础学科,计算机科学与技术专业提供了编程、算法、数据结构等基础知识,适合转行到嵌入式、人工智能和联网领域。 2
    发表于 01-03 13:44

    联网学习路线来啦!

    ,通过这个网络可以实现设备之间的数据交流和互动。 联网的核心是数据,通过采集和分析数据,可以实现对设备和环境的监控和控制。
    发表于 11-11 16:03

    嵌入式系统与联网的结合

    随着科技的飞速发展,嵌入式系统和联网(IoT)已经成为现代技术领域的重要组成部分。嵌入式系统是指嵌入到设备或系统中的专用计算机系统,而
    的头像 发表于 11-06 10:23 346次阅读

    数据库数据恢复—通过拼接数据库碎片恢复SQLserver数据库

    一个运行在存储上的SQLServer数据库,有1000多个文件,大小几十TB。数据库每10天生成一个NDF文件,每个NDF几百GB大小。数据库包含两个LDF文件。 存储损坏,数据库
    的头像 发表于 10-31 13:21 267次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—通过拼接<b class='flag-5'>数据库</b>碎片恢复SQLserver<b class='flag-5'>数据库</b>

    深蕾半导体Astra™ SL1620嵌入式联网处理器详细介绍

    Astra™ SL系列是深蕾半导体推出的高度集成的嵌入式联网处理器SoC(System on Chip)系列产品,专为多模式消费者、企业和工业
    的头像 发表于 10-08 11:28 345次阅读
    深蕾半导体Astra™ SL1620<b class='flag-5'>嵌入式</b><b class='flag-5'>物</b><b class='flag-5'>联网</b>处理器详细介绍

    AI嵌入式蜂窝模块将主导联网市场

    据知名市场调查机构Counterpoint Research最新发布的报告,AI嵌入式蜂窝模块在联网领域的应用正迎来爆发式增长。该报告预测,到2030年,AI嵌入式蜂窝模块将占据
    的头像 发表于 09-25 15:41 268次阅读

    嵌入式软硬件开发实战师资培训通知

    随着联网和智能系统的快速发展,嵌入式成为当前最热门最有发展前途的IT应用领域之一。在移动通讯、移动办公、智能传感、穿戴设备、
    的头像 发表于 09-24 08:06 393次阅读
    <b class='flag-5'>嵌入式</b>软硬件开发实战师资培训通知

    数据库数据恢复—SQL Server数据库出现823错误的数据恢复案例

    SQL Server数据库故障: SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库
    的头像 发表于 09-20 11:46 373次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>出现823错误的<b class='flag-5'>数据</b>恢复案例

    嵌入式热门领域有哪些?

    通过联网连接各种物理设备和传感器,促使它们之间实现信息的交换和数据的共享。从智能家居到智能城市,联网的应用不断扩展,为
    发表于 07-16 09:23

    嵌入式开发前景怎么样?

    嵌入式开发前景非常广阔,这主要得益于联网、人工智能、大数据等技术的快速发展,以及嵌入式系统在各个领域的广泛应用。以下是对
    的头像 发表于 07-10 09:00 2772次阅读
    <b class='flag-5'>嵌入式</b>开发前景怎么样?

    时序数据库是什么?时序数据库的特点

    时序数据库是一种在处理时间序列数据方面具有高效和专门化能力的数据库。它主要用于存储和处理时间序列数据,比如传感器数据、监控
    的头像 发表于 04-26 16:02 674次阅读

    嵌入式人工智能的就业方向有哪些?

    网络编程开发及实战下 数据库开发 Linux应用开发综合实战 三:嵌入式Linux系统工程师,Linuxkernel工程师,嵌入式Linux驱动工程师 ARM体系结构与接口技术 系统移植
    发表于 02-26 10:17

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式
    发表于 02-02 15:24

    数据库数据恢复】Oracle数据库ASM实例无法挂载的数据恢复案例

    oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
    的头像 发表于 02-01 17:39 537次阅读
    【<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复】Oracle<b class='flag-5'>数据库</b>ASM实例无法挂载的<b class='flag-5'>数据</b>恢复案例