写点什么

实时流计算和时空数据库助力用户打开 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:001587

评论

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

站在车顶才能维权?中汽协基于区块链放“大招”!

CECBC

特斯拉

海南新场景!数字人民币在三亚完成首单离岛免税购物

CECBC

海口免税

区块链技术赋能不动产登记,让群众办事更便利

CECBC

区块链

江西组织部干部人事综合管理平台建设,干部管理系统

干了八年的阿里面试官,给大家分享我面试时最爱问的Java面试题

Java架构师迁哥

高并发系列:架构优化之细说负载均衡

Coder的技术之路

负载均衡 高并发 高并发优化 负载均衡架构

anyRTC 音视频 uni 插件集成步骤

anyRTC开发者

uni-app android 音视频 WebRTC sdk

5.1特辑|为何显示有票你却抢不到?技术揭秘12306如何保证车票不超卖

华为云开发者联盟

数据库 GaussDB(for Redis) 五一 12306 数据强一致性

复习一周 成功拿到字节Offer 我也惊呆了

学Java关注我

Java 面试 程序人生 编程语言 计算机

区块链赋能的Web 3.0时代将是一番怎样的景象?

CECBC

区块链

从字节跳动到火山引擎(一) | Redis 云原生实践

redis 字节跳动 Kubernetes 云原生 火山引擎

Kubernetes入门——Kubernetes实现应用的高可用

百度开发者中心

Kubernetes k8s入门 #技术课程#

云图说|数据可视化管理,搭载数据安全黑科技!华为数据安全中心,助你保障云上数据安全!

华为云开发者联盟

数据安全 华为云 云图说 DSC 数据安全中心 云上数据

华为云云原生数据库GaussDB加速创新,企业核心数据上云信赖之选

华为云开发者联盟

数据库 云原生 华为云 GaussDB(for openGauss) 全密态安全

CrossOver for Mac 怎么用?

懒得勤快

Android 设备音视频兼容性适配

网易云信

WebRTC

基于 HLS 创建 Golang 视频流服务器

天黑黑

音视频 HLS 声网 Go 语言

本科学历,杭州工作4年,三个月学习入职阿里,薪资涨幅达到50%

比伯

Java 编程 程序员 架构 计算机

阿里云 ARMS 3.0 重磅发布云拨测,Gartner APM 魔力象限产品解读

阿里巴巴中间件

阿里云 Gartner 可观测

Rust从0到1-集合-Vector

rust 集合 Collections vecotr

领域驱动设计(DDD)在百度爱番番的实践

百度Geek说

中台 微服务 领域驱动设计DDD

行业洞察 | 风口上的互联网医疗,如何赢得下半场?

澳鹏Appen

人工智能 大数据 医疗方案 智能医疗 医疗AI

【Java面试】30个 Java 集合面试必备的问题和答案 ​

Java架构师迁哥

系统服务-技术专题-并发模型粗浅分析探讨

洛神灬殇

并发编程

编曲混音必备法宝——FL三大效果器简介

奈奈的杂社

一周信创舆情观察(4.19~4.25)

统小信uos

000 ES suggest-英文

小林-1025

es7

uni-app rtc插件集成指南及常见问题--iOS

anyRTC开发者

uni-app ios 音视频 WebRTC RTC

跨湖跨仓场景下如何实现海量数据分钟级分析

华为云开发者联盟

大数据 数据湖 数据分析 华为云FusionInsight MRS HetuEngine

击破行业痛点,区块链赋能智慧物流高速发展

CECBC

区块链

音频技术及行业的发展

Emotion

音频技术

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