免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

实时流计算和时空数据库助力用户打开 IoT 无限可能

  • 2020-04-05
  • 本文字数:3613 字

    阅读完需:约 12 分钟

实时流计算和时空数据库助力用户打开IoT无限可能

随着技术的发展与市场需求的深入,IoT 物联网已进入快速发展期,给 ICT 行业带来了广阔的市场空间。在刚刚过去的 2018 华为中国生态伙伴大会期间,通过展区展示不难发现,在汽车、水、电、气、工业设备等等领域,越来越多的终端联接网络,源源不断的产生海量时序和时空数据,这些数据往往具有很强的时效性,随着时间的推移,其价值也就急速衰减,因此如何应对海量时序/时空数据的高速存储和查询、如何对数据进行实时的检测和监控、如何实时的挖掘出数据背后的价值都是很大的挑战。那么,华为云 EI 企业智能又是如何帮助用户与伙伴应对这些挑战呢?



车联网正成为 IoT 行业应用的先锋

IoT 典型场景

根据笔者在 IoT 领域的一些实践经验,将 IoT 领域的在线应用场景归纳为如下:



物联网 IoT 数据源产生的数据大多是时序和时空数据,那么什么是时序数据和时空数据。我们一般认为时序数据是某个时间点发生了某件事情,但是在时序数据这个领域里定义的时序数据全都是跟数值有关的。举一个简单例子,一辆汽车在上午 9 点在某个加油站加油这条记录,相当于一条日志,本身不能构成一个时序数据,但是如果今天我们每一秒钟都记录了该汽车的油箱里具体油量的值,那么今天的 86400 条油量记录数据再加上每秒的时间点则构成了一个时序数据。那什么是时空数据呢?简单来说,如果今天我们每一秒钟都记录了该汽车的位置信息(X\Y 坐标),这些位置数据则构成了二维空间数据,那么这 86400 条的坐标记录数据加上每秒的时间点则构成了一个时空数据。


对于这些时序和时空数据的在线业务可以简单的分为三大类,实时检测、实时查询和实时分析。


实时检测是期望可以实时的对异常数据、异常行为和故障进行检测,快速返回给管理系统或者通知相关人员等。比如车队管理则要求进行电子围栏的检测,一旦发现车辆行驶或停止的范围超出了规定的地理空间范围,则可以进行告警。或者货运公司发现某货运汽车并没有按照正常的路线行驶,偏离了正常航道,也可以进行告警,从而进行实时纠偏。


实时查询,主要是对于这些时序数据或者时空数据进行查询以进行下一步的分析或进行展现,比如查询早上 7 点到 9 点早高峰期间车的轨迹、车辆本周的油量变化曲线、用户用电曲线等。由于 IoT 采集数据的频率非常高,可能还需要绘制低精度的曲线。


实时分析,主要是对于采集到的指标数据进行分析,得到基于某些行业的知识,比如对于驾驶员的行为分析,对于汽车油耗的统计分析等。

IoT 数据实时分析方案

在 IoT 领域,对于 IoT 数据的实时处理流程包括以下几个步骤:


(1) 通过 IoT Hub 进行数据采集或者通过 GPS 的接入;


(2) 对数据进行实时检测,或者预处理;


(3) 数据写入数据库/文件系统;


(4) 对数据库/文件系统中的数据进行查询、分析。


基于华为云服务来实现上述的处理流程,主要会如下图所示的几个服务:



IoT Hub 可以对接物联网终端进行数据采集;DIS(数据接入服务)采用 kafka 内核将数据接入到华为云,并和 CloudStream(实时流计算服务)无缝对接;CloudStream 从 DIS 消费数据进行实时检测或分析,返回检测结果给在线应用,或者增加一些分析数据写入到 CloudTable 时序/时空数据库中;CloudTable(表格存储服务)作为毫秒级 NoSQL 数据库可以支持海量的数据存储,并提供时序/时空数据的查询和实时分析;对于一些近实时的查询分析可以通过 spark 内核的 UQuery 服务来进行。下面详细介绍核心服务 CloudStream 实时流计算和 CloudTable 时序/时空数据库能给企业带来什么价值。

实时流计算,IoT 的核心引擎

对于 IoT 场景的海量时序/时空数据,华为云 CloudStream 作为实时流式大数据分析服务,微秒级的计算性能为企业挖掘实时数据价值提供了核心能力,具体体现有以下显著优势:

1. 双引擎

