CN114385186A - 数据类型转换方法、装置、设备及存储介质 - Google Patents
数据类型转换方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114385186A CN114385186A CN202210032397.7A CN202210032397A CN114385186A CN 114385186 A CN114385186 A CN 114385186A CN 202210032397 A CN202210032397 A CN 202210032397A CN 114385186 A CN114385186 A CN 114385186A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- attribute
- field
- key
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及大数据领域,公开了一种数据类型转换方法、装置、设备及存储介质。该方法包括:获取目标数据对象对应的第一存储数据表,并遍历第一存储数据表,得到多个键值对;分别对各键值对中的键字段进行编码,得到各键值对对应的第一PB字段信息,并根据键字段,对各键值对中的值字段进行转化,得到各键值对对应的第一PB数据信息;组合第一PB字段信息和第一PB数据信息,得到目标数据对象对应的第一PB数据集。本发明实现了PB数据自动化转换,减少了编译文件数量,降低了PB数据的维护繁杂程度。
Description
技术领域
本发明涉及大数据领域,尤其涉及一种数据类型转换方法、装置、设备及存储介质。
背景技术
PB(Protocol Buffer)是由Google开发的一套开源序列化协议框架,类似于XML(Extensible Markup Language,可扩展标记语言)、JSON,采用协议序列化用于数据存储与读取,与XML相比,定义的数据格式更加简单,数据访问接口可以自动化生成,加快了开发者开发速度,支持多种常用语言。实际应用过程中,PB比较常见的使用场景是网络请求的数据的序列化与反序列化。PB使用proto文件保存数据的类型及属性的定义,在将PB数据转化为各开发语言所支持的数据类型的数据的过程中会访问proto文件获取具体数据的属性及类型信息。
PB框架支持多种语言,原始的proto文件通过PB自带的脚本解析生成对应语言的文件,方便各语言项目的引入集成。但尽管框架自带转换工具,开发者仍然需要手动跑工具生成对应语言文件并引入到自己的项目中。对于一些稳定的项目,周期性的迭代会频繁的增删改接口数据,对应的也需要频繁的转换原始proto文件,并更新项目中的转换后的proto文件,增加PB数据类型转换的繁琐程度,后续在项目的迭代中若新增接口,proto文件的数量也会相应的增加,每新增一个接口,就需要对应的新增一个文件,使得app包体积增大,维护繁琐的问题。
发明内容
本发明的主要目的在于解决PB数据的数据类型转换较为繁琐的问题。
本发明第一方面提供了一种数据类型转换方法,包括:获取目标数据对象对应的第一存储数据表,并遍历所述第一存储数据表,得到多个键值对;分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息,并根据所述键字段,对各所述键值对中的值字段进行转化,得到各所述键值对对应的第一PB数据信息;组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集。
可选的,在本发明第一方面的第一种实现方式中,所述分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息包括:分别对各所述键值对中的键字段进行哈希编码,得到多个预置位数的PB字段;对各所述PB字段按哈希编码的顺序进行组合,得到各所述键值对对应的第一字段信息。
可选的,在本发明第一方面的第二种实现方式中,所述组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集包括:提取所述第一PB字段信息中的各个PB字段,以及提取所述第一PB数据信息中的各个PB数据;按照提取的顺序依次将所述各个PB字段和所述各个PB数据交叉添加到预置进制输出流中,得到所述目标数据对象对应的第一PB数据集。
可选的,在本发明第一方面的第三种实现方式中,所述按照提取的顺序依次将所述各个PB字段和所述各个PB数据交叉添加到预置进制输出流中,得到所述目标数据对象对应的第一PB数据集包括:按照提取的顺序依次确定第n个PB字段的添加位置为2n-1,以及确定第m个PB数据的添加位置为2m,其中,n、m为正整数;根据所述2n-1和所述2m的添加位置,依次将对应的PB字段和PB数据添加至预置进制输出流中,得到所述目标数据对象对应的第一PB数据集。
可选的,在本发明第一方面的第四种实现方式中,所述数据类型转换方法还包括:获取第二PB数据集对应的第二存储数据表,并解析所述第二存储数据表,得到第二PB字段信息和所述第二PB字段信息对应的第二PB数据信息;从预设的对照表中查找与所述第二PB字段信息相对应的属性信息,并根据所述属性信息,将所述第二PB数据信息转换为对应属性类型的属性值;基于所述属性值和所述属性信息生成第二PB数据对应的数据对象。
可选的,在本发明第一方面的第五种实现方式中,在所述获取第二PB数据集对应的第二存储数据表之前,还包括:获取多个数据对象的属性列表,并遍历所述属性列表,得到所述多个数据对象对应的属性信息;对所述属性信息进行编码,得到第三PB字段信息,并将所述第三PB字段信息和所述多个数据对象对应的属性信息存储为对照表。
本发明第二方面提供了一种数据类型转换装置,包括:遍历模块,用于获取目标数据对象对应的第一存储数据表,并遍历所述第一存储数据表,得到多个键值对;转化模块,用于分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息,并根据所述键字段,对各所述键值对中的值字段进行转化,得到各所述键值对对应的第一PB数据信息;组合模块,用于组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集。
可选的,在本发明第二方面的第一种实现方式中,所述转化模块包括:编码单元,用于分别对各所述键值对中的键字段进行哈希编码,得到多个预置位数的PB字段;组合单元,用于对各所述PB字段按哈希编码的顺序进行组合,得到各所述键值对对应的第一字段信息。
可选的,在本发明第二方面的第二种实现方式中,所述组合模块包括:提取单元,用于提取所述第一PB字段信息中的各个PB字段,以及提取所述第一PB数据信息中的各个PB数据;添加单元,用于按照提取的顺序依次将所述各个PB字段和所述各个PB数据交叉添加到预置进制输出流中,得到所述目标数据对象对应的第一PB数据集。
可选的,在本发明第二方面的第三种实现方式中,所述添加单元还用于:按照提取的顺序依次确定第n个PB字段的添加位置为2n-1,以及确定第m个PB数据的添加位置为2m,其中,n、m为正整数;根据所述2n-1和所述2m的添加位置,依次将对应的PB字段和PB数据添加至预置进制输出流中,得到所述目标数据对象对应的第一PB数据集。
可选的,在本发明第二方面的第四种实现方式中,所述数据类型转换装置还包括反序列化模块,用于:获取第二PB数据集对应的第二存储数据表,并解析所述第二存储数据表,得到第二PB字段信息和所述第二PB字段信息对应的第二PB数据信息;从预设的对照表中查找与所述第二PB字段信息相对应的属性信息,并根据所述属性信息,将所述第二PB数据信息转换为对应属性类型的属性值;基于所述属性值和所述属性信息生成第二PB数据对应的数据对象。
可选的,在本发明第二方面的第五种实现方式中,所述数据类型转换装置还包括属性对照模块,用于:获取多个数据对象的属性列表,并遍历所述属性列表,得到所述多个数据对象对应的属性信息;对所述属性信息进行编码,得到第三PB字段信息,并将所述第三PB字段信息和所述多个数据对象对应的属性信息存储为对照表。
本发明第三方面提供了一种数据类型转换设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据类型转换设备执行上述的数据类型转换方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的数据类型转换方法。
本发明提供的技术方案中,PB数据的数据类型转换,因为不再依赖proto文件,直接将目标数据对象对应的第一存储数据表按照键字段和值字段转化为对应的PB字段信息和PB数据信息,以此构建PB数据集,省去了把原始proto文件转化成Objective-C语言文件的工作,不需要维护转化使用的脚本,大大节省了人力、时间等的开发成本。同时项目编译需要编译的文件数变少可以加快项目的编译速度,提高了开发效率,并且编译出来的APP包体积也会减小。
附图说明
图1为本发明实施例中数据类型转换方法的第一个实施例示意图;
图2为本发明实施例中数据类型转换方法的第二个实施例示意图;
图3为本发明实施例中数据类型转换方法的第三个实施例示意图;
图4为本发明实施例中数据类型转换装置的一个实施例示意图;
图5为本发明实施例中数据类型转换装置的另一个实施例示意图;
图6为本发明实施例中数据类型转换设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种数据类型转换方法、装置、设备及存储介质,获取目标数据对象对应的第一存储数据表,并遍历第一存储数据表,得到多个键值对;分别对各键值对中的键字段进行编码,得到各键值对对应的第一PB字段信息,并根据键字段,对各键值对中的值字段进行转化,得到各键值对对应的第一PB数据信息;组合第一PB字段信息和第一PB数据信息,得到目标数据对象对应的第一PB数据集。本发明实现了PB数据自动化转换,减少了编译文件数量,降低了PB数据的维护繁杂程度。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中数据类型转换方法的第一个实施例包括:
101、获取目标数据对象对应的第一存储数据表,并遍历所述第一存储数据表,得到多个键值对;
可以理解的是,本发明的执行主体可以为数据类型转换装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中,此处目标数据对象可以为动态OC(Objective C)对象,对PB数据进行序列化,即将目标数据对象的数据转换成PB数据,比如Proto格式的数据流,OC对象的动态性使得App可在运行时新增目标数据对象,获取目标数据对象包含的属性名和属性的类型,以实现Proto格式数据的自解析。
本实施例中,目标数据对象对应的转换数据以存储数据表进行保存,比如数据字典(Data dictionary),具体可以为Params dictionary,其保存形式为键值对(key-value),此处遍历存储数据表中的每一个键值对并进行读取,即可得到目标数据对象对应的转换数据的键值对,具体遍历方式可以采用for key in dictobj的方法。
102、分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息,并根据所述键字段,对各所述键值对中的值字段进行转化,得到各所述键值对对应的第一PB数据信息;
本实施例中,键值对中包含有键字段(key)和值字段(value),其中键字段包含有值字段的属性名和属性类型,根据键字段即可确定对应值字段的属性名和属性类型,此处先对键字段进行编码,将键字段转换成适用于PB数据检索的字段内容,第一PB字段信息,具体可以为filed_num。然后根据键字段,来确定对应的值字段的属性类型,比如整数类型、布尔类型、字符串类型、进制数据类型、数字类型、图片类型、浮点类型、日期类型等,根据确定的值字段的数据类型,将每个值字段进行转化,得到第一PB数据信息。
103、组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集。
本实施例中,第一PB字段信息中包含由多个键字段编码得到的PB字段,第一PB数据信息中包含由多个值字段转化得到的PB数据,根据键值对(key-value)可以得到对应的多对PB字段-PB数据,每个PB字段(pbfield_num)根据key-value对应一个PB数据(pbdata),来进行组合,得到第一PB数据集,比如{pbfield_num1,pbdata1;pbfield_num2,pbdata2;……;pbfield_numk,pbdatak}。
本发明实施例中,PB数据的数据类型转换,因为不再依赖proto文件,直接将目标数据对象对应的第一存储数据表按照键字段和值字段转化为对应的PB字段信息和PB数据信息,以此构建PB数据集,省去了把原始proto文件转化成Objective-C语言文件的工作,不需要维护转化使用的脚本,大大节省了人力、时间等的开发成本。同时项目编译需要编译的文件数变少可以加快项目的编译速度,提高了开发效率,并且编译出来的APP包体积也会减小。
请参阅图2,本发明实施例中数据类型转换方法的第二个实施例包括:
201、获取目标数据对象对应的第一存储数据表,并遍历所述第一存储数据表,得到多个键值对;
202、分别对各所述键值对中的键字段进行哈希编码,得到多个预置位数的PB字段;
203、对各所述PB字段按哈希编码的顺序进行组合,得到各所述键值对对应的第一字段信息,并根据所述键字段,对各所述键值对中的值字段进行转化,得到各所述键值对对应的第一PB数据信息;
本实施例中,根据键字段以及表现的值字段的数据类型进行哈希编码,生成预置位数的PB字段,比如将键字段全部转化为32位的PB字段pbfield_num,作为PB数据的索引,然后再将每个PB字段pbfield_num顺序组合起来,比如{pbfield_num1;pbfield_num2;……;pbfield_numk},即可得到各个键值对应的第一字段信息,作为对应PB数据信息的索引。
204、提取所述第一PB字段信息中的各个PB字段,以及提取所述第一PB数据信息中的各个PB数据;
205、按照提取的顺序依次将所述各个PB字段和所述各个PB数据交叉添加到预置进制输出流中,得到所述目标数据对象对应的第一PB数据集。
本实施例中,提取出第一PB字段信息中的每个PB字段{pbfield_num1;pbfield_num2;……;pbfield_numk},以及提取出第一PB数据信息中的每个PB数据{pbdata1;pbdata2;……;pbdatak},按照对应key-value的方式,依次序交叉添加到预置进制输出流中,比如二进制输出流,将PB数据集的数据进制进行统一,即可得到第一PB数据集{pbfield_num1,pbdata1;pbfield_num2,pbdata2;……;pbfield_numk,pbdatak}。具体添加方式如下所示:
1)按照提取的顺序依次确定第n个PB字段的添加位置为2n-1,以及确定第m个PB数据的添加位置为2m,其中,所述n、m为正整数;
2)根据2n-1和2m的添加位置,依次将对应的PB字段和PB数据添加至预置进制输出流中,得到目标数据对象对应的第一PB数据集。
本发明实施例中,在对PB数据类型进行转换时,可以直接通过待转换的目标数据对象对应的第一存储数据表,对键值对进行哈希编码,得到PB数据集对应二进制数据流的pbfield_nm和pbdata,而不需要对proto文件进行手动的转换,降低PB数据类型转换的繁琐程度,提升数据类型转换效率。
请参阅图3,本发明实施例中数据类型转换方法的第三个实施例包括:
301、获取目标数据对象对应的第一存储数据表,并遍历所述第一存储数据表,得到多个键值对;
302、分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息,并根据所述键字段,对各所述键值对中的值字段进行转化,得到各所述键值对对应的第一PB数据信息;
303、组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集;
304、获取多个数据对象的属性列表,并遍历所述属性列表,得到所述多个数据对象对应的属性信息;
305、对所述属性信息进行编码,得到第三PB字段信息,并将所述第三PB字段信息和所述多个数据对象对应的属性信息存储为对照表;
本实施例中,通过动态获取目标数据对象,比如类对象的属性列表,然后遍历属性列表,得到目标数据对象中每条数据的属性信息,接着对每个属性信息中的属性名和属性类型进行编码比如哈希编码,以生成第三PB字段信息,还是以pbfield_num为例,把pbfield_num作为键字段key,编码之前的属性信息作为值字段value缓存在对照表中,以供后续在对PB数据转化为数据对象时进行查询,其中,对照表可以为数据字典。
306、获取第二PB数据集对应的第二存储数据表,并解析所述第二存储数据表,得到第二PB字段信息和所述第二PB字段信息对应的第二PB数据信息;
307、从预设的对照表中查找与所述第二PB字段信息相对应的属性信息,并根据所述属性信息,将所述第二PB数据信息转换为对应属性类型的属性值;
308、基于所述属性值和所述属性信息生成第二PB数据对应的数据对象。
本实施例中,此处对PB数据进行反序列化,即将PB格式的数据,比如Proto格式的数据流转换成数据对象比如OC对象。然后根据第二PB数据集Proto数据流的格式,读取出预置位数比如32位数据的第二PB字段信息作为pbfield_num,以及读取出第二PB数据信息pbdata,其中,将这个pbfield_num作为键字段key可以在先前构建的对照表中找出对应的属性信息value;接着根据属性信息中的属性类型,将从Proto数据流中读取出的第二PB数据集转化为相对应数据类型的属性值即可,具体的,例如属性类型为long,则转化为64位的属性值,如果为字符类型,则转化为对应String的属性值,如果为字节类型,则转化为对应Bytes的属性值,以此类推。
本发明实施例中,还提供了将PB数据转换为对应的数据对象,首先通过对不同类型的数据对象的属性列表,构建属性信息和pbfield_num的键值对,后续在对PB数据进行转换时,可以直接根据该第二PB数据集中包含的pbfiel_num来检索对应的属性信息,并通过属性信息和第二PB数据集中的属性值,生成第二PB数据集对应的数据对象,实现PB数据动态生成数据对,实现PB数据类型的转换。
上面对本发明实施例中数据类型转换方法进行了描述,下面对本发明实施例中数据类型转换装置进行描述,请参阅图4,本发明实施例中数据类型转换装置一个实施例包括:
遍历模块401,用于获取目标数据对象对应的第一存储数据表,并遍历所述第一存储数据表,得到多个键值对;
转化模块402,用于分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息,并根据所述键字段,对各所述键值对中的值字段进行转化,得到各所述键值对对应的第一PB数据信息;
组合模块403,用于组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集。
本发明实施例中,PB数据的数据类型转换,因为不再依赖proto文件,直接将目标数据对象对应的第一存储数据表按照键字段和值字段转化为对应的PB字段信息和PB数据信息,以此构建PB数据集,省去了把原始proto文件转化成Objective-C语言文件的工作,不需要维护转化使用的脚本,大大节省了人力、时间等的开发成本。同时项目编译需要编译的文件数变少可以加快项目的编译速度,提高了开发效率,并且编译出来的APP包体积也会减小。
请参阅图5,本发明实施例中数据类型转换装置的另一个实施例包括:
遍历模块401,用于获取目标数据对象对应的第一存储数据表,并遍历所述第一存储数据表,得到多个键值对;
转化模块402,用于分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息,并根据所述键字段,对各所述键值对中的值字段进行转化,得到各所述键值对对应的第一PB数据信息;
组合模块403,用于组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集。
具体的,所述转化模块402包括:
编码单元4021,用于分别对各所述键值对中的键字段进行哈希编码,得到多个预置位数的PB字段;
组合单元4022,用于对各所述PB字段按哈希编码的顺序进行组合,得到各所述键值对对应的第一字段信息。
具体的,所述组合模块403包括:
提取单元4031,用于提取所述第一PB字段信息中的各个PB字段,以及提取所述第一PB数据信息中的各个PB数据;
添加单元4032,用于按照提取的顺序依次将所述各个PB字段和所述各个PB数据交叉添加到预置进制输出流中,得到所述目标数据对象对应的第一PB数据集。
具体的,所述添加单元4032还用于:
按照提取的顺序依次确定第n个PB字段的添加位置为2n-1,以及确定第m个PB数据的添加位置为2m,其中,n、m为正整数;
根据所述2n-1和所述2m的添加位置,依次将对应的PB字段和PB数据添加至预置进制输出流中,得到所述目标数据对象对应的第一PB数据集。
具体的,所述数据类型转换装置还包括反序列化模块404,用于:
获取第二PB数据集对应的第二存储数据表,并解析所述第二存储数据表,得到第二PB字段信息和所述第二PB字段信息对应的第二PB数据信息;
从预设的对照表中查找与所述第二PB字段信息相对应的属性信息,并根据所述属性信息,将所述第二PB数据信息转换为对应属性类型的属性值;
基于所述属性值和所述属性信息生成第二PB数据对应的数据对象。
具体的,所述数据类型转换装置还包括属性对照模块405,用于:
获取多个数据对象的属性列表,并遍历所述属性列表,得到所述多个数据对象对应的属性信息;
对所述属性信息进行编码,得到第三PB字段信息,并将所述第三PB字段信息和所述多个数据对象对应的属性信息存储为对照表。
本发明实施例中,在对PB数据类型进行转换时,可以直接通过待转换的目标数据对象对应的第一存储数据表,对键值对进行哈希编码,得到PB数据集对应二进制数据流的pbfield_nm和pbdata,而不需要对proto文件进行手动的转换,降低PB数据类型转换的繁琐程度,提升数据类型转换效率;还提供了将PB数据转换为对应的数据对象,首先通过对不同类型的数据对象的属性列表,构建属性信息和pbfield_num的键值对,后续在对PB数据进行转换时,可以直接根据该第二PB数据集中包含的pbfiel_num来检索对应的属性信息,并通过属性信息和第二PB数据集中的属性值,生成第二PB数据集对应的数据对象,实现PB数据动态生成数据对,实现PB数据类型的转换。
上面图4和图5从模块化功能实体的角度对本发明实施例中的数据类型转换装置进行详细描述,下面从硬件处理的角度对本发明实施例中数据类型转换设备进行详细描述。
图6是本发明实施例提供的一种数据类型转换设备的结构示意图,该数据类型转换设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据类型转换设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在数据类型转换设备600上执行存储介质630中的一系列指令操作。
数据类型转换设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作***631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的数据类型转换设备结构并不构成对数据类型转换设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种数据类型转换设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述数据类型转换方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述数据类型转换方法的步骤。
所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据类型转换方法,其特征在于,所述数据类型转换方法包括:
获取目标数据对象对应的第一存储数据表,并遍历所述第一存储数据表,得到多个键值对;
分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息,并根据所述键字段,对各所述键值对中的值字段进行转化,得到各所述键值对对应的第一PB数据信息;
组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集。
2.根据权利要求1所述的数据类型转换方法,其特征在于,所述分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息包括:
分别对各所述键值对中的键字段进行哈希编码,得到多个预置位数的PB字段;
对各所述PB字段按哈希编码的顺序进行组合,得到各所述键值对对应的第一字段信息。
3.根据权利要求1所述的数据类型转换方法,其特征在于,所述组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集包括:
提取所述第一PB字段信息中的各个PB字段,以及提取所述第一PB数据信息中的各个PB数据;
按照提取的顺序依次将所述各个PB字段和所述各个PB数据交叉添加到预置进制输出流中,得到所述目标数据对象对应的第一PB数据集。
4.根据权利要求3所述的数据类型转换方法,其特征在于,所述按照提取的顺序依次将所述各个PB字段和所述各个PB数据交叉添加到预置进制输出流中,得到所述目标数据对象对应的第一PB数据集包括:
按照提取的顺序依次确定第n个PB字段的添加位置为2n-1,以及确定第m个PB数据的添加位置为2m,其中,n、m为正整数;
根据所述2n-1和所述2m的添加位置,依次将对应的PB字段和PB数据添加至预置进制输出流中,得到所述目标数据对象对应的第一PB数据集。
5.根据权利要求1所述的数据类型转换方法,其特征在于,所述数据类型转换方法还包括:
获取第二PB数据集对应的第二存储数据表,并解析所述第二存储数据表,得到第二PB字段信息和所述第二PB字段信息对应的第二PB数据信息;
从预设的对照表中查找与所述第二PB字段信息相对应的属性信息,并根据所述属性信息,将所述第二PB数据信息转换为对应属性类型的属性值;
基于所述属性值和所述属性信息生成第二PB数据对应的数据对象。
6.根据权利要求5所述的数据类型转换方法,其特征在于,在所述获取第二PB数据集对应的第二存储数据表之前,还包括:
获取多个数据对象的属性列表,并遍历所述属性列表,得到所述多个数据对象对应的属性信息;
对所述属性信息进行编码,得到第三PB字段信息,并将所述第三PB字段信息和所述多个数据对象对应的属性信息存储为对照表。
7.一种数据类型转换装置,其特征在于,所述数据类型转换装置包括:
遍历模块,用于获取目标数据对象对应的第一存储数据表,并遍历所述第一存储数据表,得到多个键值对;
转化模块,用于分别对各所述键值对中的键字段进行编码,得到各所述键值对对应的第一PB字段信息,并根据所述键字段,对各所述键值对中的值字段进行转化,得到各所述键值对对应的第一PB数据信息;
组合模块,用于组合所述第一PB字段信息和所述第一PB数据信息,得到所述目标数据对象对应的第一PB数据集。
8.根据权利要求7所述的数据类型转换装置,其特征在于,所述数据类型转换装置还包括反序列化模块,用于:
获取第二PB数据集对应的第二存储数据表,并解析所述第二存储数据表,得到第二PB字段信息和所述第二PB字段信息对应的第二PB数据信息;
从预设的对照表中查找与所述第二PB字段信息相对应的属性信息,并根据所述属性信息,将所述第二PB数据信息转换为对应属性类型的属性值;
基于所述属性值和所述属性信息生成第二PB数据对应的数据对象。
9.一种数据类型转换设备,其特征在于,所述数据类型转换设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据类型转换设备执行如权利要求1-6中任意一项所述的数据类型转换方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-6中任意一项所述数据类型转换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210032397.7A CN114385186A (zh) | 2022-01-12 | 2022-01-12 | 数据类型转换方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210032397.7A CN114385186A (zh) | 2022-01-12 | 2022-01-12 | 数据类型转换方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114385186A true CN114385186A (zh) | 2022-04-22 |
Family
ID=81202073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210032397.7A Pending CN114385186A (zh) | 2022-01-12 | 2022-01-12 | 数据类型转换方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114385186A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230934A (zh) * | 2020-10-27 | 2021-01-15 | 北京人大金仓信息技术股份有限公司 | 一种转换代码语言的方法及装置 |
CN116028434A (zh) * | 2023-03-23 | 2023-04-28 | 中科星图测控技术股份有限公司 | 一种描述空间分析场景的文件编码方法和*** |
-
2022
- 2022-01-12 CN CN202210032397.7A patent/CN114385186A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230934A (zh) * | 2020-10-27 | 2021-01-15 | 北京人大金仓信息技术股份有限公司 | 一种转换代码语言的方法及装置 |
CN112230934B (zh) * | 2020-10-27 | 2023-08-29 | 北京人大金仓信息技术股份有限公司 | 一种转换代码语言的方法及装置 |
CN116028434A (zh) * | 2023-03-23 | 2023-04-28 | 中科星图测控技术股份有限公司 | 一种描述空间分析场景的文件编码方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11146286B2 (en) | Compression of JavaScript object notation data using structure information | |
Head et al. | A benchmark suite for soap-based communication in grid web services | |
CN114385186A (zh) | 数据类型转换方法、装置、设备及存储介质 | |
JP6427592B2 (ja) | データ型に関連するデータプロファイリング操作の管理 | |
CN110597500A (zh) | 消息结构的序列化和反序列化方法及装置 | |
US20070234199A1 (en) | Apparatus and method for compact representation of XML documents | |
CN112667720A (zh) | 接口数据模型的转化方法、装置、设备及存储介质 | |
US20190213007A1 (en) | Method and device for executing the distributed computation task | |
CN112379917A (zh) | 浏览器兼容性提升方法、装置、设备及存储介质 | |
CN111443901A (zh) | 一种基于Java反射的业务扩展方法及装置 | |
Viotti et al. | A survey of JSON-compatible binary serialization specifications | |
CN110941655B (zh) | 一种数据格式转换方法及装置 | |
Viotti et al. | A Benchmark of JSON-compatible Binary Serialization Specifications | |
De Luca et al. | Distributed genomic compression in MapReduce paradigm | |
WO2021259290A1 (zh) | 存储过程转换方法、装置、设备和存储介质 | |
WO2022099459A1 (zh) | 一种WebAssembly加载方法、装置及存储介质 | |
CN115202663A (zh) | 一种数据处理方法、装置和存储介质 | |
CN112286557A (zh) | 一种非覆盖式更新代码内容的方法和装置 | |
US20100293283A1 (en) | On-demand marshalling and de-marshalling of network messages | |
WO2020222855A1 (en) | System and methods for loading objects from hash chains | |
CN109992293B (zh) | Android***组件版本信息的组装方法及装置 | |
Zhang et al. | Optimizing random access to hierarchically-compressed data on GPU | |
CN114063943A (zh) | 数据传输***、方法、装置、介质和设备 | |
Ching et al. | RcppMsgPack: MessagePack Headers and Interface Functions for R. | |
Liao et al. | Bullion: A Column Store for Machine Learning |
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 |