一种时序数据同步器的制作方法

专利2023-04-11  16

1.本发明涉及时序数据库
技术领域
:,具体地说是一种时序数据同步器。
背景技术
::2.边缘计算是指在更接近数据生成的位置来处理、分析和存储数据,从而实现快捷且近乎实时的分析和响应。物联网技术的发展,越来越多的物(设备或传感器等)相互连接起来,从而产生了大量的时序数据,时序数据是指是一段时间内某个特定指标量的一系列数值数据点,通过指标和标签以及时间戳来唯一标识一个指标量,这些指标数据具有不可变性。为了满足边缘计算的需求,设计实现了边缘数据平台。3.如附图1所示的边缘数据平台主要由采集器、消息队列、同步器、redistimeseries内存库和tdengine时序数据库组成。redistimeseries内存库中存储最近一段时间的时序数据,tdengine时序数据库则存储全量的时序数据,它们不仅是边缘服务平台的边缘存储组件,而且为快捷且近乎实时的边缘计算提供了支撑。redistimeseries为边缘计算提供了近一段时间时序数据实时计算引擎,tdengine为边缘计算提供了大量数据处理、分析的计算引擎。4.将存储于redistimeseries内存库中的时序数据同步下沉到tdengine的持久化存储中。由于redistimeseries时序数据库的键值数据存储特性,跟tdengine提供的多种数据写入接口存在差异,同时边缘端采集大量的时序数据,如何提供一种高性能高吞吐的实时同步器,满足边缘端大量时序数据持久化的需求,是需要解决的技术问题。技术实现要素:5.本发明的技术任务是针对以上不足,提供一种时序数据同步器,来解决如何提供一种高性能高吞吐的实时同步器,满足边缘端大量时序数据持久化的需求的技术问题。6.本发明的一种时序数据同步器,用于将存储于redistimeseries内存库中的时序数据同步下沉到tdengine的持久化存储中,所述同步器包括:7.同步记录存储器组件,所述同步记录存储器组件用于读取和维护待读取的key以及对应读取时间戳;8.redistssource数据源组件,所述redistssource数据源组件用于根据同步记录存储器组件提供的待读取的key以及对应的读取起始时间戳,并行从redistimeseries时序数据库中读取时序数据;9.数据转换器组件,所述数据转换器用于接收所述redistssource数据源组件发送的时序数据,并将所述时序数据转换为数据表结构的时序数据;10.taossink数据下沉组件,所述taossink数据下沉组件用于接收所述数据转换器组件发送的数据表结构的时序数据,用于将数据表结构的时序数据转换为sql语句,并将sql语句发送至tdengine。11.作为优选,所述同步记录存储器包括:12.keys读取器,所述keys读取器用于定时从元数据存储中读取待读取的keys和对应的读取起始时间戳;13.keys分组器,所述keys分组器用于根据每个key对应采集点的采集频率将keys进行分组;14.keys更新器,所述keys更新器用于监听事件监听通道,同步更新内存中的keys分组以及异步更新元数据存储中的keys已读时间戳和同步的数据点数量。15.作为优选,所述redistssource数据源组件包括:16.数据读取器,所述数据读取器用于通过同步记录存储器的存储器句柄定时获取keys分组,用于根据不同分组的采集频率创建定时器分组并启动定时器,对于相同采集频率的keys,用于通过定时器根据不同的读取起始时间戳进行分组,得到不同的keys分组,并用于基于keys分组并行的从redistimeseries时序数据库中读取时序数据;17.数据通道,所述数据通道用于将时序数据发送至数据转换器组件。18.作为优选,redistimeseries中扩展实现了相同时间范围的多个key分组下的时序数据读取接口,所述数据读取器用于通过所述接口读取相应的时序数据。19.作为优选,所述数据转换器组件包括:20.表分组器,所述表分组器用于将相同设备的时序数据聚合到同一个分组中,得到至少一个表分组;21.行分组器,所述行分组器用于将同一表分组中的时序数据根据时间戳聚合到同一个分组中,得到至少一个行分组;22.列集合分组器,所述列集合分组器用于将不同行分组中的时序数据按照相同采集点集合的时序数据聚合到同一个分组中,得到多个数据表。23.作为优选,所述数据表中rows字段为map映射类型,rows字段的key为列集合排序且连接后的字符串,rows字段的value为拥有与key相同列的时序数据集合,所述数据表中number字段为时序数据的条目数量。24.作为优选,所述taossink数据下沉组件包括:25.sql生成器,所述sql生成器用于从所述数据转换器组件中获取数据库表格式的时序数据,并将数据库表结构的时序数据生成一条sql语句;26.写入器,所述写入器用于从sql生成器读取sql语句,并将sql语句发送至tdengine中,通过在tdengine中执行所示sql语句将时序数据写入tdengine时序数据库的持久化存储中;并用于通过持有的同步记录存储器的存储器句柄将已读keys和时间戳传入同步记录存储器的事件监听通道,同步记录存储器通过其keys更新器将已读keys和时间戳更新至内存和元数据存储。27.作为优选,当时时序数据条目数量的累加值达到阈值,或者,达到写入器中定时器的时间戳值时,所述写入器用于将sql语句形式的时序数据写入tdengine时序数据库的持久化存储中;28.所述时序数据条目数量记录于数据表的number字段。29.本发明的一种时序数据同步器具有以下优点:30.1、将时序数据从redistimeseries内存时序数据库快速同步到tdengine持久化时序数据库中,满足边缘端大量时序数据持久化的需求;31.2、在物联网应用场景中,需要海量的边缘端设备采集和存储时序数据,该同步器可降低边缘设备硬件成本。附图说明32.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。33.下面结合附图对本发明进一步说明。34.图1为边缘数据平台架构图;35.图2为实施例一种时序数据同步器的总体架构图;36.图3为实施例一种时序数据同步器的同步器数据流图;37.图4为实施例一种时序数据同步器中数据转换器数据表类图。具体实施方式38.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。39.本发明实施例提供一种时序数据同步器,用于解决如何提供一种高性能高吞吐的实时同步器,满足边缘端大量时序数据持久化的需求的技术问题。40.实施例:41.本发明的一种时序数据同步器,包括同步记录存储器组件、redistssource数据源组件、数据转换器组件、以及taossink数据下沉组件,所述四个组件配合,用于将存储于redistimeseries内存库中的时序数据同步下沉到tdengine的持久化存储中。42.同步记录存储器组件同步记录存储器组件用于读取和维护待读取的key以及对应读取时间戳(start_timestamp)。43.如附图3所示,该组件由keys读取器、keys分组器、keys更新器共3个子组件构成。keys读取器负责定时从元数据存储中获取待读取的key以及对应读取时间戳(start_timestamp),keys分组器负责根据每个key对应采集点的采集频率将keys进行分组,keys更新器负责监听事件监听通道,同步实时更新内存中的keys分组以及异步更新元数据存储中的keys已读时间戳和同步的数据点数量。44.redistssource数据源组件用于根据同步记录存储器组件提供的待读取的key以及对应的读取起始时间戳,并行从redistimeseries时序数据库中读取时序数据,同时会将时序数据发送到数据数据转换器组件组件中。45.如附图3所示,该组件包括数据读取器和数据通道,数据读取器中配置有元数据定时器以及同步记录存储器的存储器句柄,用于通过所述元数据定时器触发所述存储器句柄定时获取keys分组,用于根据不同keys分组的采集频率创建定时器分组并启动定时器,对于相同采集频率的keys,用于通过定时器根据不同的读取起始时间戳进行分组,得到不同的keys分组,并用于基于keys分组并行的从redistimeseries时序数据库中读取时序数据。即其工作流程为:数据读取器通过同步记录存储器的存储器句柄定时(元数据定时器)获取到keys分组,然后根据不同分组的采集频率创建定时器分组并启动这些定时器,定时器中再对相同采集频率的keys根据不同的起始时间戳进行分组。46.在redistimeseries中扩展实现了相同时间范围的多个key下的时序数据读取接口,因此数据读取器可以通过该接口读取到相应的时序数据;47.该组件将读取到的时序数据地址传入数据通道中。48.数据转换器用于接收所述redistssource数据源组件发送的时序数据,并将所述时序数据转换为数据表(taostable)结构的时序数据。49.如图3所示,数据转换器组件包括表分组器、行分组器以及列集合分组器,表分组器用于将相同设备的时序数据聚合到同一个分组中,得到至少一个表分组;行分组器用于将同一表分组中的时序数据根据时间戳聚合到同一个分组中,得到至少一个行分组;列集合分组器用于将不同行分组中的时序数据按照相同采集点集合的时序数据聚合到同一个分组中,得到多个数据表。50.数据集结构如图4所示,其中rows字段为map映射类型,它的key为列集合排序且连接后的字符串,它的value为拥有与key相同列的时序数据集合;其中number字段为时序数据的条目数量。51.taossink数据下沉组件用于接收所述数据转换器组件发送的数据表结构的时序数据,用于将数据表结构的时序数据转换为sql语句,并将sql语句发送至tdengine。52.如图3所示,taossink数据下沉组件包括sql生成器和写入器,sql生成器用于从所述数据转换器组件中获取数据库表格式的时序数据,并将数据库表结构的时序数据生成一条sql语句;写入器用于从sql生成器读取sql语句,将sql语句发送至tdengine中执行sql语句,通过在tdengine中执行所示sql语句将时序数据写入tdengine时序数据库的持久化存储中;并用于通过持有的同步记录存储器的存储器句柄将已读keys和时间戳传入同步记录存储器的事件监听通道,同步记录存储器通过其keys更新器将已读keys和时间戳更新至内存和元数据存储。53.其中,sql生成器将taostable类型的数据生成一条sql语句,通过数据转换器组件中的操作可以降低sql语句的长度,即可降低通过网络接口传输到tdengine中的数据量。具体的,当累加到的时序数据条目数量(taostable类中number字段求和)达到参数设置的阈值时,写入器将时序数据写入到tdengine中。54.考虑到长时间范围内缓存的时序数据数据条目可能较少,短时间内不能达到设定的定长,在写入器中配置有定时器,如果当累加到的时序数据条目数量(taostable类中number字段求和)达到参数设置的阈值或者到达写入器中定时器的时间戳值时,写入器将时序数据写入到tdengine中。即在时序数据没有达到定长要求时,如果达到了定时的要求,也将时序数据发送至tdengine。55.上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。当前第1页12当前第1页12
技术特征:
1.一种时序数据同步器,其特征在于,用于将存储于redis timeseries内存库中的时序数据同步下沉到tdengine的持久化存储中,所述同步器包括:同步记录存储器组件,所述同步记录存储器组件用于读取和维护待读取的key以及对应读取时间戳;redistssource数据源组件,所述redistssource数据源组件用于根据同步记录存储器组件提供的待读取的key以及对应的读取起始时间戳,并行从redis timeseries时序数据库中读取时序数据;数据转换器组件,所述数据转换器用于接收所述redistssource数据源组件发送的时序数据,并将所述时序数据转换为数据表结构的时序数据;taossink数据下沉组件,所述taossink数据下沉组件用于接收所述数据转换器组件发送的数据表结构的时序数据,用于将数据表结构的时序数据转换为sql语句,并将sql语句发送至tdengine。2.根据权利要求1所述的时序数据同步器,其特征在于,所述同步记录存储器包括:keys读取器,所述keys读取器用于定时从元数据存储中读取待读取的keys和对应的读取起始时间戳;keys分组器,所述keys分组器用于根据每个key对应采集点的采集频率将keys进行分组;keys更新器,所述keys更新器用于监听事件监听通道,同步更新内存中的keys分组以及异步更新元数据存储中的keys已读时间戳和同步的数据点数量。3.根据权利要求1所述的时序数据同步器,其特征在于,所述redistssource数据源组件包括:数据读取器,所述数据读取器中配置有元数据定时器以及同步记录存储器的存储器句柄,用于通过所述元数据定时器触发所述存储器句柄定时获取keys分组,用于根据不同keys分组的采集频率创建定时器分组并启动定时器,对于相同采集频率的keys,用于通过定时器根据不同的读取起始时间戳进行分组,得到不同的keys分组,并用于基于keys分组并行的从redis timeseries时序数据库中读取时序数据;数据通道,所述数据通道用于将时序数据发送至数据转换器组件。4.根据权利要求3所述的时序数据同步器,其特征在于,redis timeseries中扩展实现了相同时间范围的多个key分组下的时序数据读取接口,所述数据读取器用于通过所述接口读取相应的时序数据。5.根据权利要求1所述的时序数据同步器,其特征在于,所述数据转换器组件包括:表分组器,所述表分组器用于将相同设备的时序数据聚合到同一个分组中,得到至少一个表分组;行分组器,所述行分组器用于将同一表分组中的时序数据根据时间戳聚合到同一个分组中,得到至少一个行分组;列集合分组器,所述列集合分组器用于将不同行分组中的时序数据按照相同采集点集合的时序数据聚合到同一个分组中,得到多个数据表。6.根据权利要求5所述的时序数据同步器,其特征在于,所述数据表中rows字段为map映射类型,rows字段的key为列集合排序且连接后的字符串,rows字段的value为拥有与key
相同列的时序数据集合,所述数据表中number字段为时序数据的条目数量。7.根据权利要求5所述的时序数据同步器,其特征在于,所述taossink数据下沉组件包括:sql生成器,所述sql生成器用于从所述数据转换器组件中获取数据库表格式的时序数据,并将数据库表结构的时序数据生成sql语句;写入器,所述写入器用于从sql生成器读取sql语句,并将sql语句发送至tdengine中,通过在tdengine中执行所示sql语句将时序数据写入tdengine时序数据库的持久化存储中;并用于通过持有的同步记录存储器的存储器句柄将已读keys和时间戳传入同步记录存储器的事件监听通道,同步记录存储器通过其keys更新器将已读keys和时间戳更新至内存和元数据存储。8.根据权利要求7所述的时序数据同步器,其特征在于,当时序数据条目数量的累加值达到阈值时,所述写入器用于将sql语句形式的时序数据写入tdengine时序数据库的持久化存储中;所述时序数据条目数量记录于数据表的number字段。9.根据权利要求8所述的时序数据同步器,其特征在于,所述写入器中配置有定时器,当时序数据条目数量的累加值达到阈值时,或者,达到写入器中定时器的时间戳值时,所述写入器用于将sql语句形式的时序数据写入tdengine时序数据库的持久化存储中。

技术总结
本发明公开了一种时序数据同步器,属于时序数据库技术领域,要解决的技术问题为如何提供一种高性能高吞吐的实时同步器,满足边缘端大量时序数据持久化的需求。包括:同步记录存储器组件,用于读取和维护待读取的key以及对应读取时间戳;RedisTsSource数据源组件,用于根据同步记录存储器组件提供的待读取的key以及对应的读取起始时间戳,并行从RedisTimeSeries时序数据库中读取时序数据;数据转换器组件,用于将时序数据转换为数据表结构的时序数据;TaosSink数据下沉组件,用于将数据表结构的时序数据转换为SQL语句,并将SQL语句发送至TDEngine。SQL语句发送至TDEngine。SQL语句发送至TDEngine。


技术研发人员:苑晓龙 金宁
受保护的技术使用者:浪潮软件集团有限公司
技术研发日:2022.08.23
技术公布日:2022/12/1
转载请注明原文地址: https://bbs.8miu.com/read-344655.html

最新回复(0)