IoT 场景海量的数据实时计算必须需要有高性能的计算引擎支撑,既要满足低时延高吞吐的性能要求,又要满足数据一致性要求。另外,IoT 场景多种多样的业务也要求计算引擎能够运行批量,流式,交互式,图处理,机器学习等应用。目前业界主流的流计算引擎 Flink 和 Spark Streaming 都非常适合 IoT 场景,两者以不同的设计思想(前者是原生流式计算,后者是微批处理计算)各领风骚,都有着活跃的开源社区支撑。


CloudStream 集成了 Flink 和 Spark Streaming,双引擎方式很好的连接了开源生态,完全兼容开源版本 Flink1.4 和 Spark2.2,方便业务人员平滑迁移线下业务上云。

2.基于地理位置分析的 SQL 扩展

IoT 大量业务场景需要对时空数据进行实时的地理位置分析,如电子围栏、偏航检测等。CloudStream 扩展了 Flink SQL,提供了基于地理位置分析的一系列 Time GeoSpatial 语法,方便业务人员使用 SQL 快速开发地理位置分析业务,其中 DDL for Time GeoSpatial 可以快速定义基本元素,例如点、线、多边形、圆等;SQL Geospatial Scalar Functions 可以对基本元素进行基本操作,例如计算两点间距离、判断区域是否覆盖、判断点是否在区域内、移动位置计算、分析距离相交包含关系等;SQL Time Geospatial 可以在窗口中对基本元素进行基本操作,例如计算多种窗口的平均速度和距离。



图示为实时流计算服务的 IoT 算子


轻松实现电子围栏检测

3.CEP on SQL

IoT 大量业务场景需要实时检测无尽数据流中的复杂模式,例如车辆异常行为检测、工业设备异常运行状态检测。CloudStream 扩展了 Flink SQL,提供了非常高效的 CEP on SQL 的能力,提供了基于 Match Recognize 的模式匹配检测,可以帮助业务人员使用 SQL 实现基于复杂事件规则的异常检测业务,无需开发 Flink PATTERN API 自定义业务,只需要一行 SQL 查询语句搞定,大大降低此类业务开发难度。


CloudTable 时序/时空数据库,为 IoT 数据而生

CloudTable 是华为云上毫秒级的 NoSQL 数据库,提供了 HBase、OpenTSDB、GeoMesa 接口,其中 OpenTSDB 和 GeoMesa 作为时序和时空数据库为 IoT 行业而生,为时序和时空数据的高吞吐量的写入和查询提供了解决方案。


高性能时序数据库


基于对分布式架构系统的良好支持和完善的生态,CloudTable 选择了 OpenTSDB 作为时序数据库内核,并做了软硬件的垂直性能优化,可以支持千万级别的写入吞吐量和百万数据点 3 秒之内的读取性能,很好的解决物联网领域海量数据写入和读取性能的问题。


同时,时序数据库还提供了三种常用计算:插值、降精度和聚合。


对于每秒都上报的数据,其中某一秒的数据因为某些原因丢失了,则可以通过插值进行补齐。如下图红色框内的点(图 a),对绿色线条和红色线条的值进行求和聚合计算,如果没有插值,则会出现结果突变的情况,如果进行了插值则是比较好的效果(图 b)



图 a 无插值求和结果



图 b 插值求和结果


降精度有助于提升查询效率,同时可以提供更加清晰的曲线信息给在线应用。



图 a 原始时序数据



图 b 降精度之后数据


时序数据库中的聚合和传统数据库的聚合还有一些差异。时序数据库中聚合是将多个独立的时间线聚合成一个数据时间序列,类似于 SQL 里面的 group by,但是此处的 aggregation 是按照每个时间戳和分组进行聚合。降精度计算中也可以使用不同的聚合函数进行降精度,而每个聚合函数中不仅会包含聚合的函数,也会包含插值的函数,对于缺失的数据,可以采用插值后的数据进行聚合。

时空数据库

华为云 CloudTable 引入了地理大数据处理套件 GeoMesa,可以帮助物联网存储和分析海量时空(spatio-temporal)数据,提供轨迹查询、区域分布统计、区域查询、密度分析、聚合、OD 分析等功能。


GeoMesa 基于 Geohash 编码以及空间填充曲线的理论基础,做到了将二维经纬度转换成一维字符串,将三维时空(经纬度和时间)转换成一维字符串,为高性能查询打下了基础。


通过 CloudTable 中 GeoMesa,对于物联网中时空维度的查询简单有效,举个例子,比如


(1) 早上 7 点-9 点,有哪些人/车出现在深圳市龙岗区坂田?


(2) 早上 7 点-9 点,从深圳市南山区到深圳市龙岗区坂田的人/车的轨迹是怎么样的?


(3) 晚上 5:30-7:30,深圳市龙岗区坂田的人/车的轨迹是怎么样的?


