干货分享!边云融合的时序时空数据库实践详解
随着物联网、车联网、工业互联网和智慧城市快速发展,时序数据库成为数据架构技术栈的标配,面对海量时空数据,随之而来是数据存储、处理问题,也对时序数据库高效读写、快速查询能力提出了更高要求。本文将和大家分享物联网商业应用场景下时序数据库(Time Series Database)的能力要求和技术核心点,以及时序数据库赋能各领域应用场景落地实践。
01 关于时间序列数据
时间序列数据是指某一指标在不同时间上的不同数值,按照时间先后顺序排列而成的数列。这类数据库在日常生活中十分常见,像环境温度的监控数据,直播房间的监控数据,无人车的运行数据等都是时序数据。
它们通常都有以下的特点:
结构特性:时序数据一般都具有单向递增的时间戳,并且对于数据批量或特定删除的场景较少,数据清理一般基于时间窗口。
场景特性:由于在时间维度上的累计,时序数据的数据量通常较大且往往写多读少、读写正交。时序数据通常按照固定频率不断写入,写入数据流量具有平稳可预测的特点,且读和写一般发生在不同时刻,。和关系型数据库相比,因为应用场景的不同,通常不会涉及太多的事务性原则。
应用特性:时序数据在应用上大多进行聚合趋势分析,较少单独查看某个数据。
02 时序时空数据库系统架构演进
以百度智能云天工时序时空数据库(TSDB)为代表,典型的商业时序数据库需具备:高性能读写、低成本存储、强计算能力、高可靠服务、多生态支持的能力。
如下图为典型 TSDB 所处上下游宏观架构图,左侧为数据接入端。
通常数据有两种来源:
1. 来自于物联网设备,这些设备借由 IoT Edge SDK 使用物联网典型的 MQTT 协议接入物联网平台,数据经快速预处理后被送入时序时空数据库;
2. 通过其他数据中心使用 HTTP 等协议直接写入 TSDB。右侧为数据查询端,可同时支持物联网设备可视化展示和大数据分析。设备可视即通过物联网平台建设的屏幕,实时观看数据状况;大数据分析是基于 SQL/API 的语义对接到大数据平台中,经大数据工具得到更高层次的数据认知或 AI 模型。
图 1:TSDB 宏观架构图
从微观角度来说,一个典型的时序时空数据库由存储和计算两部分组成。
存储方面,实时数据沿时间维度压缩后进入历史数据层,而百度还引入了分级存储技术,进一步提升数据存储性价比。
计算方面,包括索引和 SQL 计算,沿着存储系统分布在实时数据两侧,便于数据快速被查询。
索引部分,百度使用在搜索引擎积累的倒排索引技术,快速建立数据索引,而要理解用户的查询目的,这就需要倚靠成熟解决方案的 SQL 计算层。索引、数据和 SQL 构成了 TSDB 的基本内核,向外拓展有面向用户的数据面交互和面向管理者的控制面系统两部分。
数据面交互部分,数据通过 JDBC 接口与 Hadopp/Spark 等大数据应用相连接,构成 SQL 接入层;HTTP 接入层负责物联网平台和数据中心的数据写入,也负责各类具体业务类应用程序的查询服务。
图 2:TSDB 微观架构图
03 时序时空数据库核心技术优势
从宏观和微观两个角度介绍完时序数据库,接下来从技术角度来回顾时序数据结构的特点。如下图显示了两种典型的时序数据:
单个数据的维度。如温度数据,包含存储时间戳和对应的温度,通过给数据贴标签 tag 来标记数据来源;
多维度时序数据。如风机数据,包含风向、速度两组数据点,同样会用到 tag 进行标记。TSDB 在进行大规模存储和查询时会引用到分布式存储、分级存储、数据查询优化的核心技术,实现提高读写效率、降低成本、高效查询等目标。
图 3:时序数据结构
以下将针对上述核心技术优势进行深度解析:
分布式存储优化
当数据较多,为提高数据写入速度,就需要对大规模时序数据进行存储优化,最直观的方式是对数据分布式分片存储。例如,根据数据 Field 的不同进行分片,将同方向的数据列存储于同一存储点,便于存储和查询。在复杂的情况下,需进一步对数据进行列与行的数据平衡操作。
多级存储优化
在 TSDB 产品中,通过多级存储技术,根据数据的访问频率选择不同成本的存储方式,进一步降低数据存储成本。具体来说,访问最频繁、实时产生的数据存储在内存中,一天内产生的数据会存储在本机的 Cache 中。最近一年的数据会转移到 SSD 中,SSD 较高的随机读写能力能保证数据的快速访问,同时数据存储与计算相分离,满足降低存储成本的需求。对于一年以上的时序数据,访问频率较低,其被转移至更低存储成本的 HDD 中,并使用 EC 编码将三副本数据降低为一点五副本,进一步降低存储成本。通过使用多级存储技术能够很好的平衡访问速度和存储成本。
数据查询优化
TSDB 传统单机使用聚合查询,可借助索引搜索全表,但也面临单机的计算能力、性能不足的局限,当面对几千亿甚至上万亿的数据节点时,如何优化数据的查询成为时序数据库需要解决的问题。
优化后的数据查询借助存储分片的方式,数据存入不同的 Shard 节点,每个 Shard 中的数据由独立计算节点访问计算,最后将各计算节点的数据汇聚后得到最终的查询计算结果。这种将存储与计算相分离的技术,能够实现计算的并发,得到更强的查询能力,是数据库性能优化的重要方法。
04 时序时空数据库应用方案
在时序时空数据库的实际应用中,通常会遇到两种应用场景,一种是与空间相结合,另一种是与边缘相结合。
与空间相结合
从空间角度来说,时空数据发展早期,时间和空间都为静态分别计算。随着车联网等移动互联网的出现,时间和空间都在发生改变,这时我们需要将时间数据和空间数据共同存储,就得到时空数据。
一个典型的时空数据会沿着 TSDB 向外延展,基于地理数据存储,再结合专题数据作为基本数据层,通过更多支持时空的聚合函数根据不同场景、不同业务情况,最终将这些基础服务对接到应用层,得到具体时空大数据分析应用。
图 4:时空数据库基础服务套件
基于时空数据的基础,百度为企业提供解决方案解决数据孤岛、实现数据治理及数据共享、提高运营效率。在解决方案中,我们会提供数据服务(DaaS)、基础服务(PaaS),以及与合作伙伴面向行业提供应用服务(SaaS)。
与边缘结合
另一个与 TSDB 有关联的就是边缘计算,现今大量数据需要在短时间内被处理,对于数据不同的处理需求,百度以 TSDB 产品为基础提供了四级计算平台,处于中间的是中央数据中心,可提供无尽算力;向外拓展第一轮是可复用 CDN 网络,向全国各个省会城市提供计算节点;继续向外拓展,借助运营商的 5G 网络,将计算下沉到市县级,提供数十毫秒的处理延迟;最外围是物联网边缘,是用户自行部署的硬件,可提供几毫秒甚至亚毫秒的数据响应。
为配合实现边缘计算系统,百度智能云也提供了很多开源基础平台,帮助用户以更中立开放的方式引入边缘计算。如百度与开源社区合作,捐赠的智能边缘开源框架 Baetyl,全面支持云原生架构,促进边云融合,帮助用户将数据在云和边缘上进行无缝切换。
在实际应用场景中,通过边云融合的数据解决方案,来处理用户不同的数据处理需求。下图即为典型的边云融合数据解决方案,左侧为边缘的推断执行,来自用户各类数据源的数据汇聚到用户自己可控的边缘硬件上,在该硬件上运行百度智能边缘服务程序。一旦在边缘进行了数据整理,对数据处理的精度和效能也同样有要求,因此,百度智能云天工智能边缘 BIE 也可提供经用户许可后,并脱敏处理的安全数据抽样上传到云端来进行分析整理。
在云端,用户可选择将数据暂存于天工时序时空数据库,与用户的其他先验知识传入大数据平台或者 AI 平台进行深度分析。得到新模型后,可借助边云融合系统将模型加密后推送至边缘设备。基于知识下行通道,可以分钟级的速度升级边缘系统,相比传统的升级效率得到了质的提升。
图 5:边云融合的数据解决方案
时序时空数据库各领域落地实践
基于 TSDB,百度智能云提供完整成套的解决方案,在工业、电力、自动驾驶等领域都有广泛应用。在工业环境检测案例中,基于百度智能云天工时序时空数据库,借助展示系统和大数据分析工具为客户检测。相较于客户自检而言,实现成本有效控制,助力企业数字化转型。
此外,在节能减排和碳中和等重要任务的大背景下,百度智能云基于 TSDB 为核心的电力服务管理系统,助力电力系统智慧化转型,该方案可将电网的发电和供电数据汇总至天工时序时空数据库,保证半年内的电力数据能在两秒内查询,配合基于这些数据建立起电力分析预测的 AI 模型,有效提升电力服务水平。
最后,在百度自动驾驶的应用案例中,为保证自动驾驶的安全,以及迭代自动驾驶模型,也适用了天工时序时空数据库来存储实时采集的每辆车自动驾驶时的运行状态。早期落地的无人公交系统,已实现公交数据实时上报,并借由百度智能云天工物联网平台进入时序时空数据库。基于此,后台运行系统可对自动驾驶交通车辆进行异常分析、故障统计、实时监控,来确保自动驾驶的安全可控,并积累更多的数据迭代模型,不断助力全自动驾驶技术的升级。
图 6:TSDB 在百度自动驾驶上的应用
时序时空数据库基于其核心技术优势,提供高性能的数据存储、数据查询、数据分析挖掘等能力,在时空大数据、物联网+、工业互联网等领域广泛应用。
未来,百度智能云天工也将持续探索时序时空数据库的多样的应用场景,持续助力企业数字化转型,加速 AI 时代的产业升级!
评论