干货分享!边云融合的时序时空数据库实践详解
随着物联网、车联网、工业互联网和智慧城市快速发展,时序数据库成为数据架构技术栈的标配,面对海量时空数据,随之而来是数据存储、处理问题,也对时序数据库高效读写、快速查询能力提出了更高要求。本文将和大家分享物联网商业应用场景下时序数据库(Time Series Database)的能力要求和技术核心点,以及时序数据库赋能各领域应用场景落地实践。
01
关于时间序列数据
-
结构特性:时序数据一般都具有单向递增的时间戳,并且对于数据批量或特定删除的场景较少,数据清理一般基于时间窗口。 -
场景特性:由于在时间维度上的累计,时序数据的数据量通常较大且往往写多读少、读写正交。时序数据通常按照固定频率不断写入,写入数据流量具有平稳可预测的特点,且读和写一般发生在不同时刻,。和关系型数据库相比,因为应用场景的不同,通常不会涉及太多的事务性原则。 -
应用特性:时序数据在应用上大多进行聚合趋势分析,较少单独查看某个数据。
02
时序时空数据库系统架构演进
如下图为典型TSDB所处上下游宏观架构图,左侧为数据接入端。
通常数据有两种来源:
1. 来自于物联网设备,这些设备借由IoT Edge SDK使用物联网典型的MQTT协议接入物联网平台,数据经快速预处理后被送入时序时空数据库;
2. 通过其他数据中心使用HTTP等协议直接写入TSDB。右侧为数据查询端,可同时支持物联网设备可视化展示和大数据分析。设备可视即通过物联网平台建设的屏幕,实时观看数据状况;大数据分析是基于SQL/API的语义对接到大数据平台中,经大数据工具得到更高层次的数据认知或AI模型。
存储方面,实时数据沿时间维度压缩后进入历史数据层,而百度还引入了分级存储技术,进一步提升数据存储性价比。
计算方面,包括索引和SQL计算,沿着存储系统分布在实时数据两侧,便于数据快速被查询。
索引部分,百度使用在搜索引擎积累的倒排索引技术,快速建立数据索引,而要理解用户的查询目的,这就需要倚靠成熟解决方案的SQL计算层。索引、数据和SQL构成了TSDB的基本内核,向外拓展有面向用户的数据面交互和面向管理者的控制面系统两部分。
数据面交互部分,数据通过JDBC接口与Hadopp/Spark等大数据应用相连接,构成SQL接入层;HTTP接入层负责物联网平台和数据中心的数据写入,也负责各类具体业务类应用程序的查询服务。
03
时序时空数据库核心技术优势
-
单个数据的维度。如温度数据,包含存储时间戳和对应的温度,通过给数据贴标签tag来标记数据来源; -
多维度时序数据。如风机数据,包含风向、速度两组数据点,同样会用到tag进行标记。TSDB在进行大规模存储和查询时会引用到分布式存储、分级存储、数据查询优化的核心技术,实现提高读写效率、降低成本、高效查询等目标。
分布式存储优化
多级存储优化
数据查询优化
04
时序时空数据库应用方案
与空间相结合
与边缘结合
时序时空数据库各领域落地实践
本文分享自微信公众号 - 百度开发者中心(baidudev)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
高效、易用、可拓展我全都要:OneFlow CUDA Elementwise模板库的设计优化思路
撰文|郑泽康、姚迟、郭冉、柳俊丞 逐元素操作(也叫 Elementwise 操作)是指对 Tensor 中的每个元素应用一个函数变换,得到最终输出结果。在深度学习里,有很多算子属于 Elementwise 算子范畴,比如常用的激活函数(如ReLU、GELU ),ScalarMultiply(对 Tensor 每个元素都乘上一个标量)等操作。 为此,OneFlow 针对这种 Elementwise 操作抽象出一套 CUDA 模板,开发者只需把计算逻辑封装到一个结构体内,即可获得一个 CUDA Elementwise 算子,以 ReLU 为例: //WriteReLUFunctor. template< typenameT> structReluFunctor{ OF_DEVICE_FUNCToperator()(Tx)const{ constTzero_val= static_cast<T>( 0); return(x>zero_val)?x:zero_val; } }; //UseCUDAElementwiseTemplate. OF_...
- 下一篇
openEuler结合ebpf提升ServiceMesh服务体验的探索
服务网格的前世今生 早期的微服务架构上存在着服务发现、负载均衡、授权认证等各种各样的难题与挑战。起初微服务践行者们大多自己实现这么一套分布式通信系统来应对这些挑战,但这无疑造成了业务功能的冗余,解决此问题的方法就是将共有的分布式系统通信代码提取出来设计成一套框架,以框架库的方式供程序调用。但这个看似完美的方法却存在着几个致命的弱点: 框架大部分对业务来说是侵入式修改,需要开发者学习如何使用框架 框架无法做到跨语言使用 处理复杂项目框架库版本的依赖兼容问题非常棘手,框架库的升级经常导致业务的被迫升级。 随着微服务架构的发展,以 Linkeerd/Envoy/NginxMesh 为代表的 sidecar 代理模式应运而生,这就是第一代的 serviceMesh。它作为一个基础设施层,与业务进程完全解耦,和业务一起部署,接管业务件之间的通信,将网络数据收发单独抽象出一层,在这层集中处理了服务发现、负载均衡、授权认证等分布式系统所需要的功能,实现网络拓扑中请求的可靠传输,较为完美的解决了微服务框架库中的问题。 但在软件开发领域没有万能的银弹。ServiceMesh 带来了这么多便利的同时,也不...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启