CN110297944A - 分布式xml数据处理方法及系统 - Google Patents

分布式xml数据处理方法及系统 Download PDF

Info

Publication number
CN110297944A
CN110297944A CN201910588982.3A CN201910588982A CN110297944A CN 110297944 A CN110297944 A CN 110297944A CN 201910588982 A CN201910588982 A CN 201910588982A CN 110297944 A CN110297944 A CN 110297944A
Authority
CN
China
Prior art keywords
data
message
xml
distributed
message data
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.)
Granted
Application number
CN201910588982.3A
Other languages
English (en)
Other versions
CN110297944B (zh
Inventor
浦婧蕾
钟慰
朱李悦
王斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910588982.3A priority Critical patent/CN110297944B/zh
Publication of CN110297944A publication Critical patent/CN110297944A/zh
Application granted granted Critical
Publication of CN110297944B publication Critical patent/CN110297944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种分布式XML数据处理方法及系统,其中的方法包括:异步且并发地接收XML报文数据,并将所述XML报文数据并行拆分为多个报文片段;对各个所述报文片段进行解析,得到对应的数据对;将特征相同的所述数据对合并至同一报文数据组中,并存储各个所述报文数据组。本申请能够有效提高XML报文数据的处理效率及处理过程的可靠性,并能够有效提高XML报文数据的可扩展性和存储可靠性,以及有效降低数据冗余。

Description

分布式XML数据处理方法及系统
技术领域
本申请涉及数据处理技术领域,具体涉及一种分布式XML数据处理方法及系统。
背景技术
XML(Extensible Markup Language,可扩展标记语言)是一套定义语法标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即用于定义其他与特定领域有关的、语义的和结构化的标记语言的句法语言,XML运用广泛,尤其是在商业报告领域,使用XML报文形式传送数据的场景不计其数。
目前,由于商业报告种类繁多,所涉及XML报文的元素类型复杂,文件规范多样,而为了能够确保数据准确性,现有技术通常采用串行处理模式对XML报文数据进行解析,即依次对每份基于XML数据的报告进行章节全量读取并解析,再对每个章节实现数据存储设计。
然后,现有的XML报文数据处理方式因需要对每张报表依次实现解析、存储、及核查维护,使其存在系统处理性能低、数据存储分散及可扩展性不足的问题。
发明内容
针对现有技术中的问题,本申请提供一种分布式XML数据处理方法及系统,能够有效提高XML报文数据的处理效率及处理过程的可靠性,并能够有效提高XML报文数据的可扩展性和存储可靠性,以及有效降低数据冗余。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种分布式XML数据处理方法,包括:
异步且并发地接收XML报文数据,并将所述XML报文数据并行拆分为多个报文片段;
对各个所述报文片段进行解析,得到对应的数据对;
将特征相同的所述数据对合并至同一报文数据组中,并存储各个所述报文数据组。
进一步地,所述异步且并发地接收XML报文数据,包括:
实时接收外部系统发送的XML报文数据,并根据接收的所述XML报文数据实时建立对应的接收任务;
应用各个所述接收任务并行获取各自对应的所述XML报文数据以及该XML报文数据对应的报文类别元素,并基于该报文类别元素确定对应的报文定义模型,并将所述报文定义模型和对应的所述XML报文数据进行封装,得到与各份所述XML报文数据一一对应的封装数据。
进一步地,所述将所述XML报文数据并行拆分为多个报文片段,包括:
应用与各个所述接收任务一一对应的各个拆分任务并行对各份所述封装数据进行拆分,得到各份所述封装数据分别对应的多个报文片段。
进一步地,所述对各个所述报文片段进行解析,得到对应的数据对,包括:
应用至少一个解析节点全量读取各个所述报文片段,并获取各个所述报文片段中的节点元素和元素值;
根据各份所述XML报文数据对应的报文定义模型,将各个所述报文片段中的所述节点元素和元素值映射为对应的符合目标形式内容的数据对。
进一步地,所述数据对的目标形式内容包括:作为所述数据对的特征的报告编码、存储路径、元素节点和元素值。
进一步地,所述将特征相同的所述数据对合并至同一报文数据组中,包括:
应用与各个所述接收任务一一对应的各个合并任务并行将所述报告编码相同的数据对合并至同一报文数据组中,其中,所述报文数据组的格式内容包括:所述元素节点和元素值。
进一步地,在所述存储各个所述报文数据组之前,还包括:
实时检测合并至各个所述报文数据组中的所述数据对与所述外部系统发送的XML报文数据之间是否完全对应,若是,则将各个所述报文数据组分别发送至对应的至少一个存储节点。
进一步地,所述存储各个所述报文数据组,包括:
应用至少一个所述存储节点将各个所述报文数据组存储到至少一个数据库中。
进一步地,所述数据库包括:报文定义表、规则数据表、扩展元素表、可扩数据表、非结构化数据表和未定义数据表中的至少一个;
其中,所述报文定义表用于存储所述XML报文数据中的尚未配置的报文元素数据的报文元素;
所述规则数据表用于存储所述XML报文数据中的元素单值信息;
所述扩展元素表用于存储所述XML报文数据中的多维数据信息中的扩展的列元素;
所述可扩数据表用于存储所述XML报文数据中的多维数据信息中的元素值;
所述非结构化数据表用于存储所述XML报文数据中的非结构化的数据信息;
所述未定义数据表用于存储所述XML报文数据中的尚未配置的报文元素数据的元素值。
第二方面,本申请提供一种分布式XML数据处理系统,包括:
接收装置,用于异步且并发地接收XML报文数据,以及,拆分装置,用于将所述XML报文数据并行拆分为多个报文片段;
解析装置,用于对各个所述报文片段进行解析,得到对应的数据对;
合并装置,用于将特征相同的所述数据对合并至同一报文数据组中,以及,存储装置,用于存储各个所述报文数据组。
进一步地,所述接收装置包括:
数据接收单元,用于实时接收外部系统发送的XML报文数据,并根据接收的所述XML报文数据实时建立对应的接收任务;
数据封装单元,用于应用各个所述接收任务并行获取各自对应的所述XML报文数据以及该XML报文数据对应的报文类别元素,并基于该报文类别元素确定对应的报文定义模型,并将所述报文定义模型和对应的所述XML报文数据进行封装,得到与各份所述XML报文数据一一对应的封装数据。
进一步地,所述拆分装置包括:
并行拆分单元,用于应用与各个所述接收任务一一对应的各个拆分任务并行对各份所述封装数据进行拆分,得到各份所述封装数据分别对应的多个报文片段。
进一步地,所述解析装置包括:
全量读取单元,用于应用至少一个解析节点全量读取各个所述报文片段,并获取各个所述报文片段中的节点元素和元素值;
数据对映射单元,用于根据各份所述XML报文数据对应的报文定义模型,将各个所述报文片段中的所述节点元素和元素值映射为对应的符合目标形式内容的数据对。
进一步地,所述数据对的目标形式内容包括:作为所述数据对的特征的报告编码、存储路径、元素节点和元素值。
进一步地,所述合并装置包括:
并行合并单元,用于应用与各个所述接收任务一一对应的各个合并任务并行将所述报告编码相同的数据对合并至同一报文数据组中,其中,所述报文数据组的格式内容包括:所述元素节点和元素值。
进一步地,所述合并装置还包括:
完整性检测单元,用于实时检测合并至各个所述报文数据组中的所述数据对与所述外部系统发送的XML报文数据之间是否完全对应,若是,则将各个所述报文数据组分别发送至对应的至少一个存储节点。
进一步地,所述存储模块包括:
数据库存储单元,用于应用至少一个所述存储节点将各个所述报文数据组存储到至少一个数据库中。
进一步地,所述数据库包括:报文定义表、规则数据表、扩展元素表、可扩数据表、非结构化数据表和未定义数据表中的至少一个;
其中,所述报文定义表用于存储所述XML报文数据中的尚未配置的报文元素数据的报文元素;
所述规则数据表用于存储所述XML报文数据中的元素单值信息;
所述扩展元素表用于存储所述XML报文数据中的多维数据信息中的扩展的列元素;
所述可扩数据表用于存储所述XML报文数据中的多维数据信息中的元素值;
所述非结构化数据表用于存储所述XML报文数据中的非结构化的数据信息;
所述未定义数据表用于存储所述XML报文数据中的尚未配置的报文元素数据的元素值。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的分布式XML数据处理方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的分布式XML数据处理方法的步骤。
由上述技术方案可知,本申请提供一种分布式XML数据处理方法及系统,其中的方法包括:异步且并发地接收XML报文数据,并将所述XML报文数据并行拆分为多个报文片段;对各个所述报文片段进行解析,得到对应的数据对;将特征相同的所述数据对合并至同一报文数据组中,并存储各个所述报文数据组,使得本申请根据XML报文节点灵活组合的特性,充分发挥分布式结构的优势,采用先解析后合并的方式并行处理报文节点数据,即同时对多份不同结构的XML报文进行拆分,再将XML报文结构映射为数据模型,最后进行合并存储。这种形成“多份报告、多个任务、多次分布合并”的分布式XML报文处理方法,使系统通过嵌套的键值构造,能够有效提高XML报文数据的处理效率及处理过程的可靠性,并能够有效提高XML报文数据的可扩展性和存储可靠性,以及有效降低数据冗余,能够克服传统处理方法效率低、冗余多、扩展性差的缺陷,可更新支持多种资产管理产品繁多财务报告解析处理的功能,从而提高相关数据系统运行及处理的效率,对于多层章节的复杂商业报告效果尤为明显。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的服务器与客户端的连接示意图。
图2为本申请实施例中的分布式XML数据处理方法的流程示意图。
图3为本申请实施例中的分布式XML数据处理方法中步骤10的第一种流程示意图。
图4为本申请实施例中的分布式XML数据处理方法中步骤10的第二种流程示意图。
图5为本申请实施例中的分布式XML数据处理方法中步骤20的流程示意图。
图6为本申请实施例中的分布式XML数据处理方法中步骤30的第一种流程示意图。
图7为本申请实施例中的分布式XML数据处理方法中步骤30的第二种流程示意图。
图8为本申请实施例中的分布式XML数据处理系统的结构示意图。
图9为本申请实施例中的存储装置5与数据库系统之间的对应关系示意图。
图10为本申请具体应用实例中的分布式XML数据处理系统的具体结构示意图。
图11为本申请具体应用实例中的分布式XML数据处理方法的具体流程示意图。
图12为本申请具体应用实例中的分布式XML数据处理方法中步骤103报文拆分的细化流程图。
图13为本申请具体应用实例中的报文片段拆分的举例示意图。
图14为本申请具体应用实例中的分布式XML数据处理方法中步骤105报文解析的细化流程图。
图15为本申请具体应用实例中的分布式XML数据处理方法中步骤106合并任务的细化流程图。
图16为本申请应用实例中的以三份原始报文A、B、C为例说明报文拆分-解析-合并的全流程示意图。
图17为本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
由于现有的XML报文数据处理方式因需要对每张报表依次实现解析、存储、及核查维护,因此使得现有的XML报文数据处理方式存在效率上的问题,主要体现在以下几方面:
1、系统处理性能低:该方法需要对每张报表依次实现解析、存储、及核查维护功能,使得联机程序之间仅能串行传递,降低了处理效率。由于大多数报告都存在多层次章节,其XML结构是相当复杂的,用该方法将会产生成百上千张报告章节数据的处理和存储,占用大量系统资源。
2、数据存储分散:每张报告页面维护一张数据库表对象,且对象逻辑结构相似度高,大量重复的数据结构,将造成数据存储结构的冗余,增加了数据库管理和维护成本。
3、系统可扩展性不足:传统方法“一份报告,一套程序”的针对性强,但复用性低,对于频繁变动的报告规范,这种设计模式终将在行业报告种类的不断发展的过程中走向瓶颈。
针对现有的分布式XML数据处理方式存在的问题,本申请提供一种分布式XML数据处理方法、分布式XML数据处理系统、电子设备和计算机可读存储介质,通过异步且并发地接收XML报文数据,并将所述XML报文数据并行拆分为多个报文片段;对各个所述报文片段进行解析,得到对应的数据对;将特征相同的所述数据对合并至同一报文数据组中,并存储各个所述报文数据组,根据XML报文节点灵活组合的特性,充分发挥分布式结构的优势,采用先解析后合并的方式并行处理报文节点数据,即同时对多份不同结构的XML报文进行拆分,再将XML报文结构映射为数据模型,最后进行合并存储。这种形成“多份报告、多个任务、多次分布合并”的分布式XML报文处理方法,使系统通过嵌套的键值构造,能够有效提高XML报文数据的处理效率及处理过程的可靠性,并能够有效提高XML报文数据的可扩展性和存储可靠性,以及有效降低数据冗余,能够克服传统处理方法效率低、冗余多、扩展性差的缺陷,可更新支持多种资产管理产品繁多财务报告解析处理的功能,从而提高相关数据系统运行及处理的效率,对于多层章节的复杂商业报告效果尤为明显。
在本申请的一个或多个实施例中,所述XML报文包是指描述一份报告实例所需的报文数据文件总和;所述报文定义模型是指简称模型,用于指定报文结构及存储方式的数据模型;所述报文数据节点是指商业报告中具有业务含义、不可再拆分的数据对象;所述报文片段是指一份XML报文经过拆分后任具备标签结构特点的子报文;所述元素节点是指一个独立的标签对及其包含的元素内容;所述数据对是指报文片段各元素节点经过解析后的数据输出结果,格式为:{报告编码,[存储路径,(元素节点,元素值)]}。所述数据组是指多个数据对合并后的结果,格式为:(元素节点,元素值)。
基于上述内容,本申请还提供一种分布式XML数据处理系统,该分布式XML数据处理系统具体可以为一种服务器001,参见图1,所述服务器001与至少一个客户端002之间通信连接,所述服务器001还可以与至少一个对应的数据库通信连接。所述服务器001可以在线从客户端002获取数据处理指令,并在接收到所述数据处理指令之后,异步且并发地接收XML报文数据,并将所述XML报文数据并行拆分为多个报文片段;对各个所述报文片段进行解析,得到对应的数据对;以及将特征相同的所述数据对合并至同一报文数据组中,并存储各个所述报文数据组,所述服务器001还可以在线将处理结果或动态处理过程发送至所述客户端002进行显示。
其中的客户端002即为客户端设备。可以理解的是,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,进行分布式XML数据处理的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
为了有效提高XML报文数据的处理效率及处理过程的可靠性,并有效提高XML报文数据的可扩展性和存储可靠性,以及有效降低数据冗余,在本申请的执行主体可以为前述的分布式XML数据处理系统的分布式XML数据处理方法的实施例中,参见图2,所述分布式XML数据处理方法具体包含有如下内容:
步骤10:异步且并发地接收XML报文数据,并将所述XML报文数据并行拆分为多个报文片段。
可以理解的是,在步骤10中,所述分布式XML数据处理系统中XML报文数据接收的内容与报文片段的内容的部分可以应用不同的任务模块执行,这样能够使得两个模块同时或非同时分别执行所述XML报文数据接收的内容和所述报文片段的内容,以通过提高接收和拆分效率来进一步提高XML报文数据的处理效率。
步骤20:对各个所述报文片段进行解析,得到对应的数据对。
在步骤20中,所述分布式XML数据处理系统在分布式集群上对各个所述报文片段进行解析并将其处理成为数据对{报告编码,[存储路径,(元素节点,元素值)]}。其中,对各个所述报文片段进行解析的过程也可以并行进行,以通过提高解析效率来进一步提高XML报文数据的处理效率。
步骤30:将特征相同的所述数据对合并至同一报文数据组中,并存储各个所述报文数据组。
在步骤30中,所述分布式XML数据处理系统根据解析结果的特征值合并同一报文数据组,格式为(元素节点,元素值)。当同一份报文的所有节点的数据组均被接收,将进一步按存储路径分类。可以理解的是,所述分布式XML数据处理系统中XML报文数据解析的内容与数据存储的内容的部分可以应用不同的任务模块执行,这样能够使得两个模块同时或非同时分别执行所述XML报文数据解析的内容和所述数据存储的内容,以通过提高解析和存储效率来进一步提高XML报文数据的处理效率。
为了提高数据接收效率,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理方法的一个实施例中,参见图3,所述分布式XML数据处理方法中的步骤10具体包含有如下内容:
步骤11:实时接收外部系统发送的XML报文数据,并根据接收的所述XML报文数据实时建立对应的接收任务。
步骤12:应用各个所述接收任务并行获取各自对应的所述XML报文数据以及该XML报文数据对应的报文类别元素,并基于该报文类别元素确定对应的报文定义模型,并将所述报文定义模型和对应的所述XML报文数据进行封装,得到与各份所述XML报文数据一一对应的封装数据。
具体来说,外部系统实时产生XML报文数据,通过述XML报文数据系统提供的收发端逐份发送至XML报文数据系统中的各个接收任务中。所述XML报文数据系统每接收到一份报文数据,则实时建立一个接收任务,该接收任务读取报文类别元素,根据类别元素获取报文定义模型,将报文定义模型与报文数据进行封装。
为了提高数据拆分效率,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理方法的一个实施例中,参见图4,所述分布式XML数据处理方法中的步骤10还具体包含有如下内容:
步骤13:应用与各个所述接收任务一一对应的各个拆分任务并行对各份所述封装数据进行拆分,得到各份所述封装数据分别对应的多个报文片段。
可以理解的是,所述分布式XML数据处理系统以报文为单位进行拆分,再将拆分后的报文片段。其中,所述设有多个拆分节点,与接收任务一一对应,每个拆分节点对应一个拆分任务,拆分任务将按照报文节点数量并行拆分
为了提高数据解析的可靠性,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理方法的一个实施例中,参见图5,所述分布式XML数据处理方法中的步骤20具体包含有如下内容:
步骤21:应用至少一个解析节点全量读取各个所述报文片段,并获取各个所述报文片段中的节点元素和元素值。
步骤22:根据各份所述XML报文数据对应的报文定义模型,将各个所述报文片段中的所述节点元素和元素值映射为对应的符合目标形式内容的数据对。
可以理解的是,所述数据对的目标形式内容包括:作为所述数据对的特征的报告编码、存储路径、元素节点和元素值。
为了提高数据合并的效率,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理方法的一个实施例中,参见图6,所述分布式XML数据处理方法中的步骤30具体包含有如下内容:
步骤31:应用与各个所述接收任务一一对应的各个合并任务并行将所述报告编码相同的数据对合并至同一报文数据组中,其中,所述报文数据组的格式内容包括:所述元素节点和元素值。
为了提高数据合并的完整性和可靠性,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理方法的一个实施例中,参见图6,所述分布式XML数据处理方法中的步骤30还具体包含有如下内容:
步骤32:实时检测合并至各个所述报文数据组中的所述数据对与所述外部系统发送的XML报文数据之间是否完全对应,若是,则将各个所述报文数据组分别发送至对应的至少一个存储节点。
可以理解的是,若合并至各个所述报文数据组中的所述数据对与所述外部系统发送的XML报文数据之间是否未完全对应,则可以返回步骤10重新进行数据的接收,或者发出报警以使技术人员对未完全对应的部分进行处理。
为了提高数据存储的效率性和可靠性,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理方法的一个实施例中,参见图7,所述分布式XML数据处理方法中的步骤30还具体包含有如下内容:
步骤33:应用至少一个所述存储节点将各个所述报文数据组存储到至少一个数据库中。
可以理解的是,所述数据库中包含有:报文定义表、规则数据表、扩展元素表、可扩数据表、非结构化数据表和未定义数据表中的至少一个。
其中,所述报文定义表用于存储所述XML报文数据中的尚未配置的报文元素数据的报文元素。
所述规则数据表用于存储所述XML报文数据中的元素单值信息。
所述扩展元素表用于存储所述XML报文数据中的多维数据信息中的扩展的列元素。
所述可扩数据表用于存储所述XML报文数据中的多维数据信息中的元素值。
所述非结构化数据表用于存储所述XML报文数据中的非结构化的数据信息。
所述未定义数据表用于存储所述XML报文数据中的尚未配置的报文元素数据的元素值。
为了有效提高XML报文数据的处理效率及处理过程的可靠性,并有效提高XML报文数据的可扩展性和存储可靠性,以及有效降低数据冗余,本申请还提供一种用于实现所述分布式XML数据处理方法的分布式XML数据处理系统的实施例中,参见图8,所述分布式XML数据处理系统具体包含有如下内容:
接收装置1,用于异步且并发地接收XML报文数据。
其中,接收装置1用于异步且并发地接收XML报文数据,即:每接收到一份报文数据,则实时建立一个接收任务,该接收任务用于读取报文类别元素,根据类别元素获取报文定义模型,将并将所述报文定义模型与接收的所述XML报文数据进行封装。
具体来说,所述接收装置1接收所述系统外部系统提供的原始报文队列,转发至拆分装置2。所述接收装置设有多个收发端,每个收发端异步且并发地处理数据,确保数据及时高效地传递给拆分装置2。
拆分装置2,用于将所述XML报文数据并行拆分为多个报文片段。
其中,拆分装置2用于将所述XML报文数据并行拆分为多个报文片段。
具体来说,所述拆分装置2负责接收来自接收装置1报文队列,然后以报文为单位进行拆分,再将拆分后的报文片段分发至解析装置3。所述拆分装置设有多个拆分节点,与接收装置1的收发端一一对应,每个拆分节点对应一个拆分任务,拆分任务将按照报文节点数量并行拆分,并将拆分后的报文片段传递给解析装置3。
解析装置3,用于对各个所述报文片段进行解析,得到对应的数据对。
其中,解析装置3用于对各个所述报文片段进行(并行或非并行地)解析,得到对应的数据对,即:全量读取所述报文片段,并遍历获取所述报文片段中的节点元素与值,然后按模型结构定义,将报文片段中的节点元素映射为数据对。
具体来说,所述解析装置3部署在分布式集群上,负责解析拆分后的报文片段,并将其处理成为数据对{报告编码,[存储路径,(元素节点,元素值)]}发送给合并装置4。每个处理节点在其处理能力范围内,可并行处理多份来自不同拆分任务的报文片段。另外,在业务高峰期,当现有的工作节点无法承受突然增加的工作量,可支持动态扩容。
合并装置4,用于将特征相同的所述数据对合并至同一报文数据组中。
其中,合并装置4用于将特征相同的各个所述数据对合并至相同的报文数据组中,并检测各个所述报文数据组的完整性,以确保各个所述报文数据组中的数据与所述XML报文数据完全对应。
所述合并装置4负责接收解析装置3处理后的数据对,根据解析结果的特征值合并同一报文数据组,格式为(元素节点,元素值)。随解析结果的到达,实时响应检测该接过所述报文节点的完整性。当同一份报文的所有节点的数据组均被接收,所述合并装置4将进一步按存储路径分类。
存储装置5,用于存储各个所述报文数据组。
其中,存储装置5用于将与所述XML报文数据完全对应的各个所述报文数据组进行存储。
所述装置负责分类存储经过拆分-解析-合并后的报文数据,对分布式XML数据处理系统处理的报文做持久化操作。
从上述描述可知,本申请实施例提供的分布式XML数据处理系统,根据XML报文节点灵活组合的特性,充分发挥分布式结构的优势,采用先解析后合并的方式并行处理报文节点数据,即同时对多份不同结构的XML报文进行拆分,再将XML报文结构映射为数据模型,最后进行合并存储。这种形成“多份报告、多个任务、多次分布合并”的分布式XML报文处理方法,使系统通过嵌套的键值构造,能够有效提高XML报文数据的处理效率及处理过程的可靠性,并能够有效提高XML报文数据的可扩展性和存储可靠性,以及有效降低数据冗余,能够克服传统处理方法效率低、冗余多、扩展性差的缺陷,可更新支持多种资产管理产品繁多财务报告解析处理的功能,从而提高相关数据系统运行及处理的效率,对于多层章节的复杂商业报告效果尤为明显。
为了提高数据接收效率,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理方法的一个实施例中,所述分布式XML数据处理系统中的接收装置1具体包含有如下内容:
数据接收单元,用于实时接收外部系统发送的XML报文数据,并根据接收的所述XML报文数据实时建立对应的接收任务。
数据封装单元,用于应用各个所述接收任务并行获取各自对应的所述XML报文数据以及该XML报文数据对应的报文类别元素,并基于该报文类别元素确定对应的报文定义模型,并将所述报文定义模型和对应的所述XML报文数据进行封装,得到与各份所述XML报文数据一一对应的封装数据。
为了提高数据拆分效率,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理系统的一个实施例中,所述分布式XML数据处理系统中拆分装置2具体包含有如下内容:
并行拆分单元,用于应用与各个所述接收任务一一对应的各个拆分任务并行对各份所述封装数据进行拆分,得到各份所述封装数据分别对应的多个报文片段。
为了提高数据解析的可靠性,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理系统的一个实施例中,所述分布式XML数据处理系统中的解析装置3具体包含有如下内容:
全量读取单元,用于应用至少一个解析节点全量读取各个所述报文片段,并获取各个所述报文片段中的节点元素和元素值。
数据对映射单元,用于根据各份所述XML报文数据对应的报文定义模型,将各个所述报文片段中的所述节点元素和元素值映射为对应的符合目标形式内容的数据对。
可以理解的是,所述数据对的目标形式内容包括:作为所述数据对的特征的报告编码、存储路径、元素节点和元素值。
为了提高数据合并的效率,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理系统的一个实施例中,所述分布式XML数据处理系统中的合并装置4具体包含有如下内容:
并行合并单元,用于应用与各个所述接收任务一一对应的各个合并任务并行将所述报告编码相同的数据对合并至同一报文数据组中,其中,所述报文数据组的格式内容包括:所述元素节点和元素值。
为了提高数据合并的完整性和可靠性,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理系统的一个实施例中,所述分布式XML数据处理系统中的合并装置4还具体包含有如下内容:
完整性检测单元,用于实时检测合并至各个所述报文数据组中的所述数据对与所述外部系统发送的XML报文数据之间是否完全对应,若是,则将各个所述报文数据组分别发送至对应的至少一个存储节点。
为了提高数据存储的效率性和可靠性,以进一步提高XML报文数据的处理效率及处理过程的可靠性,在本申请的分布式XML数据处理系统的一个实施例中,所述分布式XML数据处理系统中的存储模块5还具体包含有如下内容:
数据库存储单元,用于应用至少一个所述存储节点将各个所述报文数据组存储到至少一个数据库中。
可以理解的是,所述数据库中具体包含有:报文定义表、规则数据表、扩展元素表、可扩数据表、非结构化数据表和未定义数据表中的至少一个。
其中,所述报文定义表用于存储所述XML报文数据中的尚未配置的报文元素数据的报文元素。
所述规则数据表用于存储所述XML报文数据中的元素单值信息。
所述扩展元素表用于存储所述XML报文数据中的多维数据信息中的扩展的列元素。
所述可扩数据表用于存储所述XML报文数据中的多维数据信息中的元素值。
所述非结构化数据表用于存储所述XML报文数据中的非结构化的数据信息。
所述未定义数据表用于存储所述XML报文数据中的尚未配置的报文元素数据的元素值。
具体地,参见图9,存储装置5中包含了四种类型的信息存储单元:
单值信息存储单元:负责存储XML报文中最常见的元素单值信息,单值数据对应的元素名称与值是一一对应的关系。例如,报告名称、基金名称、币种等报文元素的信息。这类信息会按元素名称存储在数据库的规则数据表中。
多维信息存储单元:负责存储XML报文的多维数据信息。多维数据信息通常以不确定的数据列数的形式存在,需要将其扩展的列元素存放在扩展元素表中,元素值则相应地存放在可扩展数据表中。
非结构化信息存储单元:负责存储XML报文中非结构化的数据信息,常见的有以图片、附件形式存在的报文图表。这类信息需要按元素定义存放在非结构化数据表中。
未定义信息存储单元:负责维护和存储XML报文处理系统尚未配置的报文元素数据。对于XML报文处理系统尚未定义的元素,XML报文处理系统先在报文定义表中记录新的报文元素,然后将该元素对应的元素值存放在未定义数据表中,待后续维护人员更新其数据类别。
为了进一步说明本方案,本申请还提供一种应用上述分布式XML数据处理系统实现所述分布式XML数据处理方法的具体应用实例,具体包含有如下内容:
参见图10,所述分布式XML数据处理系统具体包含有:接收装置1、拆分装置2、解析装置3、合并装置4和存储装置5。其中,接收装置1和存储装置5分别连接外部系统,接收装置1负责接收待处理的报文队列,存储装置5连接数据库,负责将处理后得到的数据组存放到数据库中做持久化。为了提升系统并行处理的性能,本申请核心装置,即拆分装置2、解析装置3、合并装置4和存储装置5,采取分布式结构部署实现报文拆分-解析映射-合并-分类存储的过程,同时基于分布式架构的优势,各个处理节点处理资源统筹共享的状态,能即时响应完成部署的任务,并能在不同任务中实现未饱和复用,从而实现系统的高可用。
参见图11,所述的分布式XML数据处理方法的应用实例具体包含有如下内容:
步骤101:外部系统实时产生XML报文数据,通过本系统提供的收发端,逐份发送至分布式XML数据处理系统中。
步骤102:分布式XML数据处理系统每接收到一份报文数据,实时建立一个接收任务。该任务读取报文类别元素,根据类别元素获取报文定义模型,将报文定义模型与报文数据进行封装。
步骤103:根据报文结构,分布式XML数据处理系统将建立多个拆分任务并行地拆分报文。其中,拆分的最小粒度,即最小拆分片段的大小,以系统预设值为基础,再实际根据XML报文节点数据量微调切分位置。具体地,系统会找到距离设定切分位置最近的尾标签,使得切分位置处于前一元素的尾标签与后一元素的头标签之间,以确保XML元素完整性。
步骤104:切分完成后,系统获取当前空闲解析节点的处理能力,将拆分后的报文片段按处理量发送至各解析节点。
步骤105:各解析节点全量读取报文片段,遍历获取报文片段中的节点元素与值。然后按模型结构定义,将报文片段中的节点元素映射为数据对{报告编码,[存储路径,(元素节点,元素值)]}发送至合并装置,其中报告编码为一份报告的唯一标识。
步骤106:相同报告编码的所有数据节点均集齐后,合并节点将同一种存储方式的数据对合并为数据组(元素节点,元素值),并依次分发至相应的存储节点。
步骤107:各存储节点读取合并后的数据组,放入数据库做持久化操作。
图12是步骤103报文拆分的细化流程图,即一种分布式处理XML报文的方法及系统的数据切分流程。传统的数据切分方法一般是以字符数、数据长度为依据进行切分。由于XML语言有着鲜明的结构特点,不同于普通数据文件,故以字符数、数据长度为依据的数据切分方法并不适用于本方法及系统。分布式XML数据处理系统对此设计实现了一套基于XML报文结构的切分方法,它能够基于XML语言的结构特点,以元素节点为粒度进行为拆分。参见图12,所述数据切分方法包括:
步骤201:系统为每一份XML报文分配一项独立的拆分任务,负责拆分待处理的XML报文及其定义模型。需要说明的是,每个拆分任务仅处理单独一份XML报文的全量数据及其相应的报文定义模型,为避免冲突各拆分任务间不交互。
步骤202:各拆分任务全量读取报文后统计当前处理报文的元素节点数,用于在解析操作后核对节点数以验证该份报文的完整性。
具体地,对于每一个拆分任务,分布式XML数据处理系统将全量读取报文一次,统计当前处理报文所含元素节点数,统计方法选用流式XML处理技术SAX,其好处是SAX从根本上解决了DOM在解析XML文档时产生的资源占用大的问题,通过类似于流解析的技术,通读整个XML报文树,通过事件处理器来实现统计节点数的需求。
步骤203:按报文节点数/空闲解析节点数比例树状拆分报文。
具体地,为提高分布式处理的效率,分布式XML数据处理系统在划分报文前,将先与分布式解析节点集群建立通讯,访问并获取当前空闲的处理节点,在按报文节点数/空闲解析节点数的比例划分实例报文。如当前报文包含10个元素节点,空闲解析节点数为4个,则该份报文将被划分为4个报文片段,每个片段包含2-3个节点,参见图13。
需要说明的是,报文拆分的最小粒度以系统预设值为基础,再实际根据XML报文节点数据量校正切分位置。最终拆分后的报文片段,也将是一个独立的树形结构XML报文。以图13为例,若系统设置的拆分最小粒度为64K,而node5和node6的合计报文大小为56K,则不能将node5和node6拆分为一个片段,需要校正切分位置使该片段的报文大小超过64K,这么设计是为了,防止单个处理节点处理的片段报文过小,避免资源过度分配。最终,上述报文将被拆分成为下述四个片段:
报文片段1:root,node1,node2。
报文片段2:node3,node4。
报文片段3:node5,node6,node7。
报文片段4:node8,node9,node10。
图14是本申请步骤105报文解析的细化流程图。如图14所示,包括:
步骤301:全量读取报文片段,遍历报文片段各节点。
具体地,接收到解析任务后,分布式XML数据处理系统各解析节点将全量读取该段报文片段,把数据信息全量缓存在节点内存中,遍历获取报文片段的各节点,便于后续按报文元素路径读取所有有效元素的报文值。
需要说明的是,将整个报文片段全量放在内存中好处是,可供片段中多个节点解析处理重复使用。而不是每解析一个节点内存反复存放相关片段。在本申请场景下,全量缓存解析处理效率更高。
步骤302:按模型结构依次将报文节点映射为报文数据对。分布式XML数据处理系统将依次从报文定义模型中获取需要解析的节点,采用XPath解析技术,从报文片段中获取相应的节点内容值。
具体地,对于报文片段的报文元素节点,分布式XML数据处理系统除了获取“(元素节点,元素值)”之外,还将从定义模型中获取其定义的存储路径,便于后续分类存储。最终,单个报文元素将获得的映射解析结果为“{报告编码,[存储路径,(元素节点,元素值)]}”形式的数据对。
步骤303:将映射后的数据对发送至合并节点。
具体地,当节点完成一份报文片段的映射解析后,各解析节点将即时把该片段的所有映射结果,即数据对,发送至合并节点进行处理。
图15是本申请步骤106合并任务的细化流程图。如图15所示,包括:
步骤401:合并节点实时接收来自个解析节点处理完成的数据对,然后将相同主键,即“报告编码”相同的数据对汇聚成一个集合。
步骤402:检查当前报文是否存在数据缺失节点。
每当一个合并任务接收到同一报文编号的新数据对,将对当前报文发起检查,统计其已收到的数据对是否已达到报文节点数总量。报文节点数总量由步骤202记录在系统变量中。
当已收到的数据对达到报文节点数总量时,该合并任务将继续执行至下一步骤。当已收到的数据对未达到报文节点数总量时,该合并任务将继续等待剩余节点完成解析。
步骤403:按存储类别分配各存储节点存储数据组。
当一份报文的全部数据节点到期后,合并任务将按照报表编号和将相同存储路径的数据对成为“(元素节点,元素值)”格式的数据组,并分发至相应存储路径的存储节点。
为进一步说明报文节点数据在各步骤中的流转,图16以三份原始报文A、B、C为例说明报文拆分-解析-合并的全流程。
从上述描述可知,本申请实施例通过上述技术方案,实现了一种分布式的数据报文处理方法及系统,利用分布式结构的优势,将完整的源数据拆分为更易于解析的报文片段,并再通过存储方式归类,分节点处理不同类型的数据,同步支持报文结构的更新处理,从而提高系统的处理性能和可延展性,其优点在于:
1、本申请分布式并行处理数据,提高系统运行速度,可快速响应批量大文件接口的请求,当数据量达到一定程度时,效率将明显高效于单机串行处理。
2、通过数据纵向扩展,有效减少数据冗余,对报表数据存储进行了有机整合,使数据结构满足范式,避免数据的冗余存放。
3、本申请支持不同行业报文的集中处理,系统适应性强,可快速响应市场规范的变动,支持对已存在的报表结构或元素变动进行扩充更新。
4、本申请有效提高系统维护效率,对于同一种类的报表数据采用可配置化的方式,有效降低代码冗余,提高系统开发效率及复用性,对于多层章节的复杂商业报告效果尤为明显。
本申请的实施例还提供能够实现上述实施例中的分布式XML数据处理方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现分布式XML数据处理系统以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例分布式XML数据处理方法的实施例及分布式XML数据处理装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图17为本申请实施例的电子设备600的系统构成的示意框图。如图17所示,该电子设备600可以包括中央处理器100和存储器140;存储器140耦合到中央处理器100。值得注意的是,该图是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,分布式XML数据处理功能可以被集成到中央处理器100中。其中,中央处理器100可以被配置为进行如下控制:
步骤10:异步且并发地接收XML报文数据,并将所述XML报文数据并行拆分为多个报文片段。
步骤20:对各个所述报文片段进行解析,得到对应的数据对。
步骤30:将特征相同的所述数据对合并至同一报文数据组中,并存储各个所述报文数据组。
从上述描述可知,本申请的实施例提供的电子设备,根据XML报文节点灵活组合的特性,充分发挥分布式结构的优势,采用先解析后合并的方式并行处理报文节点数据,即同时对多份不同结构的XML报文进行拆分,再将XML报文结构映射为数据模型,最后进行合并存储。这种形成“多份报告、多个任务、多次分布合并”的分布式XML报文处理方法,使系统通过嵌套的键值构造,能够有效提高XML报文数据的处理效率及处理过程的可靠性,并能够有效提高XML报文数据的可扩展性和存储可靠性,以及有效降低数据冗余,能够克服传统处理方法效率低、冗余多、扩展性差的缺陷,可更新支持多种资产管理产品繁多财务报告解析处理的功能,从而提高相关数据系统运行及处理的效率,对于多层章节的复杂商业报告效果尤为明显。
在另一个实施方式中,分布式XML数据处理装置可以与中央处理器100分开配置,例如可以将分布式XML数据处理装置配置为与中央处理器100连接的芯片,通过中央处理器的控制来实现分布式XML数据处理功能。
如图17所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图17中所示的所有部件;此外,电子设备600还可以包括图17中没有示出的部件,可以参考现有技术。
如图17所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的分布式XML数据处理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的分布式XML数据处理方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤10:异步且并发地接收XML报文数据,并将所述XML报文数据并行拆分为多个报文片段。
步骤20:对各个所述报文片段进行解析,得到对应的数据对。
步骤30:将特征相同的所述数据对合并至同一报文数据组中,并存储各个所述报文数据组。
从上述描述可知,本申请的实施例提供的计算机可读存储介质,根据XML报文节点灵活组合的特性,充分发挥分布式结构的优势,采用先解析后合并的方式并行处理报文节点数据,即同时对多份不同结构的XML报文进行拆分,再将XML报文结构映射为数据模型,最后进行合并存储。这种形成“多份报告、多个任务、多次分布合并”的分布式XML报文处理方法,使系统通过嵌套的键值构造,能够有效提高XML报文数据的处理效率及处理过程的可靠性,并能够有效提高XML报文数据的可扩展性和存储可靠性,以及有效降低数据冗余,能够克服传统处理方法效率低、冗余多、扩展性差的缺陷,可更新支持多种资产管理产品繁多财务报告解析处理的功能,从而提高相关数据系统运行及处理的效率,对于多层章节的复杂商业报告效果尤为明显。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (20)

1.一种分布式XML数据处理方法,其特征在于,包括:
异步且并发地接收XML报文数据,并将所述XML报文数据并行拆分为多个报文片段;
对各个所述报文片段进行解析,得到对应的数据对;
将特征相同的所述数据对合并至同一报文数据组中,并存储各个所述报文数据组。
2.根据权利要求1所述的分布式XML数据处理方法,其特征在于,所述异步且并发地接收XML报文数据,包括:
实时接收外部系统发送的XML报文数据,并根据接收的所述XML报文数据实时建立对应的接收任务;
应用各个所述接收任务并行获取各自对应的所述XML报文数据以及该XML报文数据对应的报文类别元素,并基于该报文类别元素确定对应的报文定义模型,并将所述报文定义模型和对应的所述XML报文数据进行封装,得到与各份所述XML报文数据一一对应的封装数据。
3.根据权利要求2所述的分布式XML数据处理方法,其特征在于,所述将所述XML报文数据并行拆分为多个报文片段,包括:
应用与各个所述接收任务一一对应的各个拆分任务并行对各份所述封装数据进行拆分,得到各份所述封装数据分别对应的多个报文片段。
4.根据权利要求2所述的分布式XML数据处理方法,其特征在于,所述对各个所述报文片段进行解析,得到对应的数据对,包括:
应用至少一个解析节点全量读取各个所述报文片段,并获取各个所述报文片段中的节点元素和元素值;
根据各份所述XML报文数据对应的报文定义模型,将各个所述报文片段中的所述节点元素和元素值映射为对应的符合目标形式内容的数据对。
5.根据权利要求4所述的分布式XML数据处理方法,其特征在于,所述数据对的目标形式内容包括:作为所述数据对的特征的报告编码、存储路径、元素节点和元素值。
6.根据权利要求5所述的分布式XML数据处理方法,其特征在于,所述将特征相同的所述数据对合并至同一报文数据组中,包括:
应用与各个所述接收任务一一对应的各个合并任务并行将所述报告编码相同的数据对合并至同一报文数据组中,其中,所述报文数据组的格式内容包括:所述元素节点和元素值。
7.根据权利要求2所述的分布式XML数据处理方法,其特征在于,在所述存储各个所述报文数据组之前,还包括:
实时检测合并至各个所述报文数据组中的所述数据对与所述外部系统发送的XML报文数据之间是否完全对应,若是,则将各个所述报文数据组分别发送至对应的至少一个存储节点。
8.根据权利要求7所述的分布式XML数据处理方法,其特征在于,所述存储各个所述报文数据组,包括:
应用至少一个所述存储节点将各个所述报文数据组存储到至少一个数据库中。
9.根据权利要求8所述的分布式XML数据处理方法,其特征在于,所述数据库包括:报文定义表、规则数据表、扩展元素表、可扩数据表、非结构化数据表和未定义数据表中的至少一个;
其中,所述报文定义表用于存储所述XML报文数据中的尚未配置的报文元素数据的报文元素;
所述规则数据表用于存储所述XML报文数据中的元素单值信息;
所述扩展元素表用于存储所述XML报文数据中的多维数据信息中的扩展的列元素;
所述可扩数据表用于存储所述XML报文数据中的多维数据信息中的元素值;
所述非结构化数据表用于存储所述XML报文数据中的非结构化的数据信息;
所述未定义数据表用于存储所述XML报文数据中的尚未配置的报文元素数据的元素值。
10.一种分布式XML数据处理系统,其特征在于,包括:
接收装置,用于异步且并发地接收XML报文数据,以及,拆分装置,用于将所述XML报文数据并行拆分为多个报文片段;
解析装置,用于对各个所述报文片段进行解析,得到对应的数据对;
合并装置,用于将特征相同的所述数据对合并至同一报文数据组中,以及,存储装置,用于存储各个所述报文数据组。
11.根据权利要求10所述的分布式XML数据处理系统,其特征在于,所述接收装置包括:
数据接收单元,用于实时接收外部系统发送的XML报文数据,并根据接收的所述XML报文数据实时建立对应的接收任务;
数据封装单元,用于应用各个所述接收任务并行获取各自对应的所述XML报文数据以及该XML报文数据对应的报文类别元素,并基于该报文类别元素确定对应的报文定义模型,并将所述报文定义模型和对应的所述XML报文数据进行封装,得到与各份所述XML报文数据一一对应的封装数据。
12.根据权利要求11所述的分布式XML数据处理系统,其特征在于,所述拆分装置包括:
并行拆分单元,用于应用与各个所述接收任务一一对应的各个拆分任务并行对各份所述封装数据进行拆分,得到各份所述封装数据分别对应的多个报文片段。
13.根据权利要求11所述的分布式XML数据处理系统,其特征在于,所述解析装置包括:
全量读取单元,用于应用至少一个解析节点全量读取各个所述报文片段,并获取各个所述报文片段中的节点元素和元素值;
数据对映射单元,用于根据各份所述XML报文数据对应的报文定义模型,将各个所述报文片段中的所述节点元素和元素值映射为对应的符合目标形式内容的数据对。
14.根据权利要求13所述的分布式XML数据处理系统,其特征在于,所述数据对的目标形式内容包括:作为所述数据对的特征的报告编码、存储路径、元素节点和元素值。
15.根据权利要求14所述的分布式XML数据处理系统,其特征在于,所述合并装置包括:
并行合并单元,用于应用与各个所述接收任务一一对应的各个合并任务并行将所述报告编码相同的数据对合并至同一报文数据组中,其中,所述报文数据组的格式内容包括:所述元素节点和元素值。
16.根据权利要求11所述的分布式XML数据处理系统,其特征在于,所述合并装置还包括:
完整性检测单元,用于实时检测合并至各个所述报文数据组中的所述数据对与所述外部系统发送的XML报文数据之间是否完全对应,若是,则将各个所述报文数据组分别发送至对应的至少一个存储节点。
17.根据权利要求16所述的分布式XML数据处理系统,其特征在于,所述存储模块包括:
数据库存储单元,用于应用至少一个所述存储节点将各个所述报文数据组存储到至少一个数据库中。
18.根据权利要求17所述的分布式XML数据处理系统,其特征在于,所述数据库包括:报文定义表、规则数据表、扩展元素表、可扩数据表、非结构化数据表和未定义数据表中的至少一个;
其中,所述报文定义表用于存储所述XML报文数据中的尚未配置的报文元素数据的报文元素;
所述规则数据表用于存储所述XML报文数据中的元素单值信息;
所述扩展元素表用于存储所述XML报文数据中的多维数据信息中的扩展的列元素;
所述可扩数据表用于存储所述XML报文数据中的多维数据信息中的元素值;
所述非结构化数据表用于存储所述XML报文数据中的非结构化的数据信息;
所述未定义数据表用于存储所述XML报文数据中的尚未配置的报文元素数据的元素值。
19.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至9任一项所述的分布式XML数据处理方法的步骤。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9任一项所述的分布式XML数据处理方法的步骤。
CN201910588982.3A 2019-07-02 2019-07-02 分布式xml数据处理方法及系统 Active CN110297944B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910588982.3A CN110297944B (zh) 2019-07-02 2019-07-02 分布式xml数据处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910588982.3A CN110297944B (zh) 2019-07-02 2019-07-02 分布式xml数据处理方法及系统

Publications (2)

Publication Number Publication Date
CN110297944A true CN110297944A (zh) 2019-10-01
CN110297944B CN110297944B (zh) 2022-02-11

Family

ID=68029852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910588982.3A Active CN110297944B (zh) 2019-07-02 2019-07-02 分布式xml数据处理方法及系统

Country Status (1)

Country Link
CN (1) CN110297944B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078337A (zh) * 2019-11-27 2020-04-28 用友网络科技股份有限公司 样式调整方法、系统及计算机可读存储介质
CN112256469A (zh) * 2020-10-29 2021-01-22 贵州电网有限责任公司信息中心 一种基于跨系统协同场景的问题智能定位方法
CN112822190A (zh) * 2021-01-05 2021-05-18 银清科技有限公司 报文维护方法及装置
CN113032003A (zh) * 2021-04-08 2021-06-25 平安国际智慧城市科技股份有限公司 开发文件导出方法、装置、电子设备及计算机存储介质
CN114281922A (zh) * 2021-12-23 2022-04-05 上海柯林布瑞信息技术有限公司 基于Key-Value表的非结构化数据存储方法、装置及电子设备
CN114513503A (zh) * 2022-02-16 2022-05-17 中银金融科技有限公司 文件的下载方法、装置、电子设备及计算机存储介质
CN118555252A (zh) * 2024-06-07 2024-08-27 北京开源芯片研究院 一种路由方法、系统和电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495722A (zh) * 2011-10-18 2012-06-13 成都康赛电子科大信息技术有限责任公司 多核分片xml并行解析方法
CN105930375A (zh) * 2016-04-13 2016-09-07 云南财经大学 一种基于xbrl文件的数据挖掘方法
US20180004826A1 (en) * 2016-06-29 2018-01-04 Emc Corporation Ingestion manager for analytics platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495722A (zh) * 2011-10-18 2012-06-13 成都康赛电子科大信息技术有限责任公司 多核分片xml并行解析方法
CN105930375A (zh) * 2016-04-13 2016-09-07 云南财经大学 一种基于xbrl文件的数据挖掘方法
US20180004826A1 (en) * 2016-06-29 2018-01-04 Emc Corporation Ingestion manager for analytics platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贾少攀: "基于hadoop的XBRL数据分析系统设计与实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078337A (zh) * 2019-11-27 2020-04-28 用友网络科技股份有限公司 样式调整方法、系统及计算机可读存储介质
CN111078337B (zh) * 2019-11-27 2023-08-29 用友网络科技股份有限公司 样式调整方法、系统及计算机可读存储介质
CN112256469A (zh) * 2020-10-29 2021-01-22 贵州电网有限责任公司信息中心 一种基于跨系统协同场景的问题智能定位方法
CN112822190A (zh) * 2021-01-05 2021-05-18 银清科技有限公司 报文维护方法及装置
CN113032003A (zh) * 2021-04-08 2021-06-25 平安国际智慧城市科技股份有限公司 开发文件导出方法、装置、电子设备及计算机存储介质
CN113032003B (zh) * 2021-04-08 2024-04-02 深圳赛安特技术服务有限公司 开发文件导出方法、装置、电子设备及计算机存储介质
CN114281922A (zh) * 2021-12-23 2022-04-05 上海柯林布瑞信息技术有限公司 基于Key-Value表的非结构化数据存储方法、装置及电子设备
CN114513503A (zh) * 2022-02-16 2022-05-17 中银金融科技有限公司 文件的下载方法、装置、电子设备及计算机存储介质
CN114513503B (zh) * 2022-02-16 2024-04-02 中银金融科技有限公司 文件的下载方法、装置、电子设备及计算机存储介质
CN118555252A (zh) * 2024-06-07 2024-08-27 北京开源芯片研究院 一种路由方法、系统和电子设备及存储介质

Also Published As

Publication number Publication date
CN110297944B (zh) 2022-02-11

Similar Documents

Publication Publication Date Title
CN110297944A (zh) 分布式xml数据处理方法及系统
CN109254854A (zh) 异步调用方法、计算机装置及存储介质
CN106815254A (zh) 一种数据处理方法和装置
CN104239088B (zh) 对分布式计算机网络的节点执行操作
CN105183299A (zh) 一种人机界面服务处理系统和方法
CN109857524B (zh) 流式计算方法、装置、设备及计算机可读存储介质
CN103067486B (zh) 基于PaaS平台的大数据处理方法
CN111464352A (zh) 调用链路数据处理方法及装置
CN114911598A (zh) 任务调度方法、装置、设备以及存储介质
CN114710571B (zh) 数据包处理系统
CN111984505A (zh) 一种运维数据采集引擎及采集方法
US20220148422A1 (en) Annunciator control method, electronic device and system
CN113760242B (zh) 一种数据处理方法、装置、服务器和介质
CN118113766A (zh) 批量数据处理方法、装置、设备及介质
CN116402318B (zh) 面向配电网的多级算力资源分配方法、装置及网络架构
CN111275376B (zh) 基于无人仓虚拟现实仿真实现的系统及方法
CN110297945A (zh) 基于xbrl的数据信息处理方法及系统
CN113625936A (zh) 数据处理方法、装置、存储介质及设备
CN107395765B (zh) 一种分布式文件系统、网络通信方法、平台及其创建方法
CN109190969A (zh) 称重设备管控方法、系统、称重设备管理中间件及介质
CN111401819B (zh) 系统间数据推送方法及系统
CN114070889A (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
CN106095534A (zh) 一种计算任务处理方法和系统
CN108259527B (zh) 基于代理的业务处理方法、装置及网元设备
CN104572859A (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