文献发布时间:2023-06-19 10:27:30
技术领域
本发明涉及数据采集技术领域,尤其涉及一种多数据打包方法、装置、电子设备及计算机可读存储介质。
背景技术
随着大数据时代的发展,网络中存在着各种各样的数据,人们常常需要在网络中选择并下载到自己需要的数据,并在下载完成后,将多个数据打包成一份数据包,以实现对数据的一次性获取。
目前对多数据进行打包的方式多为:利用数据采集模板按顺序对多份数据进行采集,将采集后的数据发送至预设的数据打包平台进行数据打包,但由于很多场景下人们需要的数据的数据量十分庞大,存储于网络中不同的存储区域中,因此顺序采集的方式会导致数据打包的整体效率不高,不能满足用户对时效性的需求,且对待打包数据进行采集时不能保证采集到的数据的完整性,导致数据打包的完整度不高。
发明内容
本发明提供一种多数据打包方法、装置及计算机可读存储介质,其主要目的在于解决多数据打包时的效率及完整度不高的问题。
为实现上述目的,本发明提供的一种多数据打包方法,包括:
获取数据打包请求,提取所述数据打包请其中的目标数据字段;
对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段;
将所述多个数据信息字段序列化为数据信息列表;
利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;
将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;
若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。
可选地,所述提取所述数据打包请其中的目标数据字段,包括:
遍历所述数据打包请求并确定所述数据打包请其中字段分隔符的位置;
根据所述字段分隔符的位置对所述数据打包请求进行字段拆分,得到多个拆分字段;
按照拆分顺序将所述多个拆分字段进行序号标注;
选取预设序号的拆分字段为所述目标数据字段。
可选地,所述对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段,包括:
遍历所述目标数据字段并确定所述目标数据字段中的字段头和字段体;
对所述字段体进行反射操作,得到字段方法;
根据所述字段方法构建信息提取语句;
执行所述信息提取语句提取所述目标数据字段中的多个数据信息字段;
对所述字段头进行ip地址解析,得到所述多个数据信息字段分别对应的ip字段。
可选地,所述将所述多个数据信息字段序列化为数据信息列表,包括:
获取多个序列化处理函数;
将所述多个序列化处理函数线性组合为构造函数;
利用所述构造函数构造序列化接口;
利用所述序列化接口对所述多个数据信息字段进行序列化处理,得到数据信息列表。
可选地,所述利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据,包括:
对所述多个数据信息字段分别对应的ip字段进行逻辑测试,得到多个真实ip地址;
将所述多个真实ip地址分别编译为多个数据调用语句;
同时执行所述多个数据调用语句,得到多个待打包数据。
可选地,所述对所述多个数据信息字段分别对应的ip字段进行逻辑测试,得到多个真实ip地址,包括:
将所述ip字段进行逻辑测试,得到逻辑测试值;
当所述逻辑测试值与预设逻辑阈值相同时,确定所述ip字段经过转发,对所述ip字段进行源地址追踪,得到真实ip地址;
当所述逻辑测试值与预设逻辑阈值不同时,确定所述ip字段未经过转发,确定所述ip字段为真实ip地址。
可选地,所述对所述多个待打包数据进行数据打包,得到数据包,包括:
对所述多个待打包数据进行数据格式标准化,得到标准化数据;
对所述标准化数据进行数据打包,得到数据包。
为了解决上述问题,本发明还提供一种多数据打包装置,所述装置包括:
字段提取模块,用于获取数据打包请求,提取所述数据打包请其中的目标数据字段;
字段解析模块,用于对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段;
序列化模块,用于将所述多个数据信息字段序列化为数据信息列表;
数据获取模块,用于利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;
完整性对比模块,用于将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;
数据打包模块,用于若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现上述所述的多数据打包方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的多数据打包方法。
本发明实施例通过提取并解析数据打包请其中的目标数据字段,以获得多个数据信息字段和数据信息字段对应的ip字段,可实现通过数据打包请求确定多个待打包数据,有利于提高对数据进行打包的完整性;利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,避免了顺序地对多个待打包数据进行逐个获取,提高了数据打包的效率;将多个数据信息字段序列化为数据信息列表,将多个待打包数据与所述数据信息列表进行完整性对比,可通过对比确定获取到的待打包数据的完整性,防止打包时数据的缺漏。因此本发明提出的多数据打包方法、装置、电子设备及计算机可读存储介质,可以解决多数据打包时的效率及完整度不高的问题。
附图说明
图1为本发明一实施例提供的多数据打包方法的流程示意图;
图2为本发明一实施例提供的多数据打包装置的功能模块图;
图3为本发明一实施例提供的实现所述多数据打包方法的电子设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供一种多数据打包方法。所述多数据打包方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述多数据打包方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
参照图1所示,为本发明一实施例提供的多数据打包方法的流程示意图。在本实施例中,所述多数据打包方法包括:
S1、获取数据打包请求,提取所述数据打包请其中的目标数据字段。
本发明实施例中,所述数据打包请求为任何系统中用户发起的用于数据打包的请求命令,例如,数据管理系统中用户发起的对某部分或全部数据进行打包的请求命令。
详细地,本发明实施例使用ASM增强字节码过滤器监测获取网络中的数据打包请求,所述ASM增强字节码过滤器是一款基于java字节码层面的代码分析工具,利用ASM增强字节码过滤器对数据打包请求进行监测,可提高数据打包请求监测的成功率。
本发明实施例中,所述提取所述数据打包请其中的目标数据字段,包括:
例如,数据打包请求为“qweS2、对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段。本发明实施例中,所述目标数据字段包括一个或多个数据信息字段,不同数据信息字段分别对应着不同的需要进行打包的数据,例如,存在目标数据字段包括数据信息字段1、数据信息字段2和数据信息字段3,其中,数据信息字段1对应的需要进行打包的数据为数据1,数据信息字段2对应的需要进行打包的数据为数据2,数据信息字段3对应的需要进行打包的数据为数据3。详细地,所述目标数据字段中包含数据信息字段和所述数据信息字段对应的ip字段,其中,所述数据信息字段包括数据名称,数据类型,数据大小等信息,所述ip字段为所述数据信息字段对应的数据的存储地址,具体地,所述数据信息字段对应的数据的存储地址可以为一个,也可以为多个。本发明实施例中,所述对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段,包括:遍历所述目标数据字段并确定所述目标数据字段中的字段头和字段体;对所述字段体进行反射操作,得到字段方法;根据所述字段方法构建信息提取语句;执行所述信息提取语句提取所述目标数据字段中的多个数据信息字段;对所述字段头进行ip地址解析,得到所述多个数据信息字段分别对应的ip字段。本发明实施例中,可利用java中的反射技术对所述字段体进行反射操作,得到字段方法,所述反射技术是java中根据字符串获取数据方法的方式,利用反射技术对所述字段体进行反射操作,可提高获取字段方法的效率。具体地,所述对所述字段体进行反射操作,得到字段方法,例如,利用如下java语句对所述字段体进行反射操作:String name="Hualing";Class c1=name.getClass();System.out.println(c1.getName())。其中,"Hualing"为所述字段体。当对所述字段体进行反射操作后,即可得到字段方法。具体地,根据所述字段方法构建请求头提取语句的具体方法包括:构建如下信息提取语句:String name=field.getName()。进一步地,本发明实施例中可利用解析器解析对所述字段头进行ip地址解析,得到所述多个数据信息字段分别对应的ip字段,所述解析器包括CarakanC/C++,SquirrelFishC++和SquirrelFishExtremeC++等。S3、将所述多个数据信息字段序列化为数据信息列表。本发明实施例中,可通过构造序列化接口,利用所述序列化接口将所述多个数据信息字段转化为数据表形式并存入预设数据库中得到数据信息列表。详细地,所述将所述多个数据信息字段序列化为数据信息列表,包括:获取多个序列化处理函数;将所述多个序列化处理函数线性组合为构造函数;利用所述构造函数构造序列化接口;利用所述序列化接口对所述多个数据信息字段进行序列化处理,得到数据信息列表。本发明实施例中,所述序列化处理函数包括但不限于writeExternal()函数和randomExternal()函数。详细地,所述writeExternal()函数和randomExternal()函数是用于将多个数据信息字段进行随机排序的java函数。进一步的,所述线性组合包括但不限于相加、相减,本发明实施例将所述多个序列化处理函数线性组合为构造函数,进而利用java中的Externalible方法将所述构造函数构造为序列化接口。所述Externalible方法实现对java函数的聚合,得到序列化接口。本发明实施例中,通过序列化接口使得不同的java函数可以同时组合使用,可以实现一个接口同时使用多个函数,提高对所述多个数据信息序列化处理的效率。本发明实施例中,还包括将所述多个数据信息序列化得到的数据信息列表存入预先构建的数据库中,以防止所述多个数据信息的丢失,所述数据库包括但不限于java数据库,Oracle数据库。S4、利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。本发明实施例中,利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据,是指利用多线程同时对多个数据信息字段分别对应的ip字段进行数据获取,所述多个待打包数据可预先存储于区块链节点中,利用区块链节点对数据的高吞天性,可提高获取所述多个待打包数据的效率。详细地,所述利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据,包括:对所述多个数据信息字段分别对应的ip字段进行逻辑测试,得到多个真实ip地址;将所述多个真实ip地址分别编译为多个数据调用语句;同时执行所述多个数据调用语句,得到多个待打包数据。本发明实施例中,所述对所述多个数据信息字段分别对应的ip字段进行逻辑测试,得到多个真实ip地址,包括:将所述ip字段进行逻辑测试,得到逻辑测试值;当所述逻辑测试值与预设逻辑阈值相同时,确定所述ip字段经过转发,对所述ip字段进行源地址追踪,得到真实ip地址;当所述逻辑测试值与预设逻辑阈值不同时,确定所述ip字段未经过转发,确定所述ip字段为真实ip地址。详细地,由于数据打包请求在被拦截之前可能经历过多个计算机的转发,进而导致数据打包请求的ip字段发生了改变,本发明实施例根据ip字段确定真实ip地址,有利于提高根据ip地址获取待打包数据的成功率。具体地,所述对所述ip字段进行源地址追踪,得到真实ip地址,包括:提取所述ip字段中的转发路径参数;对所述转发路径参数进行反解析,得到转发路径;根据所述转发路径确定所述数据打包请求的源发地址;从所述源发地址中提取所述真实ip地址。详细地,本发明实施例中,可利用具有参数抓取功能的python语句从所述ip字段中提取出所述转发路径参数,所述转发路径参数是数据打包请求在被转发的过程中计算机生成并标记于数据打包请求内的特定字段。具体地,对转发路径参数进行反解析,得到转发路径,其中,反解析是解析的逆过程,按照解析器对用户请求进行解析的反过程执行,即可实现对转发路径参数进行反解析,得到所述转发路径。进一步地,本发明实施例根据转发路径确定数据打包请求的源发地址,即确定转发路径最前端的网络地址为源发地址,例如,转发路径为www.xxxx/yyyy/uuuu/iiii.com,则确定转发路径最前端的网络地址(xxxx)为源发地址。本发明实施例利用预设的编译器将多个真实ip地址分别编译为多个数据调用语句,并同时执行多个数据调用语句得到多个待打包数据,其中,所述编译器包括但不限于Visual Studio编译器、Dev C++编译器和Visual C++编译器。本发明实施例利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,可避免逐一地根据ip字段获取待打包数据,有利于提高获取待打包数据的效率。S5、将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。本发明实施例中,所述将所述多个待打包数据与所述数据信息列表进行完整性对比,例如,数据信息列表中包括数据1的数据信息、数据2的数据信息、数据3的数据信息、数据4的数据信息和数据5的数据信息,获取到的多个待打包数据中包括:数据1、数据3和数据5,将获取到的多个待打包数据和数据信息列表进行完整性对比,可发现未获取到数据信息列表中数据2的数据信息对应的待打包数据和数据4的数据信息对应的待打包数据,则确定所述完整性对比的结果为不完整。进一步地,所述利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据,包括:获取自定义处理函数;利用所述自定义处理函数构建规则表达式;利用所述规则表达式定时采集所述多个待打包数据。具体地,所述自定义处理函数包括但不限于以下一项或多项:IF函数,用于判断采集条件;TO_DATE函数,用于表示日期与时间;U_TIME函数,用于自定义采集的时间;U_DIV函数,用于检测待打包数据的存储环境。详细地,所述利用所述自定义处理函数构建规则表达式,包括:获取与预设采集时间对应的自定义处理函数;检测所述多个待打包数据的存储环境的存储环境;通过与所述存储环境对应的编译器对所述自定义处理函数进行编译,得到所述规则表达式。本发明实施例中,通过构建自定义处理函数可以实现间隔预设采集时间对所述多个待打包数据进行采集,从而避免频繁或持续采集占用大量系统资源,造成采集效率低下的问题。S6、若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。本发明实施例中,弱所述完整性对比的结果为完整,则说明已经对所述数据信息列表中包含的所有数据,对所述多个待打包数据进行数据打包,得到数据包。详细地,所述对所述多个待打包数据进行数据打包,得到数据包,包括:对所述多个待打包数据进行数据格式标准化,得到标准化数据;对所述标准化数据进行数据打包,得到数据包。本发明实施例中,所述对所述多个待打包数据进行数据格式标准化,得到标准化数据,包括:利用预设变量算法分别计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量;将所述多个待打包数据的数据格式中增加所述格式变量,得到转化为目标格式的标准化数据。优选地,所述利用预设变量算法分别计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量,包括:利用如下变量算法计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量α 其中,α为所述目标格式,δ为所述多个待打包数据中任一待打包数据的数据格式。进一步地,本发明实施例利用OEM(OEMDataPack,OEM数据打包)工具对所述标准化数据进行数据打包,得到数据包,所述OEM工具是一种轻量数据打包工具,利用OEM工具对所述标准数据进行数据打包,可提高对所述标准数据进行数据打包的效率。本发明实施例通过提取并解析数据打包请其中的目标数据字段,以获得多个数据信息字段和数据信息字段对应的ip字段,可实现通过数据打包请求确定多个待打包数据,有利于提高对数据进行打包的完整性;利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,避免了顺序地对多个待打包数据进行逐个获取,提高了数据打包的效率;将多个数据信息字段序列化为数据信息列表,将多个待打包数据与所述数据信息列表进行完整性对比,可通过对比确定获取到的待打包数据的完整性,防止打包时数据的缺漏。因此本发明提出的多数据打包方法,可以解决多数据打包时的效率及完整度不高的问题。如图2所示,是本发明一实施例提供的多数据打包装置的功能模块图。本发明所述多数据打包装置100可以安装于电子设备中。根据实现的功能,所述多数据打包装置100可以包括字段提取模块101、字段解析模块102、序列化模块103、数据获取模块104、完整性对比模块105和数据打包模块106。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。在本实施例中,关于各模块/单元的功能如下:所述字段提取模块101,用于获取数据打包请求,提取所述数据打包请其中的目标数据字段。本发明实施例中,所述数据打包请求为任何系统中用户发起的用于数据打包的请求命令,例如,数据管理系统中用户发起的对某部分或全部数据进行打包的请求命令。详细地,本发明实施例使用ASM增强字节码过滤器监测获取网络中的数据打包请求,所述ASM增强字节码过滤器是一款基于java字节码层面的代码分析工具,利用ASM增强字节码过滤器对数据打包请求进行监测,可提高数据打包请求监测的成功率。本发明实施例中,所述字段提取模块101具体用于:获取数据打包请求;遍历所述数据打包请求并确定所述数据打包请其中字段分隔符的位置;根据所述字段分隔符的位置对所述数据打包请求进行字段拆分,得到多个拆分字段;按照拆分顺序将所述多个拆分字段进行序号标注;选取预设序号的拆分字段为所述目标数据字段。例如,数据打包请求为“qwe所述字段解析模块102,用于对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段。本发明实施例中,所述目标数据字段包括一个或多个数据信息字段,不同数据信息字段分别对应着不同的需要进行打包的数据,例如,存在目标数据字段包括数据信息字段1、数据信息字段2和数据信息字段3,其中,数据信息字段1对应的需要进行打包的数据为数据1,数据信息字段2对应的需要进行打包的数据为数据2,数据信息字段3对应的需要进行打包的数据为数据3。详细地,所述目标数据字段中包含数据信息字段和所述数据信息字段对应的ip字段,其中,所述数据信息字段包括数据名称,数据类型,数据大小等信息,所述ip字段为所述数据信息字段对应的数据的存储地址,具体地,所述数据信息字段对应的数据的存储地址可以为一个,也可以为多个。本发明实施例中,所述字段解析模块102具体用于:遍历所述目标数据字段并确定所述目标数据字段中的字段头和字段体;对所述字段体进行反射操作,得到字段方法;根据所述字段方法构建信息提取语句;执行所述信息提取语句提取所述目标数据字段中的多个数据信息字段;对所述字段头进行ip地址解析,得到所述多个数据信息字段分别对应的ip字段。本发明实施例中,可利用java中的反射技术对所述字段体进行反射操作,得到字段方法,所述反射技术是java中根据字符串获取数据方法的方式,利用反射技术对所述字段体进行反射操作,可提高获取字段方法的效率。具体地,所述对所述字段体进行反射操作,得到字段方法,例如,利用如下java语句对所述字段体进行反射操作:String name="Hualing";Class c1=name.getClass();System.out.println(c1.getName())。其中,"Hualing"为所述字段体。当对所述字段体进行反射操作后,即可得到字段方法。具体地,根据所述字段方法构建请求头提取语句的具体方法包括:构建如下信息提取语句:String name=field.getName()。进一步地,本发明实施例中可利用解析器解析对所述字段头进行ip地址解析,得到所述多个数据信息字段分别对应的ip字段,所述解析器包括CarakanC/C++,SquirrelFishC++和SquirrelFishExtremeC++等。所述序列化模块103,用于将所述多个数据信息字段序列化为数据信息列表。本发明实施例中,可通过构造序列化接口,利用所述序列化接口将所述多个数据信息字段转化为数据表形式并存入预设数据库中得到数据信息列表。详细地,所述序列化模块103具体用于:获取多个序列化处理函数;将所述多个序列化处理函数线性组合为构造函数;利用所述构造函数构造序列化接口;利用所述序列化接口对所述多个数据信息字段进行序列化处理,得到数据信息列表。本发明实施例中,所述序列化处理函数包括但不限于writeExternal()函数和randomExternal()函数。详细地,所述writeExternal()函数和randomExternal()函数是用于将多个数据信息字段进行随机排序的java函数。进一步的,所述线性组合包括但不限于相加、相减,本发明实施例将所述多个序列化处理函数线性组合为构造函数,进而利用java中的Externalible方法将所述构造函数构造为序列化接口。所述Externalible方法实现对java函数的聚合,得到序列化接口。本发明实施例中,通过序列化接口使得不同的java函数可以同时组合使用,可以实现一个接口同时使用多个函数,提高对所述多个数据信息序列化处理的效率。本发明实施例中,还包括将所述多个数据信息序列化得到的数据信息列表存入预先构建的数据库中,以防止所述多个数据信息的丢失,所述数据库包括但不限于java数据库,Oracle数据库。所述数据获取模块104,用于利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。本发明实施例中,利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据,是指利用多线程同时对多个数据信息字段分别对应的ip字段进行数据获取,所述多个待打包数据可预先存储于区块链节点中,利用区块链节点对数据的高吞天性,可提高获取所述多个待打包数据的效率。详细地,所述数据获取模块104具体用于:对所述多个数据信息字段分别对应的ip字段进行逻辑测试,得到多个真实ip地址;将所述多个真实ip地址分别编译为多个数据调用语句;同时执行所述多个数据调用语句,得到多个待打包数据。本发明实施例中,所述对所述多个数据信息字段分别对应的ip字段进行逻辑测试,得到多个真实ip地址,包括:将所述ip字段进行逻辑测试,得到逻辑测试值;当所述逻辑测试值与预设逻辑阈值相同时,确定所述ip字段经过转发,对所述ip字段进行源地址追踪,得到真实ip地址;当所述逻辑测试值与预设逻辑阈值不同时,确定所述ip字段未经过转发,确定所述ip字段为真实ip地址。详细地,由于数据打包请求在被拦截之前可能经历过多个计算机的转发,进而导致数据打包请求的ip字段发生了改变,本发明实施例根据ip字段确定真实ip地址,有利于提高根据ip地址获取待打包数据的成功率。具体地,所述对所述ip字段进行源地址追踪,得到真实ip地址,包括:提取所述ip字段中的转发路径参数;对所述转发路径参数进行反解析,得到转发路径;根据所述转发路径确定所述数据打包请求的源发地址;从所述源发地址中提取所述真实ip地址。详细地,本发明实施例中,可利用具有参数抓取功能的python语句从所述ip字段中提取出所述转发路径参数,所述转发路径参数是数据打包请求在被转发的过程中计算机生成并标记于数据打包请求内的特定字段。具体地,对转发路径参数进行反解析,得到转发路径,其中,反解析是解析的逆过程,按照解析器对用户请求进行解析的反过程执行,即可实现对转发路径参数进行反解析,得到所述转发路径。进一步地,本发明实施例根据转发路径确定数据打包请求的源发地址,即确定转发路径最前端的网络地址为源发地址,例如,转发路径为www.xxxx/yyyy/uuuu/iiii.com,则确定转发路径最前端的网络地址(xxxx)为源发地址。本发明实施例利用预设的编译器将多个真实ip地址分别编译为多个数据调用语句,并同时执行多个数据调用语句得到多个待打包数据,其中,所述编译器包括但不限于Visual Studio编译器、Dev C++编译器和Visual C++编译器。本发明实施例利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,可避免逐一地根据ip字段获取待打包数据,有利于提高获取待打包数据的效率。所述完整性对比模块105,用于将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。本发明实施例中,所述将所述多个待打包数据与所述数据信息列表进行完整性对比,例如,数据信息列表中包括数据1的数据信息、数据2的数据信息、数据3的数据信息、数据4的数据信息和数据5的数据信息,获取到的多个待打包数据中包括:数据1、数据3和数据5,将获取到的多个待打包数据和数据信息列表进行完整性对比,可发现未获取到数据信息列表中数据2的数据信息对应的待打包数据和数据4的数据信息对应的待打包数据,则确定所述完整性对比的结果为不完整。进一步地,所述完整性对比模块105具体用于:将所述多个待打包数据与所述数据信息列表进行完整性对比;若所述完整性对比的结果为不完整,获取自定义处理函数;利用所述自定义处理函数构建规则表达式;利用所述规则表达式定时采集所述多个待打包数据。具体地,所述自定义处理函数包括但不限于以下一项或多项:IF函数,用于判断采集条件;TO_DATE函数,用于表示日期与时间;U_TIME函数,用于自定义采集的时间;U_DIV函数,用于检测待打包数据的存储环境。详细地,所述利用所述自定义处理函数构建规则表达式,包括:获取与预设采集时间对应的自定义处理函数;检测所述多个待打包数据的存储环境的存储环境;通过与所述存储环境对应的编译器对所述自定义处理函数进行编译,得到所述规则表达式。本发明实施例中,通过构建自定义处理函数可以实现间隔预设采集时间对所述多个待打包数据进行采集,从而避免频繁或持续采集占用大量系统资源,造成采集效率低下的问题。所述数据打包模块106,用于若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。本发明实施例中,弱所述完整性对比的结果为完整,则说明已经对所述数据信息列表中包含的所有数据,对所述多个待打包数据进行数据打包,得到数据包。详细地,所述数据打包模块106具体用于:对所述多个待打包数据进行数据格式标准化,得到标准化数据;对所述标准化数据进行数据打包,得到数据包。本发明实施例中,所述对所述多个待打包数据进行数据格式标准化,得到标准化数据,包括:利用预设变量算法分别计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量;将所述多个待打包数据的数据格式中增加所述格式变量,得到转化为目标格式的标准化数据。优选地,所述利用预设变量算法分别计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量,包括:利用如下变量算法计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量α 其中,α为所述目标格式,δ为所述多个待打包数据中任一待打包数据的数据格式。进一步地,本发明实施例利用OEM(OEMDataPack,OEM数据打包)工具对所述标准化数据进行数据打包,得到数据包,所述OEM工具是一种轻量数据打包工具,利用OEM工具对所述标准数据进行数据打包,可提高对所述标准数据进行数据打包的效率。本发明实施例通过提取并解析数据打包请其中的目标数据字段,以获得多个数据信息字段和数据信息字段对应的ip字段,可实现通过数据打包请求确定多个待打包数据,有利于提高对数据进行打包的完整性;利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,避免了顺序地对多个待打包数据进行逐个获取,提高了数据打包的效率;将多个数据信息字段序列化为数据信息列表,将多个待打包数据与所述数据信息列表进行完整性对比,可通过对比确定获取到的待打包数据的完整性,防止打包时数据的缺漏。因此本发明提出的多数据打包装置,可以解决多数据打包时的效率及完整度不高的问题。如图3所示,是本发明一实施例提供的实现多数据打包方法的电子设备的结构示意图。所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如多数据打包程序12。其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如多数据打包程序12的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如多数据打包程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。所述电子设备1中的所述存储器11存储的多数据打包程序12是多个指令的组合,在所述处理器10中运行时,可以实现:获取数据打包请求,提取所述数据打包请其中的目标数据字段;对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段;将所述多个数据信息字段序列化为数据信息列表;利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:获取数据打包请求,提取所述数据打包请其中的目标数据字段;对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段;将所述多个数据信息字段序列化为数据信息列表;利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要其中的任何附关联图标记视为限制所涉及的权利要求。本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要其中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
S2、对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段。
本发明实施例中,所述目标数据字段包括一个或多个数据信息字段,不同数据信息字段分别对应着不同的需要进行打包的数据,例如,存在目标数据字段包括数据信息字段1、数据信息字段2和数据信息字段3,其中,数据信息字段1对应的需要进行打包的数据为数据1,数据信息字段2对应的需要进行打包的数据为数据2,数据信息字段3对应的需要进行打包的数据为数据3。
详细地,所述目标数据字段中包含数据信息字段和所述数据信息字段对应的ip字段,其中,所述数据信息字段包括数据名称,数据类型,数据大小等信息,所述ip字段为所述数据信息字段对应的数据的存储地址,具体地,所述数据信息字段对应的数据的存储地址可以为一个,也可以为多个。
本发明实施例中,所述对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段,包括:
本发明实施例中,可利用java中的反射技术对所述字段体进行反射操作,得到字段方法,所述反射技术是java中根据字符串获取数据方法的方式,利用反射技术对所述字段体进行反射操作,可提高获取字段方法的效率。
具体地,所述对所述字段体进行反射操作,得到字段方法,例如,利用如下java语句对所述字段体进行反射操作:
String name="Hualing";Class c1=name.getClass();System.out.println(c1.getName())。
其中,"Hualing"为所述字段体。
当对所述字段体进行反射操作后,即可得到字段方法。具体地,根据所述字段方法构建请求头提取语句的具体方法包括:构建如下信息提取语句:String name=field.getName()。
进一步地,本发明实施例中可利用解析器解析对所述字段头进行ip地址解析,得到所述多个数据信息字段分别对应的ip字段,所述解析器包括CarakanC/C++,SquirrelFishC++和SquirrelFishExtremeC++等。
S3、将所述多个数据信息字段序列化为数据信息列表。
本发明实施例中,可通过构造序列化接口,利用所述序列化接口将所述多个数据信息字段转化为数据表形式并存入预设数据库中得到数据信息列表。
详细地,所述将所述多个数据信息字段序列化为数据信息列表,包括:
本发明实施例中,所述序列化处理函数包括但不限于writeExternal()函数和randomExternal()函数。
详细地,所述writeExternal()函数和randomExternal()函数是用于将多个数据信息字段进行随机排序的java函数。
进一步的,所述线性组合包括但不限于相加、相减,本发明实施例将所述多个序列化处理函数线性组合为构造函数,进而利用java中的Externalible方法将所述构造函数构造为序列化接口。所述Externalible方法实现对java函数的聚合,得到序列化接口。
本发明实施例中,通过序列化接口使得不同的java函数可以同时组合使用,可以实现一个接口同时使用多个函数,提高对所述多个数据信息序列化处理的效率。
本发明实施例中,还包括将所述多个数据信息序列化得到的数据信息列表存入预先构建的数据库中,以防止所述多个数据信息的丢失,所述数据库包括但不限于java数据库,Oracle数据库。
S4、利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。
本发明实施例中,利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据,是指利用多线程同时对多个数据信息字段分别对应的ip字段进行数据获取,所述多个待打包数据可预先存储于区块链节点中,利用区块链节点对数据的高吞天性,可提高获取所述多个待打包数据的效率。
详细地,所述利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据,包括:
本发明实施例中,所述对所述多个数据信息字段分别对应的ip字段进行逻辑测试,得到多个真实ip地址,包括:
详细地,由于数据打包请求在被拦截之前可能经历过多个计算机的转发,进而导致数据打包请求的ip字段发生了改变,本发明实施例根据ip字段确定真实ip地址,有利于提高根据ip地址获取待打包数据的成功率。
具体地,所述对所述ip字段进行源地址追踪,得到真实ip地址,包括:
提取所述ip字段中的转发路径参数;
对所述转发路径参数进行反解析,得到转发路径;
根据所述转发路径确定所述数据打包请求的源发地址;
从所述源发地址中提取所述真实ip地址。
详细地,本发明实施例中,可利用具有参数抓取功能的python语句从所述ip字段中提取出所述转发路径参数,所述转发路径参数是数据打包请求在被转发的过程中计算机生成并标记于数据打包请求内的特定字段。
具体地,对转发路径参数进行反解析,得到转发路径,其中,反解析是解析的逆过程,按照解析器对用户请求进行解析的反过程执行,即可实现对转发路径参数进行反解析,得到所述转发路径。
进一步地,本发明实施例根据转发路径确定数据打包请求的源发地址,即确定转发路径最前端的网络地址为源发地址,例如,转发路径为www.xxxx/yyyy/uuuu/iiii.com,则确定转发路径最前端的网络地址(xxxx)为源发地址。
本发明实施例利用预设的编译器将多个真实ip地址分别编译为多个数据调用语句,并同时执行多个数据调用语句得到多个待打包数据,其中,所述编译器包括但不限于Visual Studio编译器、Dev C++编译器和Visual C++编译器。
本发明实施例利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,可避免逐一地根据ip字段获取待打包数据,有利于提高获取待打包数据的效率。
S5、将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。
本发明实施例中,所述将所述多个待打包数据与所述数据信息列表进行完整性对比,例如,数据信息列表中包括数据1的数据信息、数据2的数据信息、数据3的数据信息、数据4的数据信息和数据5的数据信息,获取到的多个待打包数据中包括:数据1、数据3和数据5,将获取到的多个待打包数据和数据信息列表进行完整性对比,可发现未获取到数据信息列表中数据2的数据信息对应的待打包数据和数据4的数据信息对应的待打包数据,则确定所述完整性对比的结果为不完整。
进一步地,所述利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据,包括:
获取自定义处理函数;
利用所述自定义处理函数构建规则表达式;
利用所述规则表达式定时采集所述多个待打包数据。
具体地,所述自定义处理函数包括但不限于以下一项或多项:
IF函数,用于判断采集条件;
TO_DATE函数,用于表示日期与时间;
U_TIME函数,用于自定义采集的时间;
U_DIV函数,用于检测待打包数据的存储环境。
详细地,所述利用所述自定义处理函数构建规则表达式,包括:
获取与预设采集时间对应的自定义处理函数;
检测所述多个待打包数据的存储环境的存储环境;
通过与所述存储环境对应的编译器对所述自定义处理函数进行编译,得到所述规则表达式。
本发明实施例中,通过构建自定义处理函数可以实现间隔预设采集时间对所述多个待打包数据进行采集,从而避免频繁或持续采集占用大量系统资源,造成采集效率低下的问题。
S6、若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。
本发明实施例中,弱所述完整性对比的结果为完整,则说明已经对所述数据信息列表中包含的所有数据,对所述多个待打包数据进行数据打包,得到数据包。
详细地,所述对所述多个待打包数据进行数据打包,得到数据包,包括:
本发明实施例中,所述对所述多个待打包数据进行数据格式标准化,得到标准化数据,包括:
利用预设变量算法分别计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量;
将所述多个待打包数据的数据格式中增加所述格式变量,得到转化为目标格式的标准化数据。
优选地,所述利用预设变量算法分别计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量,包括:
利用如下变量算法计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量α
其中,α为所述目标格式,δ为所述多个待打包数据中任一待打包数据的数据格式。
进一步地,本发明实施例利用OEM(OEMDataPack,OEM数据打包)工具对所述标准化数据进行数据打包,得到数据包,所述OEM工具是一种轻量数据打包工具,利用OEM工具对所述标准数据进行数据打包,可提高对所述标准数据进行数据打包的效率。
本发明实施例通过提取并解析数据打包请其中的目标数据字段,以获得多个数据信息字段和数据信息字段对应的ip字段,可实现通过数据打包请求确定多个待打包数据,有利于提高对数据进行打包的完整性;利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,避免了顺序地对多个待打包数据进行逐个获取,提高了数据打包的效率;将多个数据信息字段序列化为数据信息列表,将多个待打包数据与所述数据信息列表进行完整性对比,可通过对比确定获取到的待打包数据的完整性,防止打包时数据的缺漏。因此本发明提出的多数据打包方法,可以解决多数据打包时的效率及完整度不高的问题。
如图2所示,是本发明一实施例提供的多数据打包装置的功能模块图。
本发明所述多数据打包装置100可以安装于电子设备中。根据实现的功能,所述多数据打包装置100可以包括字段提取模块101、字段解析模块102、序列化模块103、数据获取模块104、完整性对比模块105和数据打包模块106。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述字段提取模块101,用于获取数据打包请求,提取所述数据打包请其中的目标数据字段。
本发明实施例中,所述字段提取模块101具体用于:
获取数据打包请求;
例如,数据打包请求为“qwe所述字段解析模块102,用于对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段。本发明实施例中,所述目标数据字段包括一个或多个数据信息字段,不同数据信息字段分别对应着不同的需要进行打包的数据,例如,存在目标数据字段包括数据信息字段1、数据信息字段2和数据信息字段3,其中,数据信息字段1对应的需要进行打包的数据为数据1,数据信息字段2对应的需要进行打包的数据为数据2,数据信息字段3对应的需要进行打包的数据为数据3。详细地,所述目标数据字段中包含数据信息字段和所述数据信息字段对应的ip字段,其中,所述数据信息字段包括数据名称,数据类型,数据大小等信息,所述ip字段为所述数据信息字段对应的数据的存储地址,具体地,所述数据信息字段对应的数据的存储地址可以为一个,也可以为多个。本发明实施例中,所述字段解析模块102具体用于:遍历所述目标数据字段并确定所述目标数据字段中的字段头和字段体;对所述字段体进行反射操作,得到字段方法;根据所述字段方法构建信息提取语句;执行所述信息提取语句提取所述目标数据字段中的多个数据信息字段;对所述字段头进行ip地址解析,得到所述多个数据信息字段分别对应的ip字段。本发明实施例中,可利用java中的反射技术对所述字段体进行反射操作,得到字段方法,所述反射技术是java中根据字符串获取数据方法的方式,利用反射技术对所述字段体进行反射操作,可提高获取字段方法的效率。具体地,所述对所述字段体进行反射操作,得到字段方法,例如,利用如下java语句对所述字段体进行反射操作:String name="Hualing";Class c1=name.getClass();System.out.println(c1.getName())。其中,"Hualing"为所述字段体。当对所述字段体进行反射操作后,即可得到字段方法。具体地,根据所述字段方法构建请求头提取语句的具体方法包括:构建如下信息提取语句:String name=field.getName()。进一步地,本发明实施例中可利用解析器解析对所述字段头进行ip地址解析,得到所述多个数据信息字段分别对应的ip字段,所述解析器包括CarakanC/C++,SquirrelFishC++和SquirrelFishExtremeC++等。所述序列化模块103,用于将所述多个数据信息字段序列化为数据信息列表。本发明实施例中,可通过构造序列化接口,利用所述序列化接口将所述多个数据信息字段转化为数据表形式并存入预设数据库中得到数据信息列表。详细地,所述序列化模块103具体用于:获取多个序列化处理函数;将所述多个序列化处理函数线性组合为构造函数;利用所述构造函数构造序列化接口;利用所述序列化接口对所述多个数据信息字段进行序列化处理,得到数据信息列表。本发明实施例中,所述序列化处理函数包括但不限于writeExternal()函数和randomExternal()函数。详细地,所述writeExternal()函数和randomExternal()函数是用于将多个数据信息字段进行随机排序的java函数。进一步的,所述线性组合包括但不限于相加、相减,本发明实施例将所述多个序列化处理函数线性组合为构造函数,进而利用java中的Externalible方法将所述构造函数构造为序列化接口。所述Externalible方法实现对java函数的聚合,得到序列化接口。本发明实施例中,通过序列化接口使得不同的java函数可以同时组合使用,可以实现一个接口同时使用多个函数,提高对所述多个数据信息序列化处理的效率。本发明实施例中,还包括将所述多个数据信息序列化得到的数据信息列表存入预先构建的数据库中,以防止所述多个数据信息的丢失,所述数据库包括但不限于java数据库,Oracle数据库。所述数据获取模块104,用于利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。本发明实施例中,利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据,是指利用多线程同时对多个数据信息字段分别对应的ip字段进行数据获取,所述多个待打包数据可预先存储于区块链节点中,利用区块链节点对数据的高吞天性,可提高获取所述多个待打包数据的效率。详细地,所述数据获取模块104具体用于:对所述多个数据信息字段分别对应的ip字段进行逻辑测试,得到多个真实ip地址;将所述多个真实ip地址分别编译为多个数据调用语句;同时执行所述多个数据调用语句,得到多个待打包数据。本发明实施例中,所述对所述多个数据信息字段分别对应的ip字段进行逻辑测试,得到多个真实ip地址,包括:将所述ip字段进行逻辑测试,得到逻辑测试值;当所述逻辑测试值与预设逻辑阈值相同时,确定所述ip字段经过转发,对所述ip字段进行源地址追踪,得到真实ip地址;当所述逻辑测试值与预设逻辑阈值不同时,确定所述ip字段未经过转发,确定所述ip字段为真实ip地址。详细地,由于数据打包请求在被拦截之前可能经历过多个计算机的转发,进而导致数据打包请求的ip字段发生了改变,本发明实施例根据ip字段确定真实ip地址,有利于提高根据ip地址获取待打包数据的成功率。具体地,所述对所述ip字段进行源地址追踪,得到真实ip地址,包括:提取所述ip字段中的转发路径参数;对所述转发路径参数进行反解析,得到转发路径;根据所述转发路径确定所述数据打包请求的源发地址;从所述源发地址中提取所述真实ip地址。详细地,本发明实施例中,可利用具有参数抓取功能的python语句从所述ip字段中提取出所述转发路径参数,所述转发路径参数是数据打包请求在被转发的过程中计算机生成并标记于数据打包请求内的特定字段。具体地,对转发路径参数进行反解析,得到转发路径,其中,反解析是解析的逆过程,按照解析器对用户请求进行解析的反过程执行,即可实现对转发路径参数进行反解析,得到所述转发路径。进一步地,本发明实施例根据转发路径确定数据打包请求的源发地址,即确定转发路径最前端的网络地址为源发地址,例如,转发路径为www.xxxx/yyyy/uuuu/iiii.com,则确定转发路径最前端的网络地址(xxxx)为源发地址。本发明实施例利用预设的编译器将多个真实ip地址分别编译为多个数据调用语句,并同时执行多个数据调用语句得到多个待打包数据,其中,所述编译器包括但不限于Visual Studio编译器、Dev C++编译器和Visual C++编译器。本发明实施例利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,可避免逐一地根据ip字段获取待打包数据,有利于提高获取待打包数据的效率。所述完整性对比模块105,用于将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。本发明实施例中,所述将所述多个待打包数据与所述数据信息列表进行完整性对比,例如,数据信息列表中包括数据1的数据信息、数据2的数据信息、数据3的数据信息、数据4的数据信息和数据5的数据信息,获取到的多个待打包数据中包括:数据1、数据3和数据5,将获取到的多个待打包数据和数据信息列表进行完整性对比,可发现未获取到数据信息列表中数据2的数据信息对应的待打包数据和数据4的数据信息对应的待打包数据,则确定所述完整性对比的结果为不完整。进一步地,所述完整性对比模块105具体用于:将所述多个待打包数据与所述数据信息列表进行完整性对比;若所述完整性对比的结果为不完整,获取自定义处理函数;利用所述自定义处理函数构建规则表达式;利用所述规则表达式定时采集所述多个待打包数据。具体地,所述自定义处理函数包括但不限于以下一项或多项:IF函数,用于判断采集条件;TO_DATE函数,用于表示日期与时间;U_TIME函数,用于自定义采集的时间;U_DIV函数,用于检测待打包数据的存储环境。详细地,所述利用所述自定义处理函数构建规则表达式,包括:获取与预设采集时间对应的自定义处理函数;检测所述多个待打包数据的存储环境的存储环境;通过与所述存储环境对应的编译器对所述自定义处理函数进行编译,得到所述规则表达式。本发明实施例中,通过构建自定义处理函数可以实现间隔预设采集时间对所述多个待打包数据进行采集,从而避免频繁或持续采集占用大量系统资源,造成采集效率低下的问题。所述数据打包模块106,用于若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。本发明实施例中,弱所述完整性对比的结果为完整,则说明已经对所述数据信息列表中包含的所有数据,对所述多个待打包数据进行数据打包,得到数据包。详细地,所述数据打包模块106具体用于:对所述多个待打包数据进行数据格式标准化,得到标准化数据;对所述标准化数据进行数据打包,得到数据包。本发明实施例中,所述对所述多个待打包数据进行数据格式标准化,得到标准化数据,包括:利用预设变量算法分别计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量;将所述多个待打包数据的数据格式中增加所述格式变量,得到转化为目标格式的标准化数据。优选地,所述利用预设变量算法分别计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量,包括:利用如下变量算法计算所述多个待打包数据的数据格式与预设的目标格式之间的格式变量α 其中,α为所述目标格式,δ为所述多个待打包数据中任一待打包数据的数据格式。进一步地,本发明实施例利用OEM(OEMDataPack,OEM数据打包)工具对所述标准化数据进行数据打包,得到数据包,所述OEM工具是一种轻量数据打包工具,利用OEM工具对所述标准数据进行数据打包,可提高对所述标准数据进行数据打包的效率。本发明实施例通过提取并解析数据打包请其中的目标数据字段,以获得多个数据信息字段和数据信息字段对应的ip字段,可实现通过数据打包请求确定多个待打包数据,有利于提高对数据进行打包的完整性;利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,避免了顺序地对多个待打包数据进行逐个获取,提高了数据打包的效率;将多个数据信息字段序列化为数据信息列表,将多个待打包数据与所述数据信息列表进行完整性对比,可通过对比确定获取到的待打包数据的完整性,防止打包时数据的缺漏。因此本发明提出的多数据打包装置,可以解决多数据打包时的效率及完整度不高的问题。如图3所示,是本发明一实施例提供的实现多数据打包方法的电子设备的结构示意图。所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如多数据打包程序12。其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如多数据打包程序12的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如多数据打包程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。所述电子设备1中的所述存储器11存储的多数据打包程序12是多个指令的组合,在所述处理器10中运行时,可以实现:获取数据打包请求,提取所述数据打包请其中的目标数据字段;对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段;将所述多个数据信息字段序列化为数据信息列表;利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:获取数据打包请求,提取所述数据打包请其中的目标数据字段;对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段;将所述多个数据信息字段序列化为数据信息列表;利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据;若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要其中的任何附关联图标记视为限制所涉及的权利要求。本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要其中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
所述字段解析模块102,用于对所述目标数据字段进行字段解析,得到多个数据信息字段和所述多个数据信息字段分别对应的ip字段。
本发明实施例中,所述字段解析模块102具体用于:
所述序列化模块103,用于将所述多个数据信息字段序列化为数据信息列表。
详细地,所述序列化模块103具体用于:
所述数据获取模块104,用于利用多线程并行方式、根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。
详细地,所述数据获取模块104具体用于:
所述完整性对比模块105,用于将所述多个待打包数据与所述数据信息列表进行完整性对比,若所述完整性对比的结果为不完整,利用定时任务重新根据所述多个数据信息字段分别对应的ip字段获取多个待打包数据。
进一步地,所述完整性对比模块105具体用于:
将所述多个待打包数据与所述数据信息列表进行完整性对比;
若所述完整性对比的结果为不完整,获取自定义处理函数;
所述数据打包模块106,用于若所述完整性对比的结果为完整,对所述多个待打包数据进行数据打包,得到数据包。
详细地,所述数据打包模块106具体用于:
本发明实施例通过提取并解析数据打包请其中的目标数据字段,以获得多个数据信息字段和数据信息字段对应的ip字段,可实现通过数据打包请求确定多个待打包数据,有利于提高对数据进行打包的完整性;利用多线程并行方式根据多个数据信息字段分别对应的ip字段获取多个待打包数据,避免了顺序地对多个待打包数据进行逐个获取,提高了数据打包的效率;将多个数据信息字段序列化为数据信息列表,将多个待打包数据与所述数据信息列表进行完整性对比,可通过对比确定获取到的待打包数据的完整性,防止打包时数据的缺漏。因此本发明提出的多数据打包装置,可以解决多数据打包时的效率及完整度不高的问题。
如图3所示,是本发明一实施例提供的实现多数据打包方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如多数据打包程序12。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如多数据打包程序12的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如多数据打包程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的多数据打包程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要其中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要其中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
06120112554366