地理分布式分析:物联网时代的边缘分析

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

这篇文章将成为关于地理分布式分析的每周博客系列的一部分。

近年来,研究和行业驱动的技术改进一直专注于解决与紧密互连系统的大规模数据处理相关的问题。今天,基本假设是可以将所有相关数据移动到通常称为数据湖的中央存储库中。技术范围从 NewSQL、NoSQL、横向扩展机器学习、CEP 引擎和内存分析引擎到各种数据存储(键/值、文档、列式数据库……)。在即将到来的物联网时代,我们面临着新的挑战:

越来越多的数据在地理分布上产生。因此,设备可能通过低带宽和/或不稳定的连接(例如,远程位置的石油钻井平台通过卫星链路)连接,或者设备太多无法有效和合理地将所有相关原始数据传输到中央分析平台在规定的时间窗口内。因此,存储和深度分析能力都必须靠近边缘,即数据生产者。此外,由于法律合规性规则,本地生成的数据读数可能必须留在原产国,而分析模型参数可能会移动到集中位置。虽然基础设施挑战已广为人知,但需要重新考虑现有的数据库和大数据技术以应对这些新挑战。

图 1:ParStream Edge Analytic Appliances 位于生成数据的位置旁边。主节点用于分发查询和计算最终结果集。

ParStream Geo-Distributed Analytics (GDA) 通过将 ParStream 节点定位在靠近数据生成位置的位置来遵循这种边缘分析方法,从而允许近乎实时地进行大量数据采集和高级分析。例如,位于石油钻井平台上的 ParStream 节点可能会使用复杂算法分析传入的传感器数据是否存在异常,使用结果触发其他本地应用程序或系统中的操作,并向监控服务发送警报。

同时,这些 ParStream 节点也是松耦合 GDA 设置的一部分,接受来自中央位置的数据分析请求。此类请求可以由寻找监控应用程序显示的警报的根本原因的分析师发出。它也可以是数据科学家在不必将数据移动到集中式平台的情况下测试对详细数据的新分析方法。 ParStream 只是利用 ParStream 的计算性能将查询传输到靠近数据源的本地服务器。

图 2:边缘分析通过最小化网络流量提供实时洞察。

只有结果(聚合、模型参数等)将从地理分布式集群中的每个节点报告回主服务器,然后从那里返回给用户。

如上图 2 所示,在传统的集中式分析方法中(无论是在本地还是在云端),在进行任何分析之前,必须将来自分散式系统(如手机发射塔)的数据转移到集中式分析数据存储中。这意味着通过网络将数百万或数十亿行数据移动到中央系统。

使用 GDA——如上图 2 所示——数据存储在尽可能靠近数据生成位置的各个 ParStream 卫星节点中。 ParStream 主节点不是通过(低带宽)网络移动原始数据,而是向每个卫星节点发送查询以进行本地处理。主节点还负责收集每个卫星节点的结果,并将它们组合成最终结果集。重要的是要注意,ParStream 边缘分析不仅仅意味着聚合和过滤。它的范围从简单的计算到甚至使用 R 等统计语言估计统计模型的参数,或者将统计模型应用于本地存储的数据。

按照这种边缘分析方法,实际上很少有行通过潜在的低带宽网络传输到主节点,以最大限度地减少延迟和网络资源使用。当卫星节点未能报告数据时,ParStream 将根据接收到的总数据继续返回结果,同时还会指出哪些节点报告失败。与基于集中式集群的分析平台相比,这是一种截然不同的方法,后者要么根据完整的输入数据集返回结果,要么根本不返回任何结果。重要的是要注意,地理分布式分析正在扩展当前的架构(云、集中式 MPP 集群、联合,但这并不意味着要取代它们。

...下周:我们将讨论示例用例场景并探索地理分布式分析的价值。