通过以上的一些查询,可以分析出行人/车的出行规律,进而进行附近的健身房、餐馆、娱乐设施的推荐;分析出住宅区、工作区的聚集地;分析出同行的人的数量,抽象出公共巴士的路线,优化公共交通路线等等。通过时空数据的查询和分析可以进一步挖掘出时空数据背后的价值。


Cloud2.0 时代,越来越多的企业关注如何提升应用上云效率的同时,也在聚焦新技术给现行业务带来的创新与改变。华为云实时流计算和时空数据库帮助行业伙伴与客户轻松实现 IoT 场景下时空时序数据的实时计算、存储和查询,为 IoT 海量数据和业务应用之间架起一道桥梁。除此之外,IoT 场景还有很多即有趣又丰富的业务,华为云 EI 企业智能提供了丰富的大数据和 AI 服务,比如机器学习服务、图引擎服务、深度学习服务等,将携手与行业伙伴共同扩展更多能力,丰富更多算法和模型,从而打开 IoT 无限可能。


本文转载自华为云产品与解决方案公众号。


原文链接:https://mp.weixin.qq.com/s/DAdAAWCEwMw_jGETWSOGEA


2020-04-05 08:001444

评论

发布
暂无评论
发现更多内容

CQT新里程碑:SOC 2 数据安全认证通过,加强其人工智能支持

股市老人

已解决zipfile.BadZipFile: File is not a zip file异常的正确解决方法,亲测有效!!!

小明Java问道之路

ABCDE联合创始人BMAN确认出席Hack .Summit() 2024香港Web3盛会

TechubNews

香港Web3

LaunchPad 市场的复苏,Penpad 成新兴生力军

股市老人

解锁Mysql中的JSON数据类型,怎一个爽字了得

不在线第一只蜗牛

json MySQL 数据库 开发语言

听 GPT 讲 client-go 源代码 (9)

fliter

马斯克称首位受试者可凭思维操控鼠标;字节低调推出视频模型丨 RTE 开发者日报 Vol.148

声网

LaunchPad 市场的复苏,Penpad 成新兴生力军

股市老人

京东商品优惠券数据采集

tbapi

京东 京东API接口 京东商品优惠券数据 京东商品详情数据

揭秘 LLMs 时代向量数据库的 3 大实用场景

Zilliz

Milvus 向量数据库 LLM zillizcloud rag

CORS就是跨域吗?

EquatorCoco

CORS web开发 跨域

你好,iLogtail 2.0!

阿里巴巴云原生

阿里云 云原生 iLogtail

LaunchPad 市场的复苏,Penpad 成新兴生力军

石头财经

【Java21问答】为什么synchronized会PINNED虚拟线程?

袁世超

synchronized ObjectMontior 虚拟线程 Java21

开发竞猜比分与专家分析功能:如何为体育直播平台注入新活力

软件开发-梦幻运营部

OpenTiny Vue 组件库适配微前端可能遇到的4个问题

OpenTiny社区

开源 Vue 前端 微前端 组件库

有少年气的手机,正奔跑在AI旷野

脑极体

AI手机

【论文解读】transformer小目标检测综述

合合技术团队

目标检测 Transformer 深度学习、

LaunchPad 市场的复苏,Penpad 成新兴生力军

加密眼界

论ai韭菜的自我修养

文思源想

AI 成长感悟 文思源想

听 GPT 讲 client-go 源代码 (10)

fliter

接手外包团队开发的微服务项目,人麻了!

伤感汤姆布利柏

基于规则引擎的多维度配置化适配系统

五陵散人

规则引擎 匹配

新一轮 LaunchPad 热潮形成的根源在哪里,Penpad或成机会

BlockChain先知

深入剖析 Java 类属性与类方法的应用

小万哥

Java 程序人生 编程语言 软件工程 后端开发

LaunchPad 市场的复苏,Penpad 成新兴生力军

大瞿科技

k8s-权限管理

EquatorCoco

Kubernetes 云原生 k8s

面试官:如何实现多级缓存?

不在线第一只蜗牛

缓存 程序员 面试

龙蜥系统运维联盟:Kindling-OriginX 如何集成 DeepFlow 的数据增强网络故障的解释力

OpenAnolis小助手

deepflow 开源 系统运维 ebpf 龙蜥社区

已解决TypeError: Descriptors cannot not be created directly异常的正确解决方法,亲测有效!!!

小明Java问道之路

QCN9274 QCN6274 IPQ9574|What Does Wi-Fi 7 Actually Bring?

wallyslilly

qcn9274 qcn6274 ipq9574

实时流计算和时空数据库助力用户打开IoT无限可能_数据库_华为云产品与解决方案_InfoQ精选文章