轨道交通数据转存方法及装置
文献发布时间:2023-06-19 19:30:30
技术领域
本发明涉及轨道交通技术领域,尤其涉及一种轨道交通数据转存方法及装置。
背景技术
随着科学技术的发展,轨道交通极大的方便了人们的生活,已成为现代生活不可或缺的一部分。
轨道交通的正常运行依赖于各类轨道交通系统的支持。在轨道交通的实际运行过程中,上述系统产生的数据可以称为轨道交通数据,不同的轨道交通系统之间存在轨道交通数据的转存需求。
但是,现有的轨道交通数据转存方法难以简单、高效地实现轨道交通数据的转存。因此,如何更简单、更高效地进行轨道交通数据的转存,是本领域亟待解决的技术问题。
发明内容
本发明提供一种轨道交通数据转存方法及装置,用以解决现有技术中难以简单、高效地实现轨道交通数据的转存的缺陷,实现更简单、更高效地进行轨道交通数据的转存。
本发明提供一种轨道交通数据转存方法,包括:
获取目标待转存数据;
基于所述目标待转存数据的配置信息,确定所述目标待转存数据对应的目标存储空间;
基于所述目标存储空间的类型或所述目标存储空间对应的协议,确定所述目标待转存数据对应的转存策略;
基于所述转存策略,将所述目标待转存数据转存至所述目标存储空间。
根据本发明提供的一种轨道交通数据转存方法,所述基于所述目标存储空间的类型,确定所述目标待转存数据对应的转存策略,包括:
在所述目标存储空间的类型为MySQL或Qracle的情况下,确定所述目标待转存数据对应的转存策略包括第一转存策略;
其中,所述第一转存策略包括基于Mybatis框架和Springboot框架,将所述目标待转存数据转存至所述目标存储空间。
根据本发明提供的一种轨道交通数据转存方法,所述基于所述目标存储空间的类型,确定所述目标待转存数据对应的转存策略,包括:
在所述目标存储空间的类型为消息队列的情况下,确定所述目标待转存数据对应的转存策略包括第二转存策略;
其中,所述第二转存策略包括基于所述目标存储空间的配置信息,获取消息队列执行器,利用JSONObject对所述目标待转存数据进行解析之后,基于所述消息队列执行器,将解析后的目标待转存数据转存至所述目标存储空间。
根据本发明提供的一种轨道交通数据转存方法,所述基于所述目标存储空间对应的协议,确定所述目标待转存数据对应的转存策略,包括:
在所述目标存储空间对应的协议为HTTP协议、UDP协议或TCP协议的情况下,确定所述目标待转存数据对应的转存策略包括第三转存策略;
其中,所述第三转存策略包括基于所述目标存储空间对应的协议,将所述目标待转存数据转存至所述目标存储空间。
根据本发明提供的一种轨道交通数据转存方法,所述基于所述目标存储空间的类型,确定所述目标待转存数据对应的转存策略,包括:
在所述目标存储空间的类型为ES的情况下,确定所述目标待转存数据对应的转存策略包括第四转存策略;
其中,所述第四转存策略包括基于所述目标存储空间的操作类型,获取所述目标存储空间对应的实现类,基于所述实现类将所述目标待转存数据转存至所述目标存储空间。
根据本发明提供的一种轨道交通数据转存方法,所述获取目标待转存数据,包括:
获取原始待转存数据;
对所述原始待转存数据进行数据校验;
在所述原始待转存数据通过所述数据校验的情况下,对所述原始待转存数据进行数据处理;
将经过数据处理后的原始待转存数据确定为所述目标待转存数据;
其中,所述数据校验包括数据格式校验;所述数据处理包括数据过滤。
根据本发明提供的一种轨道交通数据转存方法,所述基于所述转存策略,将所述目标待转存数据转存至所述目标存储空间,包括:
在所述目标存储空间通过验证的情况下,基于所述转存策略,将所述目标待转存数据转存至所述目标存储空间。
本发明还提供一种轨道交通数据转存装置,包括:
转存数据获取模块,用于获取目标待转存数据;
存储空间确定模块,用于基于所述目标待转存数据的配置信息,确定所述目标待转存数据对应的目标存储空间;
转存策略确定模块,用于基于所述目标存储空间的类型或所述目标存储空间对应的协议,确定所述目标待转存数据对应的转存策略;
数据转存模块,用于基于所述转存策略,将所述目标待转存数据转存至所述目标存储空间。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述轨道交通数据转存方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述轨道交通数据转存方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述轨道交通数据转存方法。
本发明提供的轨道交通数据转存方法及装置,通过基于目标待转存数据的配置信息,确定目标待转存数据对应的目标存储空间之后,基于上述目标存储空间的类型或对应的协议,确定目标待转存数据对应的转存策略,进而基于上述转存策略,将目标待转存数据转存至上述目标存储空间,能在数据源和存储空间类型不同的情况下,更简单、更高效地实现轨道交通数据的转存,能将数据同步转存至多个存储空间,能提高轨道交通数据转存的灵活性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的轨道交通数据转存方法的流程示意图之一;
图2是本发明提供的轨道交通数据转存方法的流程示意图之二;
图3是本发明提供的轨道交通数据转存装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,轨道交通系统所采用的数据传输方式通常是特定的,不同轨道交通系统所采用的数据传输方法可能并不相同,轨道交通系统的数据传输具有局限性强、普适性差以及扩展成本高等特点。
由于不同轨道交通系统所采用的数据传输方式难以统一,导致在不同轨道交通系统之间有轨道交通数据转存需求的情况下,难以简单、高效地实现轨道交通数据的转存,给多轨道交通系统的协同造成障碍。
对此,本发明提供一种基于HTTP协议的轨道交通数据转存方法。基于本发明提供的轨道交通数据转存方法,可以更简单、更高效地实现不同类型数据库之间的数据转存,可以将数据同步转存至多个数据库,可以提高轨道交通数据转存的灵活性。
图1是本发明提供的轨道交通数据转存方法的流程示意图之一。下面结合图1描述本发明的轨道交通数据转存方法。如图1所示,该方法包括:步骤101、获取目标待转存数据。
需要说明的是,本发明实施例的执行主体为轨道交通数据转存装置。
具体地,本发明实施例中的目标待转存数据为轨道交通数据。目标待转存数据为本发明提供的轨道交通数据转存方法的转存对象。目标存储空间为上述目标待转存数据的转存目标。基于本发明提供的轨道交通数据转存方法可以将上述目标待转存数据转存至目标存储空间。
需要说明的是,本发明实施例中可以将目标待转存数据的数据源称为待转存数据源。上述待转存数据源的类型可以与目标存储空间的类型相同或不同;上述待转存数据源对应的协议也可以与目标存储空间对应的协议相同或不同。
需要说明的是,本发明实施例中的目标存储空间的数量可以为一个或多个。例如:目标存储空间可以为MySQL数据库;或者,目标存储空间可以包括MySQL数据库、Oracle数据库和kafka消息队列。
本发明实施例中可以通过多种方式获取目标待转存数据,例如:可以获取上述待转存数据源输出的原始待转存数据,作为目标待转存数据;或者,还可以在获取上述待转存数据源输出的原始待转存数据之后,对上述原始待转存数据进行数据处理之后,再将经过数据处理之后的原始待转存数据,确定为目标待转存数据。本发明实施例中对获取目标待转存数据的具体方式不作限定。
作为一个可选地实施例,获取目标待转存数据,包括:获取原始待转存数据。
需要说明的是,本发明提供的轨道交通数据转存方法基于HTTP协议,对外暴露的是HTTP接口。
相应地,本发明实施例中可以基于HTTP接口,获取上述待转存数据源输出的原始待转存数据。
对原始待转存数据进行数据校验;数据校验包括数据格式校验。
具体地,获取上述原始待转存数据之后,可以对上述原始待转存数据进行数据校验。
可选地,本发明实施例中对上述原始待转存数据的数据校验可以包括:基于预设格式,对上述原始待转存数据进行格式校验,以及对上述原始待转存数据进行完整性校验和防重复提交校验等。
在原始待转存数据通过数据校验的情况下,对原始待转存数据进行数据处理;
其中,数据处理包括数据过滤。
具体地,对上述原始待转存数据进行数据校验之后,若上述原始待转存数据通过上述数据校验的情况下,可以对上述原始待转存数据进行数据处理。
需要说明的是,本发明实施例中对上述原始待转存数据的数据处理可以包括但不限于数据过滤等。
将经过数据处理后的原始待转存数据确定为目标待转存数据。
具体地,对上述原始待转存数据进行数据处理之后,可以将经过数据处理后的原始待转存数据确定为上述目标待转存数据。
本发明实施例通过对原始待转存数据进行数据校验,在上述原始待转存数据通过数据校验的情况下,进一步对上述原始待转存数据进行数据处理,将经过数据处理后的原始待转存数据确定为目标待转存数据,能提高转存目标待转存数据的安全性,能避免因格式错误/重复等问题而造成的转存失败。
步骤102、基于目标待转存数据的配置信息,确定目标待转存数据对应的目标存储空间。
具体地,目标待转存数据的配置信息中可以包括接口请求参数topic_id。
获取目标待转存数据之后,可以基于目标待转存数据中的topic_id,确定目标待转存数据对应的目标存储空间。
需要说明的是,确定目标待转存数据对应的目标存储空间之后,还可以进一步获取上述目标存储空间的配置信息。其中,上述配置信息可以包括上述目标存储空间的类型和/或上述目标存储空间对应的协议等。
需要说明的是,本发明实施例中存储空间的类型可以包括但不限于MySQL数据库、Qracle数据库、ES数据库以及消息队列等;存储空间对应的协议可以包括但不限于HTTP协议、UDP协议以及TCP协议等。
需要说明的是,基于目标存储空间的配置信息,还可以查询目标表结构,并可以对查询到的目标表结构进行更新。
步骤103、基于目标存储空间的类型或目标存储空间对应的协议,确定目标待转存数据对应的转存策略。
具体地,确定目标待转存数据对应的目标存储空间之后,可以基于目标存储空间的配置信息,确定目标存储空间的类型或目标存储空间对应的协议。
确定目标存储空间的类型或目标存储空间对应的协议之后,可以基于存储空间的类型与预设转存策略之间的对应关系,或者基于存储空间对应的协议与预设转存策略之间的对应关系,确定目标待转存数据对应的转存策略。
需要说明的是,上述预设转存策略、存储空间的类型与预设转存策略之间的对应关系以及存储空间对应的协议与预设转存策略之间的对应关系,可以是基于先验知识和/或实际情况预先确定的。本发明实施例中对上述预设转存策略、存储空间的类型与预设转存策略之间的对应关系以及存储空间对应的协议与预设转存策略之间的对应关系不作具体限定。
步骤104、基于转存策略,将目标待转存数据转存至目标存储空间。
具体地,确定目标待转存数据对应的转存策略之后,可以基于上述转存策略,对目标待转存数据进行转存,将目标待转存数据转存至目标存储空间。
作为一个可选地实施例,基于转存策略,将目标待转存数据转存至目标存储空间,包括:在目标存储空间通过验证的情况下,基于转存策略,将目标待转存数据转存至目标存储空间。
具体地,本发明实施例中在执行目标待转存数据对应的转存策略之前,可以对目标存储空间进行验证,判断目标存储空间是否为空,从而可以避免因目标存储空间为空而造成目标待转存数据转存失败。
在目标存储空间通过验证的情况下,可以确定目标存储空间不为空,此时可以通过基于目标待转存数据对应的转存策略,将目标待转存数据转存至目标存储空间。
需要说明的是,将目标待转存数据转存至目标存储空间之后,可以将转存结果返回接口调用方。
本发明实施例通过基于目标待转存数据的配置信息,确定目标待转存数据对应的目标存储空间之后,基于上述目标存储空间的类型或对应的协议,确定目标待转存数据对应的转存策略,进而基于上述转存策略,将目标待转存数据转存至上述目标存储空间,能在数据源和存储空间类型不同的情况下,更简单、更高效地实现轨道交通数据的转存,能将数据同步转存至多个存储空间,能提高轨道交通数据转存的灵活性。
基于上述各实施例的内容,基于目标存储空间的类型,确定目标待转存数据对应的转存策略,包括:在目标存储空间的类型为MySQL的情况下,确定目标待转存数据对应的转存策略包括第一转存策略;
其中,第一转存策略包括基于Mybatis框架和Springboot框架,将目标待转存数据转存至目标存储空间。
需要说明的是,MySQL是一个关系型数据库管理系统,MySQL数据库可以通过将数据保存至不同的表中,增加数据存储速度并提高数据存储灵活性。
需要说明的是,在目标存储空间的数量为一个的情况下,若目标存储空间的类型为MySQL,则可以确定该目标存储空间即为MySQL数据库;
在目标存储空间的数量为多个的情况下,若任一目标存空间的类型为MySQL,则可以确定上述目标存储空间为MySQL数据库。
具体地,在目标存储空间的类型为MySQL的情况下,可以基于存储空间的类型与预设转存策略之间的对应关系,确定目标待转存数据对应的转存策略中包括第一转存策略,进而基于第一转存策略,可以将目标待转存数据转存至上述MySQL数据库中。其中,上述第一转存策略包括基于Mybatis框架和Springboot框架,将目标转存数据转存至上述MySQL数据库。
基于上述第一转存策略,可以通过DBHandler的转存数据方式,将目标待转存数据转存至上述MySQL数据库。
基于上述第一转存策略,将目标待转存数据转存至上述MySQL数据库的具体步骤包括:首先,基于Mybatis框架以及目标存储空间的配置信息中DataSourceID,可以将目标待转存数据的转存路径切换至上述MySQL数据库。
其中,Mybatis是一款的持久层框架,可以支持定制化SQL、存储过程以及高级映射,并避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Mybatis还可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Ordinary JavaObject,普通的Java对象)映射成数据库中的记录。
Springboot是一个简化Spring开发的框架,提供了一种快速使用Spring的方式。
本发明实施例中,将目标转存数据转存至上述MySQL数据库的环境架构为Springboot框架。
需要说明的是,基于Mybatis框架以及目标存储空间的配置信息中DataSourceID,可以先从缓存中获取上述MySQL数据库。若在缓存中未获取到上述MySQL数据库,则可以先将目标待转存数据的转存路径切换至默认存储空间,再遍历所有的存储空间,获取与上述DataSourceID一致的存储空间,获取与上述DataSourceID一致的存储空间之后,可以将上述存储空间设置到动态存储空间管理器,并将上述存储空间保存至缓存。
其次,根据目标待转存数据的配置信息中的操作类型信息(on Type),可以生成上述操作类型信息对应的SQL生成策略,生成目标待转存数据对应的SQL语句。
最后,基于Mybatis框架,可以执行上述SQL语句,从而可以将目标待转存数据转存至目标存储空间中的MySQL数据库。
本发明实施例通过在目标存储空间的类型为MySQL的情况下,确定目标待转出数据对应的转存策略中包括第一转存策略,上述第一转存策略包括基于Mybatis框架和Springboot框架,将目标待转存数据转存至MySQL数据库中,能更简单、更高效地将目标待转存数据转存至MySQL数据库中。
需要说明的是,Oracle是一个关系数据库管理系统,可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。
需要说明的是,在目标存储空间的数量为一个的情况下,若目标存储空间的类型为Oracle,则可以确定该目标存储空间即为Oracle数据库;
在目标存储空间的数量为多个的情况下,若任一目标存空间的类型为Oracle,则可以确定上述目标存储空间为Oracle数据库。
具体地,在目标存储空间的类型包括Oracle的情况下,可以基于存储空间的类型与预设转存策略之间的对应关系,确定目标待转存数据对应的转存策略中包括第一转存策略,进而可以基于第一转存策略,可以将目标待转存数据转存至上述Oracle数据库中。
基于上述第一转存策略,可以通过DBHandler的转存数据方式,将目标待转存数据转存至上述Oracle数据库。
基于上述第一转存策略,将目标待转存数据转存至上述Oracle数据库的具体步骤包括:首先,基于Mybatis框架以及目标存储空间的配置信息中DataSourceID,可以将目标待转存数据的转存路径切换至上述Oracle数据库。
其次,根据目标待转存数据的配置信息中的操作类型信息(on Type),可以生成上述操作类型信息对应的SQL生成策略,生成目标待转存数据对应的SQL语句。
最后,基于Mybatis框架,可以执行上述SQL语句,从而可以将目标待转存数据转存至目标存储空间中的Oracle数据库。
本发明实施例通过在目标存储空间的类型为Oracle的情况下,确定目标待转出数据对应的转存策略中包括第一转存策略,上述第一转存策略包括基于Mybatis框架和Spingboot框架,将目标待转存数据转存至Oracle数据库中,能更简单、更高效地将目标待转存数据转存至Oracle数据库中。
基于上述各实施例的内容,基于目标存储空间的类型,确定目标待转存数据对应的转存策略,包括:在目标存储空间的类型为消息队列的情况下,确定目标待转存数据对应的转存策略包括第二转存策略;
其中,第二转存策略包括基于目标存储空间的配置信息,获取消息队列执行器,利用JSONObject对目标待转存数据进行解析之后,基于消息队列执行器,将解析后的目标待转存数据转存至目标存储空间。
需要说明的是,消息队列(Message Queue,MQ)通常指消息中间件,可以实现消息的转发。
需要说明的是,在目标存储空间的数量为一个的情况下,若目标存储空间的类型为消息队列,则可以确定该目标存储空间即为消息队列;
在目标存储空间的数量为多个的情况下,若任一目标存空间的类型为消息队列,则可以确定上述目标存储空间为消息队列。
需要说明的是,本发明实施例中的消息队列可以包括Kafka消息队列和/或ActiveMq消息队列。
具体地,在目标存储空间的类型为消息队列的情况下,可以基于存储空间的类型与预设转存策略之间的对应关系,确定目标待转存数据对应的转存策略中包括第二转存策略,进而基于第二转存策略,可以将目标待转存数据转存至上述消息队列中。
基于上述第二转存策略,将目标待转出数据转存至目标存储空间中的消息队列的具体步骤可以包括:首先,基于目标存储空间的配置信息中的topicId和URL,生成KEY值;基于上述KEY值,从缓存中获取消息队列执行器(MqProducer);
在基于上述KEY值未从缓存中获取到消息队列执行器的情况下,可以基于目标存储空间的配置信息中的code属性信息,获得目标存储空间的类型(MqType),进而可以基于上述MqType、topicId和URL,生成上述消息队列执行器。
其次,利用JSONObject对目标待转存数据进行解析,将目标待转存数据中的json数据解析为JSONObejct对象。
最后,基于上述消息队列执行器,将解析后的目标待转存数据转存至消息队列。
本发明实施例通过在目标存储空间的类型为消息队列的情况下,确定目标待转出数据对应的转存策略中包括第二转存策略,上述第二转存策略包括基于目标存储空间的配置信息,获取消息队列执行器,利用JSONObject对目标待转存数据进行解析之后,基于消息队列执行器,将解析后的目标待转存数据转存至消息队列中,能更简单、更高效地将目标待转存数据转存至消息队列中。
基于上述各实施例的内容,基于目标存储空间对应的协议,确定目标待转存数据对应的转存策略,包括:在目标存储空间对应的协议为HTTP协议、UDP协议或TCP协议的情况下,确定目标待转存数据对应的转存策略包括第三转存策略;
其中,第三转存策略包括基于目标存储空间对应的协议,将目标待转存数据转存至目标存储空间。
具体地,在目标存储空间对应的协议为HTTP协议的情况下,可以确定目标待转存数据对应的转存策略包括第三转存策略,进而可以基于第三转存协议,将目标转存数据转存至目标存储空间。其中,上述第三转存策略包括基于HTTP协议,将目标待转存数据转存至目标存储空间。
在目标存储空间对应的协议为HTTP协议的情况下,基于上述第三转存策略,可以通过HttpHandler的存储数据方法将目标待转存数据转存至目标存储空间。
在目标存储空间对应的协议为HTTP协议的情况下,基于上述第三转存策略,将目标待转存数据转存至目标存储空间的具体步骤包括:首先,获取目标存储空间的配置信息中的URL和code属性信息;
其次,采用httpclient技术,创建HttpPost、RequestConfig等对象,并设置对应属性,执行HTTP请求,从而将目标待转存数据转存至目标存储空间。
在目标存储空间对应的协议为UDP协议的情况下,可以确定目标待转存数据对应的转存策略包括第三转存策略,进而可以基于第三转存协议,将目标转存数据转存至目标存储空间。其中,上述第三转存策略包括基于UDP协议,将目标待转存数据转存至目标存储空间。
在目标存储空间对应的协议为UDP协议的情况下,基于上述第三转存策略,可以通过UdpHandle的存储数据方法将目标待转存数据转存至目标存储空间。
在目标存储空间对应的协议为UDP协议的情况下,基于上述第三转存策略,将目标待转存数据转存至目标存储空间的具体步骤包括:首先,获取目标存储空间的配置信息中的URL和topicId,并可以通过解析上述URL获取到目标存储空间的ip和port;
其次,创建DatagramPacket对象,通过DatagramSocket对象将目标待转存数据转存至目标存储空间,从而可以通过基于TCP协议建立DatagramPacket对象,实现将目标待转存数据转存至目标存储空间。
具体地,在目标存储空间对应的协议为TCP协议的情况下,可以确定目标待转存数据对应的转存策略包括第三转存策略,进而可以基于第三转存协议,将目标转存数据转存至目标存储空间。其中,上述第三转存策略包括基于TCP协议,将目标待转存数据转存至目标存储空间。
在目标存储空间对应的协议为TCP协议的情况下,基于上述第三转存策略,可以通过TcpHandle的存储数据方法将目标待转存数据转存至目标存储空间。
在目标存储空间对应的协议为TCP协议的情况下,基于上述第三转存策略,将目标待转存数据转存至目标存储空间的具体步骤包括:首先,获取目标存储空间的配置信息中的URL和topicId,并可以通过解析上述URL获取到目标存储空间的ip和port,并对目标待转存数据进行解析,将目标待转存数据中json类型的数解析为byte数据包;
其次,创建Socket对象并获取输出流OutputStream,通过上述输出流将目标待转存数据转存至目标存储空间,从而可以基于TCP协议,通过建立套接字(socket)实现目标待转存数据转存至目标存储空间。
基于上述各实施例的内容,基于目标存储空间的类型,确定目标待转存数据对应的转存策略,包括:在目标存储空间的类型为ES的情况下,确定目标待转存数据对应的转存策略包括第四转存策略;
其中,第四转存策略包括基于目标存储空间的操作类型,获取目标存储空间对应的实现类,基于实现类将目标待转存数据转存至目标存储空间。
需要说明的是,Elasticsearch(简称ES)是一个分布式、高扩展、高实时的搜索与数据分析引擎,具有使大量数据具有搜索、分析和探索的能力。
需要说明的是,在目标存储空间的数量为一个的情况下,若目标存储空间的类型为ES,则可以确定该目标存储空间即为ES数据库;
在目标存储空间的数量为多个的情况下,若任一目标存空间的类型为ES,则可以确定上述目标存储空间为ES数据库。
具体地,在目标存储空间的类型为ES的情况下,可以基于存储空间的类型与预设转存策略之间的对应关系,确定目标待转存数据对应的转存策略中包括第四转存策略,进而基于第四转存策略,可以将目标待转存数据转存至上述ES数据库中。
基于上述第四转存策略,将目标待转存数据转存至上述ES数据库的具体步骤包括:首先,可以在ESContext中获取ES数据库的操作类型(opType),依据上述操作类型可以获取ES数据库对应的EsHandler实现类,例如:ESInsertHandler、ESUpdateHandler、ESDeleteHandler、ESReplaceHandler;其中,ESHandler为ES数据库对应的处理器;
其次,获取ES数据库的配置信息中的URL和topicId,并可以通过解析上述URL获取到ES数据库的ip和port,进而可以基于ES数据库的ip和port初始化RestHighLevelClient;
再次,基于ES数据库的配置信息中的topicId,创建IndexRequest,并设置类型、id和数据资源;
最后,通过RestHighLevelClient传输IndexRequest。
本发明实施例通过在目标存储空间的类型为ES的情况下,确定目标待转出数据对应的转存策略中包括第四转存策略,上述第一转存策略包括第四转存策略包括基于目标存储空间的操作类型,获取目标存储空间对应的实现类,基于实现类将目标待转存数据转存至目标存储空间,能更简单、更高效地将目标待转存数据转存至ES数据库中。
为了便于对本发明提供的轨道交通数据转存方法的理解,以下通过一个实例对本发明提供的轨道交通数据转存方法见说明。
图2是本发明提供的轨道交通数据转存方法的流程示意图之二。如图2所示,调用接口,获取原始待转存数据之后,可以对上述原始待转存数据进行数据校验,判断上述原始待转存数据是否出现格式错误以及是否包括重复数据,并在上述原始待转存数据通过数据校验的情况下,对上述原始待转存数据进行数据处理,获得目标待转存数据。
在上述原始待转存数据未通过数据校验的情况下,可以在用户交互界面进行提示,提示用户上述原始待转存数据格式错误、格式不全或出现重复。
基于目标待转存数据的配置信息,可以确定目标待转存数据对应的目标存储空间,并可以判断上述目标存储空间是否为空。
在上述目标存储空间为空的情况下,可以在用户交互界面进行提示,提示用户上述目标存储空间为空。
在上述目标存储空间不为空的情况下,可以基于目标存储空间的类型或目标存储空间对应的协议,确定转存协议,进而可以基于上述转存协议,将目标待转存数据转存至目标存储空间。
将目标待转存数据转存至目标存储空间之后,可以将转存结果返回接口调用方。
图3是本发明提供的轨道交通数据转存装置的结构示意图。下面结合图3对本发明提供的轨道交通数据转存装置进行描述,下文描述的轨道交通数据转存装置与上文描述的本发明提供的轨道交通数据转存方法可相互对应参照。如图3所示,转存数据获取模块301、存储空间确定模块302、转存策略确定模块303和数据转存模块304。
转存数据获取模块301,用于获取目标待转存数据;
存储空间确定模块302,用于基于目标待转存数据的配置信息,确定目标待转存数据对应的目标存储空间;
转存策略确定模块303,用于基于目标存储空间的类型或目标存储空间对应的协议,确定目标待转存数据对应的转存策略;
数据转存模块304,用于基于转存策略,将目标待转存数据转存至目标存储空间。
具体地,转存数据获取模块301、存储空间确定模块302、转存策略确定模块303和数据转存模块304电连接。
转存数据获取模块301可以通过多种方式获取目标待转存数据,例如:可以获取上述待转存数据源输出的原始待转存数据,作为目标待转存数据;或者,还可以在获取上述待转存数据源输出的原始待转存数据之后,对上述原始待转存数据进行数据处理之后,再将经过数据处理之后的原始待转存数据,确定为目标待转存数据。本发明实施例中对获取目标待转存数据的具体方式不作限定。
存储空间确定模块302可以基于目标待转存数据中的topic_id,确定目标待转存数据对应的目标存储空间。
转存策略确定模块303可以基于目标存储空间的配置信息,确定目标存储空间的类型或目标存储空间对应的协议。
确定目标存储空间的类型或目标存储空间对应的协议之后,可以基于存储空间的类型与预设转存策略之间的对应关系,或者基于存储空间对应的协议与预设转存策略之间的对应关系,确定目标待转存数据对应的转存策略。
数据转存模块304可以基于上述转存策略,对目标待转存数据进行转存,将目标待转存数据转存至目标存储空间。
本发明实施例中的轨道交通数据转存装置,通过基于目标待转存数据的配置信息,确定目标待转存数据对应的目标存储空间之后,基于上述目标存储空间的类型或对应的协议,确定目标待转存数据对应的转存策略,进而基于上述转存策略,将目标待转存数据转存至上述目标存储空间,能在数据源和存储空间类型不同的情况下,更简单、更高效地实现轨道交通数据的转存,能将数据同步转存至多个存储空间,能提高轨道交通数据转存的灵活性。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行轨道交通数据转存方法,该方法包括:获取目标待转存数据;基于目标待转存数据的配置信息,确定目标待转存数据对应的目标存储空间;基于目标存储空间的类型或目标存储空间对应的协议,确定目标待转存数据对应的转存策略;基于转存策略,将目标待转存数据转存至目标存储空间。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的轨道交通数据转存方法,该方法包括:获取目标待转存数据;基于目标待转存数据的配置信息,确定目标待转存数据对应的目标存储空间;基于目标存储空间的类型或目标存储空间对应的协议,确定目标待转存数据对应的转存策略;基于转存策略,将目标待转存数据转存至目标存储空间。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的轨道交通数据转存方法,该方法包括:获取目标待转存数据;基于目标待转存数据的配置信息,确定目标待转存数据对应的目标存储空间;基于目标存储空间的类型或目标存储空间对应的协议,确定目标待转存数据对应的转存策略;基于转存策略,将目标待转存数据转存至目标存储空间。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 一种数据转存方法、装置、电子设备及存储介质
- 一种支持轨道交通线网实时数据处理的读取方法及装置
- 一种城市轨道交通信号运维大数据预警方法及其装置
- 数据处理装置、数据处理系统、数据转存方法及记录介质
- 数据处理装置、数据处理系统、数据转存方法及程序