CN112347794B - 数据翻译方法、装置、设备及计算机存储介质 - Google Patents
数据翻译方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN112347794B CN112347794B CN202011167543.4A CN202011167543A CN112347794B CN 112347794 B CN112347794 B CN 112347794B CN 202011167543 A CN202011167543 A CN 202011167543A CN 112347794 B CN112347794 B CN 112347794B
- Authority
- CN
- China
- Prior art keywords
- data
- translation
- target
- type
- element type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及金融科技(Fintech)技术领域,并公开了一种数据翻译方法,该方法包括:当检测到多个翻译算法被多个系统调用时,依次遍历被调用的各翻译算法,若遍历的翻译算法是获取字典翻译结果集,根据遍历的翻译算法确定数据传输对象对应的要素类型,并将要素类型添加至预设的翻译标记集合,以获取目标翻译标记集合;若目标翻译标记集合中存在和遍历的翻译算法对应的字典缓存组件不匹配的目标要素类型,则将目标要素类型添加至预设的翻译再标记集合;根据具有目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据并输出。本发明还公开了一种数据翻译装置、设备和计算机存储介质。本发明提高了各个系统中数据翻译的一致性。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及数据翻译方法、装置、设备及计算机存储介质。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对分布式系统数据字典翻译技术提出了更高的要求。目前各个系统在使用字典翻译时都是使用本地数据库记录数据,因此在翻译过程中需要多次访问数据库,使得对本地数据库的访问次数较多,并且在本地数据库中存在部分数据是共性的字典数据,若需要更新,则需要通知各个系统逐个进行修改,从而可能导致部分系统没有及时更新共性的字典数据,使得翻译不一致。
发明内容
本发明的主要目的在于提出一种数据翻译方法、装置、设备及计算机存储介质,旨在解决如何提高各个系统中数据翻译的一致性的技术问题。
为实现上述目的,本发明提供一种数据翻译方法,所述数据翻译方法包括如下步骤:
当检测到多个翻译算法被多个系统调用时,依次遍历被调用的各所述翻译算法,若遍历的翻译算法是获取字典翻译结果集,则根据所述遍历的翻译算法确定数据传输对象;
确定所述数据传输对象对应的要素类型,并将所述要素类型添加至预设的翻译标记集合,以获取目标翻译标记集合;
若所述目标翻译标记集合中存在和所述遍历的翻译算法对应的字典缓存组件不匹配的目标要素类型,则将所述目标要素类型添加至预设的翻译再标记集合;
根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据,并输出所述目标翻译数据。
可选地,根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据的步骤,包括:
根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取和所述目标要素类型关联的关联翻译数据,并将所述关联翻译数据缓存到所述字典缓存组件;
基于具有所述关键翻译数据的字典缓存组件获取和所述目标翻译集合匹配的目标翻译数据。
可选地,将所述关联翻译数据缓存到所述字典缓存组件的步骤,包括:
基于所述目标要素类型确定所述关联翻译数据的缓存生效时间,并根据所述缓存生效时间将所述关联翻译数据缓存到所述字典缓存组件。
可选地,基于具有所述关键翻译数据的字典缓存组件获取和所述目标翻译集合匹配的目标翻译数据的步骤,包括:
获取具有所述关键翻译数据的字典缓存组件中的所有翻译数据,在所述所有翻译数据中获取和所述目标翻译集合匹配的匹配翻译数据,并将所述匹配翻译数据作为返回数据;
基于所述返回数据的数据类型确定目标翻译数据。
可选地,基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:
若所述返回数据的数据类型是基本类型,则将所述返回数据对应的名称作为key,所述返回数据的值为value拼接成json串的目标翻译数据。
可选地,基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:
若所述返回数据的数据类型是普通引用类型,则将所述返回数据对应的名称拼接成json串的目标翻译数据。
可选地,基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:
若所述返回数据的数据类型是集合类型,则根据所述返回数据对应的集合和所述返回数据的值生成目标格式的格式数据,并继续检测下一个返回数据的数据类型,根据所述格式数据和所述下一个返回数据的数据类型确定目标翻译数据。
此外,为实现上述目的,本发明还提供一种数据翻译装置,所述数据翻译装置包括:
遍历模块,用于当检测到多个翻译算法被调用时,依次遍历被调用的各所述翻译算法,若遍历的翻译算法是获取字典翻译结果集,则根据所述遍历的翻译算法确定数据传输对象;
获取模块,用于确定所述数据传输对象对应的要素类型,并将所述要素类型添加至预设的翻译标记集合,以获取目标翻译标记集合;
添加模块,用于若所述目标翻译标记集合中存在和所述遍历的翻译算法对应的字典缓存组件不匹配的目标要素类型,则将所述目标要素类型添加至预设的翻译再标记集合;
输出模块,用于根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据,并输出所述目标翻译数据。
此外,为实现上述目的,本发明还提供一种数据翻译设备,所述数据翻译设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据翻译程序,所述数据翻译程序被所述处理器执行时实现如上所述的数据翻译方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有数据翻译程序,所述数据翻译程序被处理器执行时实现如上所述的数据翻译方法的步骤。
本发明通过当检测到多个翻译算法被多个系统调用时,依次遍历被调用的各所述翻译算法,若遍历的翻译算法是获取字典翻译结果集,则根据所述遍历的翻译算法确定数据传输对象;确定所述数据传输对象对应的要素类型,并将所述要素类型添加至预设的翻译标记集合,以获取目标翻译标记集合;若所述目标翻译标记集合中存在和所述遍历的翻译算法对应的字典缓存组件不匹配的目标要素类型,则将所述目标要素类型添加至预设的翻译再标记集合;根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据,并输出所述目标翻译数据。通过遍历被调用的各个翻译算法,并在遍历的翻译算法是获取字典翻译结果集时,确定数据传输对象的要素类型,并添加至目标翻译标记集合,当字典缓存组件中存在和目标翻译标记集合不匹配的目标要素类型时,将目标要素类型添加至翻译再标记集合,并进行远程调用数据字典服务,以获取目标翻译数据,并输出目标翻译数据,从而避免了现有技术中需要多次访问数据库的现象发生,使得各个翻译算法对应的系统进行翻译时的数据格式统一,提高了各个系统中数据翻译的一致性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的数据翻译设备结构示意图;
图2为本发明数据翻译方法第一实施例的流程示意图;
图3为本发明数据翻译装置的装置模块示意图;
图4为本发明数据翻译方法中系统首次进行数据翻译的流程示意图;
图5为本发明数据翻译方法中系统非首次进行数据翻译的流程示意图;
图6为本发明数据翻译方法的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的数据翻译设备结构示意图。
本发明实施例数据翻译设备可以是PC机或服务器设备,其上运行有Java虚拟机。
如图1所示,该数据翻译设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的数据翻译设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据翻译程序。
在图1所示的数据翻译设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据翻译程序,并执行下述数据翻译方法中的操作。
基于上述硬件结构,提出本发明数据翻译方法实施例。
参照图2,图2为本发明数据翻译方法第一实施例的流程示意图,所述方法包括:
步骤S10,当检测到多个翻译算法被多个系统调用时,依次遍历被调用的各所述翻译算法,若遍历的翻译算法是获取字典翻译结果集,则根据所述遍历的翻译算法确定数据传输对象;
本实施例中的数据翻译方法可以应用于分布式系统,而且分布式系统中的各个业务系统可以通过数据返回过程中的序列化,自动实现数据翻译,无需开发人员过多关心返回的翻译数据。而且在分布式系统中,业务系统首次请求数据翻译的服务过程和非首次请求数据翻译的服务过程是不相同的。如图4所示,当业务系统是首次请求数据翻译的服务过程时,业务系统的翻译过程是,通过业务调用功能到业务系统数据库进行数据查询,以获取业务系统数据库的数据返回,再进行序列化调用翻译,即在本地、redis(RemoteDictionary Server,远程字典服务)缓存中进行缓存查询,若缓存未命中,则使用策略获取服务,即通过ribbon(电脑用户界面)负载均衡到服务注册中心进行服务发现请求,并到字典翻译服务集群中进行HTTP((HyperText Transfer Protocol,超文本传输协议)请求获取翻译数据,将获取到的翻译数据加入缓存,即加入到本地、redis缓存中,并通过本地、redis缓存返回业务系统,并在序列化完成,返回json(JavaScript Object Notation,JS对象简谱)格式数据到前台界面。
如图5所示,当业务系统是非首次请求数据翻译的服务过程时,业务系统的翻译过程是,通过业务调用功能到业务系统数据库进行数据查询,以获取业务系统数据库的数据返回,再进行序列化调用翻译,即在本地、redis缓存中进行缓存查询,若命中缓存,数据返回业务系统,并在序列化完成,返回json格式数据到前台界面。相对于业务系统首次请求数据翻译的服务过程,不需要执行通过ribbon负载均衡到服务注册中心进行服务发现请求,并到字典翻译服务集群中进行HTTP请求获取翻译数据的操作。
其中,分布式系统是多个能独立运行的计算机(即节点)组成,各个节点利用计算机网络进行信息传递,以实现共同的目标或任务。负载均衡是用于在多个计算机(或计算机集群)、网络连接、CPU(central processing unit,中央处理器)、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间,同时避免过载的目的。序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区,以便后续可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。并且在本实施例中,分布式架构系统,为了服务列表实现便利,配合服务注册中心完成服务发现功能。而且多个服务实例地址应添加负载均衡策略来提高系统响应时间,分担负载压力。
而且在本实施例中,为了实现系统无感知完成翻译,会将翻译方法定义在jbk8接口中。并且前台数据响应通常需要json格式数据,因此可以通过fastjson(fastjson是一个性能很好的Java语言实现的JSON解析器和生成器)序列化规则,结合默认接口调用的字典翻译数将数据序列化到应用的json数据中,得到目标翻译数据,而且由于fastjson可以根据用户需求定制序列化格式,因此可以达到各个系统统一或个性化获取数据格式的目的。因此,在本实施例中,当分布式架构中的多个系统都在调用预设的翻译算法时,需要依次遍历被调用的各个翻译算法。其中编译算法是用于编译系统需要编译的数据的算法,如getter(吸气剂)算法。因此当遍历的翻译算法是getDictMap()时,即获取字典翻译结果集,则根据遍历的翻译算法确定数据传输对象。
步骤S20,确定所述数据传输对象对应的要素类型,并将所述要素类型添加至预设的翻译标记集合,以获取目标翻译标记集合;
当遍历到getter算法为接口默认实现getDictMap()时,获取请求dto对象中属性加入@DicKey(name=“?”),以确定数据传输对象对应的要素类型,并将此要素类型添加至提前设置的翻译标记集合中,将具有要素类型的翻译标记集合作为目标翻译标记集合。其中,要素类型是字段翻译元信息,可以定位一组数据的值集。如下表1所示。
要素类型(DictKey) | 编码(Code) | 名称(Name) | ... |
Classify(分类) | 1 | 正常贷款 | |
Classify | 2 | 关注贷款 | |
Classify | 3 | 次级贷款 | |
... |
表1
步骤S30,若所述目标翻译标记集合中存在和所述遍历的翻译算法对应的字典缓存组件不匹配的目标要素类型,则将所述目标要素类型添加至预设的翻译再标记集合;
当获取到目标翻译集合后,还需要获取系统自身已添加的缓存组件,即遍历的翻译算法对应的字典缓存组件,并获取字典缓存组件中的翻译信息,检测目标翻译标记集合中所有要素类型对应的翻译信息是否全部存储在缓存组件中,若是,则直接获取所有要素类型对应的翻译信息进行返回,并输出到前端。若不是,则确定目标翻译标记集合中存在和字典缓存组件不匹配的目标要素类型,并将目标要素类型添加至预设的翻译再标记集合中。例如,以本地缓存为例,若本地缓存对象以ConcurrentHashMap(并发散列映射表)为缓存对象,设计每一个要素类型作为一个key(关键字),value(值)中保存值集以及缓存生效时间等,则在确定目标翻译集合后,遍历缓存对象时间复杂度,若未匹配到,则将未匹配到的翻译要素,即目标要素类型添加至翻译再标记集合。其中,翻译再标记集合和翻译标记集合不相同。
其中,缓存组件可插拔,通过spring boot(企业微服务框架)条件注入容器,达到每个业务系统可以基于配置定制化自己的缓存策略,利用自身系统的优势或者限制达到最佳的缓存机制。
步骤S40,根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据,并输出所述目标翻译数据。
根据具有目标要素类型的翻译再标记集合发起远程通信,调用字典翻译服务(即调用数据字典服务),以获取翻译数据,若成功获取到翻译数据,则将翻译数据缓存到缓存组件中,并根据目标要素类型的本身特性,如本身特性是长期或基本不改变值集的类型,设置在数据字典服务配置永久缓存。若其他要素值集可能变动较大,可配缓存时间较短,若没有配置缓存生效时间则使用默认生效时间以减轻配置难度。若因通讯异常的外在因素导致翻译失败,返回空,以便下次能继续请求。若访问要素类型不存在,可返回空对象并加入缓存,设置缓存失效时间较短,以避免这种场景下无用的多次通讯的情况。
再将缓存组件中的翻译信息和数据传输对象对应的要素类型进行匹配,以获取目标翻译数据,如@DicKey(name=”Classify”)String classifyCode,根据Classify、classifyCode的名称以及classifyCode的值,从翻译信息中获取最终需要翻译name信息。此时可以字段classifyCode的名称,如classifyCodeName作为key,name信息作为value存入map(映射)中,最终返回map对象信息。并在获取map结果后,可以进行默认序列化处理,也可以定制翻译结果,以完成json串拼接。
其中,定制序列化格式可以是翻译出来的要素属性在不同的系统中存在的表现形式,如默认格式是
如果需要类似以下格式格式:
{
“classifyCode”:”1”,
“id”:1,
“classifyCodeName”:”正常贷款”
}
则可以定义序列化类,完成序列化定制。并在接口上添加注解并使用此自定义实现类,完成自定义格式输出。
其中,在本实施例中,当调用数据字典服务,获取到对应的数据后,可以将其放置在本地缓存中,而且为避免翻译数据变化引起的数据不一致问题,还可以创建线程,配置好定时清扫数据时间,根据数据存入时间,判断该数据是否失效,若失效,则移除该数据。或者是将获取到对应的数据存储在Redis中间件缓存中,每次进行序列化翻译时,先调用redis获取数据。
并且,在整个翻译过程中,首次请求翻译,必定会去做再标记动作,去请求字典翻译服务数据。若字典翻译服务将字典翻译要素设置出多租户的概念,在每个系统重启后,通过将信号发送到字典翻译服务,字典翻译服务通过多租户,将该系统的所有需要翻译的数据通过压缩一次性发送到对应系统,可以避开首次翻译问题。后期可以扩充出租户组等概念,满足生产上的复杂业务场景。
在本实施例中,通过当检测到多个翻译算法被多个系统调用时,依次遍历被调用的各所述翻译算法,若遍历的翻译算法是获取字典翻译结果集,则根据所述遍历的翻译算法确定数据传输对象;确定所述数据传输对象对应的要素类型,并将所述要素类型添加至预设的翻译标记集合,以获取目标翻译标记集合;若所述目标翻译标记集合中存在和所述遍历的翻译算法对应的字典缓存组件不匹配的目标要素类型,则将所述目标要素类型添加至预设的翻译再标记集合;根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据,并输出所述目标翻译数据。通过遍历被调用的各个翻译算法,并在遍历的翻译算法是获取字典翻译结果集时,确定数据传输对象的要素类型,并添加至目标翻译标记集合,当字典缓存组件中存在和目标翻译标记集合不匹配的目标要素类型时,将目标要素类型添加至翻译再标记集合,并进行远程调用数据字典服务,以获取目标翻译数据,并输出目标翻译数据,从而避免了现有技术中需要多次访问数据库的现象发生,使得各个翻译算法对应的系统进行翻译时的数据格式统一,提高了各个系统中数据翻译的一致性。
进一步地,基于本发明数据翻译方法第一实施例,提出本发明数据翻译方法第二实施例。本实施例是本发明第一实施例的步骤S40,根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据的步骤的细化,包括:
步骤a,根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取和所述目标要素类型关联的关联翻译数据,并将所述关联翻译数据缓存到所述字典缓存组件;
在本实施例中,当获取到具有目标要素类型的翻译再标记集合后,可以根据此翻译再标记集合进行远程调用数据字典服务,以获取与目标要素类型相关联的关联翻译数据,并将此关联翻译数据缓存到字典缓存组件。其中,关联翻译数据可以是和目标要素类型对应的翻译数据。
步骤b,基于具有所述关键翻译数据的字典缓存组件获取和所述目标翻译集合匹配的目标翻译数据。
当获取到关联翻译数据,且将关联翻译数据缓存到字典缓存组件,得到具有关联翻译数据的字典缓存组件后,可以在此具有关键翻译数据的字典缓存组件中获取和目标翻译集合中各个要素类型匹配的翻译数据,即目标翻译数据。
在本实施例中,通过根据具有目标要素类型的翻译再标记集合远程获取关联翻译数据,并缓存到字典缓存组件,以获取和目标翻译集合匹配的目标翻译数据,从而保障了获取到的目标翻译数据的准确性。
具体地,将所述关联翻译数据缓存到所述字典缓存组件的步骤,包括:
步骤c,基于所述目标要素类型确定所述关联翻译数据的缓存生效时间,并根据所述缓存生效时间将所述关联翻译数据缓存到所述字典缓存组件。
当获取到目标要素类型后,还需要根据目标要素类型确定关联翻译数据的缓存生效时间,即根据目标要素类型的本身特性,如本身特性是长期或基本不改变值集的类型,设置在数据字典服务配置永久缓存。若其他要素值集可能变动较大,可配缓存时间较短,若没有配置缓存生效时间则使用默认生效时间以减轻配置难度。若因通讯异常的外在因素导致翻译失败,返回空,以便下次能继续请求。若访问要素类型不存在,可返回空对象并加入缓存,设置缓存失效时间较短,以避免这种场景下无用的多次通讯的情况。
在本实施例中,通过根据目标要素类型确定关联翻译数据的缓存生效时间,并根据此缓存生效时间将关联翻译数据缓存到字典缓存组件,从而避免了字典缓存组件中缓存过多,而导致系统卡顿的现象发生。
具体地,基于具有所述关键翻译数据的字典缓存组件获取和所述目标翻译集合匹配的目标翻译数据的步骤,包括:
步骤d,获取具有所述关键翻译数据的字典缓存组件中的所有翻译数据,在所述所有翻译数据中获取和所述目标翻译集合匹配的匹配翻译数据,并将所述匹配翻译数据作为返回数据;
在本实施例中,需要在具有关键翻译数据的字典缓存中获取所有翻译数据,并将目标翻译集合中的所有和数据传输对象项关联的要素类型,与各个翻译数据进行匹配,以获取匹配翻译数据,并将此匹配翻译数据作为返回数据返回到系统。
步骤e,基于所述返回数据的数据类型确定目标翻译数据。
在本实施例中,当获取到返回数据后,可以根据返回数据的数据类型确定json串的输出方式,即将返回数据转换成json格式的目标翻译数据,并用户提前设置的序列化方式进行输出。其中,数据类型可以包括基本类型,集合类型和普通引用类型。
在本实施例中,通过在具有关联翻译数据的字典缓存组件中的所有翻译数据中获取和目标翻译集合匹配的匹配翻译数据,并将其作为返回数据,根据返回数据的数据类型确定目标翻译数据,从而保障了获取到的目标翻译数据的准确性。
具体地,基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:
步骤f,若所述返回数据的数据类型是基本类型,则将所述返回数据对应的名称作为key,所述返回数据的值为value拼接成json串的目标翻译数据。
在本实施例中,当返回数据的数据类型是基本类型时,如java 8大基本数据类型及封装类型、枚举等。则可以确定返回数据对应的名称,即name(名称)去掉get后第一字母小写,将其作为key,返回数据的值作为value拼接成json串的字段数据,并将此具有json格式的字段数据作为目标翻译数据。
在本实施例中,通过在返回数据的数据类型是基本类型时,将返回数据对应的名称作为key,值为value拼接成json格式的目标翻译数据,从而保障了获取到的目标翻译数据的准确性。
具体地,基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:
步骤g,若所述返回数据的数据类型是普通引用类型,则将所述返回数据对应的名称拼接成json串的目标翻译数据。
当经过判断发现返回数据的数据类型是普通引用类型时,普通引用类型是方法和属性的集合。则以确定返回数据对应的名称,即name去掉get后第一字母小写,将其作为key,value为新json串,并将其得到的数据作为目标翻译数据。
在本实施例中,通过在确定返回数据的数据类型为普通引用类型时,根据返回数据对应的名称拼接成json串的目标翻译数据,从而保障了获取到的目标翻译数据的准确性。
具体地,基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:
步骤h,若所述返回数据的数据类型是集合类型,则根据所述返回数据对应的集合和所述返回数据的值生成目标格式的格式数据,并继续检测下一个返回数据的数据类型,根据所述格式数据和所述下一个返回数据的数据类型确定目标翻译数据。
当经过判断发现返回数据的数据类型是集合类型,如array(数组)、list(列表)、collection(集)、map(映射)等。则可以根据此返回数据对应的集合,如map和返回数据的值生成具有目标格式,如json格式的数据,即格式数据。并继续检测下一个返回数据的数据类型,根据格式数据和下一个返回数据的数据类型来确定目标翻译数据,也就是在以name去掉get后第一字母小写,将其作为key,重新开始新的json对象拼接,内容需要获取集合类内部value,并继续访问下一个返回数据,递归完成json串的拼接,以获取到目标翻译数据。
在本实施例中,通过在确定返回数据的数据类型为集合类型时,根据返回数据对应的集合和值生成目标格式的格式数据,并根据下一个返回数据的数据类型确定目标翻译数据,从而保障了获取到的目标翻译数据的准确性。
此外,在本实施例中,完整序列化的数据翻译可以如图6所示。
在本实施例中,当对象demo1序列化开始时,先进行循环递归调用对象多层对象聚合场景的翻译部分算法,即遍历调用翻译算法,如getter算法,并遍历调用getter算法开始拼接json串,即根据返回数据的数据类型进行拼接,若是其他引用型对象,则确定新对象List<Demo2Dto>,重新开始翻译,并进行对象聚合序列化,遵循restfull风格,翻译完成后返回并拼接。也就是调用IDictionary#getDistMap,并且获取对象翻译字段集合算法,即启动class类的翻译信息缓存器,检测该翻译信息缓存器中是否具有缓存类对应的翻译信息,若是,则添加至字典翻译信息缓存组件,即字典缓存组件。若否,则根据dto的反射,获取demo1的类的所有字段,以及该字段对应的值放入集合,并进行字段添加翻译注解,遍历集合,获取类的要素类型集合,添加到缓存。并且根据字典翻译信息缓存组件判断缓存数据是否全部存在,若否,则组装不存在缓存的要素类型集合,调用远程通讯查询字典翻译信息,并进行存储缓存。若是,则根据当前类的翻译字段的集合以及对应的值,生成key-value类型数据,存放map中,最终getDictMap完成返回。再根据自定义的序列化方法,使用默认或者重构json串输出方式,完成自定义序列化输出,直至翻译完成。
本发明还提供一种数据翻译装置,参照图3,所述数据翻译装置包括:
遍历模块,用于当检测到多个翻译算法被多个系统调用时,依次遍历被调用的各所述翻译算法,若遍历的翻译算法是获取字典翻译结果集,则根据所述遍历的翻译算法确定数据传输对象;
获取模块,用于确定所述数据传输对象对应的要素类型,并将所述要素类型添加至预设的翻译标记集合,以获取目标翻译标记集合;
添加模块,用于若所述目标翻译标记集合中存在和所述遍历的翻译算法对应的字典缓存组件不匹配的目标要素类型,则将所述目标要素类型添加至预设的翻译再标记集合;
输出模块,用于根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据,并输出所述目标翻译数据。
可选地,所述输出模块,还用于:
根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取和所述目标要素类型关联的关联翻译数据,并将所述关联翻译数据缓存到所述字典缓存组件;
基于具有所述关键翻译数据的字典缓存组件获取和所述目标翻译集合匹配的目标翻译数据。
可选地,所述输出模块,还用于:
基于所述目标要素类型确定所述关联翻译数据的缓存生效时间,并根据所述缓存生效时间将所述关联翻译数据缓存到所述字典缓存组件。
可选地,所述输出模块,还用于:
获取具有所述关键翻译数据的字典缓存组件中的所有翻译数据,在所述所有翻译数据中获取和所述目标翻译集合匹配的匹配翻译数据,并将所述匹配翻译数据作为返回数据;
基于所述返回数据的数据类型确定目标翻译数据。
可选地,所述输出模块,还用于:
若所述返回数据的数据类型是基本类型,则将所述返回数据对应的名称作为key,所述返回数据的值为value拼接成json串的目标翻译数据。
可选地,所述输出模块,还用于:
若所述返回数据的数据类型是普通引用类型,则将所述返回数据对应的名称拼接成json串的目标翻译数据。
可选地,所述输出模块,还用于:
若所述返回数据的数据类型是集合类型,则根据所述返回数据对应的集合和所述返回数据的值生成目标格式的格式数据,并继续检测下一个返回数据的数据类型,根据所述格式数据和所述下一个返回数据的数据类型确定目标翻译数据。
上述各程序模块所执行的方法可参照本发明数据翻译方法各个实施例,此处不再赘述。
本发明还提供一种计算机存储介质。
本发明计算机存储介质上存储有数据翻译程序,所述数据翻译程序被处理器执行时实现如上所述的数据翻译方法的步骤。
其中,在所述处理器上运行的数据翻译程序被执行时所实现的方法可参照本发明数据翻译方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种数据翻译方法,其特征在于,所述数据翻译方法包括如下步骤:
当检测到多个翻译算法被多个系统调用时,依次遍历被调用的各所述翻译算法,若遍历的翻译算法是获取字典翻译结果集,则根据所述遍历的翻译算法确定数据传输对象;
确定所述数据传输对象对应的要素类型,并将所述要素类型添加至预设的翻译标记集合,以获取目标翻译标记集合,其中,所述要素类型是字段翻译元信息;
若所述目标翻译标记集合中存在和所述遍历的翻译算法对应的字典缓存组件不匹配的目标要素类型,则将所述目标要素类型添加至预设的翻译再标记集合;
根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据,并输出所述目标翻译数据,其中,输出所述目标翻译数据之后,包括:将所述目标翻译数据缓存到缓存组件中,根据所述目标要素类型的本身特性设置缓存时间,所述目标要素类型的本身特性包括长期或基本不改变值集的类型;
其中,根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据的步骤,包括:
根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取和所述目标要素类型关联的关联翻译数据,并将所述关联翻译数据缓存到所述字典缓存组件;
将所述字典缓存组件中的翻译信息和所述数据传输对象对应的要素类型进行匹配,以获取目标翻译数据,并根据所述目标翻译数据的要素类型在不同的系统中进行不同的格式设置;
其中,将所述关联翻译数据缓存到所述字典缓存组件的步骤之后,包括:
获取具有所述关联翻译数据的字典缓存组件中的所有翻译数据,在所述所有翻译数据中获取和所述目标翻译标记集合匹配的匹配翻译数据,并将所述匹配翻译数据作为返回数据;
基于所述返回数据的数据类型确定目标翻译数据;
其中,所述基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:
若所述返回数据的数据类型是基本类型,则将所述返回数据对应的名称去掉get后第一字母小写作为key,所述返回数据的值为value拼接成json串的目标翻译数据。
2.如权利要求1所述的数据翻译方法,其特征在于,所述将所述关联翻译数据缓存到所述字典缓存组件的步骤,包括:
基于所述目标要素类型确定所述关联翻译数据的缓存生效时间,并根据所述缓存生效时间将所述关联翻译数据缓存到所述字典缓存组件。
3.如权利要求1所述的数据翻译方法,其特征在于,所述基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:
若所述返回数据的数据类型是普通引用类型,则将所述返回数据对应的名称拼接成json串的目标翻译数据。
4.如权利要求1所述的数据翻译方法,其特征在于,所述基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:
若所述返回数据的数据类型是集合类型,则根据所述返回数据对应的集合和所述返回数据的值生成目标格式的格式数据,并继续检测下一个返回数据的数据类型,根据所述格式数据和所述下一个返回数据的数据类型确定目标翻译数据。
5.一种数据翻译装置,其特征在于,所述数据翻译装置包括:
遍历模块,用于当检测到多个翻译算法被调用时,依次遍历被调用的各所述翻译算法,若遍历的翻译算法是获取字典翻译结果集,则根据所述遍历的翻译算法确定数据传输对象;
获取模块,用于确定所述数据传输对象对应的要素类型,并将所述要素类型添加至预设的翻译标记集合,以获取目标翻译标记集合,其中,所述要素类型是字段翻译元信息;
添加模块,用于若所述目标翻译标记集合中存在和所述遍历的翻译算法对应的字典缓存组件不匹配的目标要素类型,则将所述目标要素类型添加至预设的翻译再标记集合;
输出模块,用于根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据,并输出所述目标翻译数据;其中,输出所述目标翻译数据之后,包括:将所述目标翻译数据缓存到缓存组件中,根据所述目标要素类型的本身特性设置缓存时间,所述目标要素类型的本身特性包括长期或基本不改变值集的类型,其中,根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取目标翻译数据的步骤,包括:根据具有所述目标要素类型的翻译再标记集合远程调用数据字典服务获取和所述目标要素类型关联的关联翻译数据,并将所述关联翻译数据缓存到所述字典缓存组件;将所述字典缓存组件中的翻译信息和所述数据传输对象对应的要素类型进行匹配,以获取目标翻译数据,并根据所述目标翻译数据的要素类型在不同的系统中进行不同的格式设置,其中,将所述关联翻译数据缓存到所述字典缓存组件的步骤之后,包括:获取具有所述关联翻译数据的字典缓存组件中的所有翻译数据,在所述所有翻译数据中获取和所述目标翻译标记集合匹配的匹配翻译数据,并将所述匹配翻译数据作为返回数据;基于所述返回数据的数据类型确定目标翻译数据;其中,所述基于所述返回数据的数据类型确定目标翻译数据的步骤,包括:若所述返回数据的数据类型是基本类型,则将所述返回数据对应的名称去掉get后第一字母小写作为key,所述返回数据的值为value拼接成json串的目标翻译数据。
6.一种数据翻译设备,其特征在于,所述数据翻译设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据翻译程序,所述数据翻译程序被所述处理器执行时实现如权利要求1至4中任一项所述的数据翻译方法的步骤。
7.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有数据翻译程序,所述数据翻译程序被处理器执行时实现如权利要求1至4中任一项所述的数据翻译方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011167543.4A CN112347794B (zh) | 2020-10-27 | 2020-10-27 | 数据翻译方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011167543.4A CN112347794B (zh) | 2020-10-27 | 2020-10-27 | 数据翻译方法、装置、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112347794A CN112347794A (zh) | 2021-02-09 |
CN112347794B true CN112347794B (zh) | 2023-06-09 |
Family
ID=74358783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011167543.4A Active CN112347794B (zh) | 2020-10-27 | 2020-10-27 | 数据翻译方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112347794B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237806B (zh) * | 2021-12-29 | 2024-03-12 | 瀚云科技有限公司 | 一种页面信息的显示方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424263A (zh) * | 2013-08-29 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种数据记录的处理方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10198680A (ja) * | 1997-01-07 | 1998-07-31 | Hitachi Ltd | 分散辞書管理方法及びそれを用いた機械翻訳方法 |
CN100383794C (zh) * | 2006-03-31 | 2008-04-23 | 北京金山软件有限公司 | 词典类数据的检索方法、保存方法及检索系统 |
CN101520786B (zh) * | 2008-02-27 | 2010-12-22 | 北京搜狗科技发展有限公司 | 一种输入法词典的实现方法和输入法系统 |
CN104317787A (zh) * | 2014-10-23 | 2015-01-28 | 迎新科技有限公司 | 即时通讯终端及其信息翻译方法和装置 |
CN105760368B (zh) * | 2016-03-11 | 2019-02-12 | 张广睿 | 一种文档文字的深度处理方法 |
CN106021197B (zh) * | 2016-05-27 | 2019-04-23 | 成都优译信息技术有限公司 | Dwg格式文件的翻译系统及翻译方法 |
CN107391500A (zh) * | 2017-08-21 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 文本翻译方法、装置及设备 |
CN111046035B (zh) * | 2019-10-29 | 2021-02-12 | 三盟科技股份有限公司 | 数据自动化处理方法、系统、计算机设备及可读存储介质 |
-
2020
- 2020-10-27 CN CN202011167543.4A patent/CN112347794B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424263A (zh) * | 2013-08-29 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种数据记录的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112347794A (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7599948B2 (en) | Object relational mapping layer | |
US20040068526A1 (en) | Mapping schemes for creating and storing electronic documents | |
CN112930529B (zh) | 从概念数据模型生成软件工件 | |
US10936559B1 (en) | Strongly-consistent secondary index for a distributed data set | |
US11050840B2 (en) | System and method for utilizing a distributed in-memory data grid to implement typed buffer caching services for a transactional processing environment | |
US9158555B2 (en) | Efficient serialization of mutable objects | |
US9600597B2 (en) | Processing structured documents stored in a database | |
US20230393984A1 (en) | In-memory normalization of cached objects to reduce cache memory footprint | |
US10417058B1 (en) | Method and system for executing application programming interface (API) requests based on parent-child object relationships | |
CN110109983B (zh) | 一种操作Redis数据库的方法和装置 | |
CN112347794B (zh) | 数据翻译方法、装置、设备及计算机存储介质 | |
US7467373B2 (en) | Global object system | |
CA3089289C (en) | System and methods for loading objects from hash chains | |
US20230401209A1 (en) | Columnar Cache Query Using Hybrid Query Execution Plan | |
US11016830B2 (en) | Entity-based service operation for object-based persistence | |
US11222003B1 (en) | Executing transactions for a hierarchy of data objects stored in a non-transactional data store | |
US10114864B1 (en) | List element query support and processing | |
US10402391B2 (en) | Processing method, device and system for data of distributed storage system | |
US11556540B1 (en) | Transmission format cache for database reads | |
US20100257194A1 (en) | Retrieving data in batches from a line of business system | |
US20090063654A1 (en) | Apparatus, system, and method for xml based disconnected data access for multivalued/hierarchical databases | |
JP2020017289A (ja) | トランザクション処理環境において分散型キャッシングを提供するためのシステムおよび方法 | |
JP2020017288A (ja) | トランザクション処理環境において分散型キャッシングを提供するためのシステムおよび方法 | |
CN116456021A (zh) | 页面数据请求方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |