Xml文档的存储方法

文档序号:6634821阅读:216来源:国知局
Xml文档的存储方法
【专利摘要】本发明提供一种XML文档的存储方法。该方法有效利用云计算平台上分布式存储系统HBase,对于具备小型、格式相似特征的海量XML文档的存储问题提出一种新的存储方法。在新的存储方法中,本发明提出一种海量XML到HBase的双向数据映射模型,在构造该模型过程中,提出一种集路径信息和节点位置信息为一体的新的XML文档节点编码方式,该编码方式既拥有优异的节点关系判断能力,又在一定程度上解决了传统XML编码方式在编码更新方面存在的不足,同时为相似结构的海量XML的压缩存储提供良好的支持。
【专利说明】XML文档的存储方法

【技术领域】
[0001] 本发明涉及数据库技术,尤其涉及一种可扩展标记语言(extensibleMarkup Language,XML)文档的存储方法。

【背景技术】
[0002] XML凭借其自描述性、可扩展性和半结构化等特点,已经成为最受欢迎的信息表示 和数据交换的标准,并在各个领域得到了广泛的支持和应用。特别是在物联网环境下,数 据大多为具有一定意义的数字或文本,而XML在语法上的良好的半结构化信息表达能力为 其成为物联网数据交换标准提供了很好的基础。目前流行的注诸如BITXML、物理标示语言 (PhysicalMarkupLanguage,PML)等物联网数据交换标准都是以XML为基础。然而,数以 百万计的传感器网络或智能终端时时刻刻都在产生数据,单个数据文件一般都比较小,这 使得物理网后端的数据处理平台需要能够应对海量的小规模XML文件的存储和查询检索 工作,传统的处理方式在性能等方面存在着瓶颈。
[0003]目前,国际上对于XML数据的存储和检索的研宄主要集中在三个方面:第一种是 以关系数据库为核心的数据存储和检索方式,这种方式一般需要将XML数据通过一定的映 射方式转换为关系模型,并分别存储在关系数据库中,针对XML中的节点进行编码,通过关 系约束将XML文件按照关系模型分表存储;这种方式对海量数据支持不足,当文件数量上 升到一定程度,其性能瓶颈越凸显,此外由于采用关系映射,一定程度上会造成信息丢失; 第二种是以NativeXML数据库为核心的数据存储和检索方式,这种方式由于是采用类似文 件式的存储方式,仍然无法有效解决海量数据下的存储和检索;第三种则是在分布式环境 下,采用非关系型数据库(NotOnlyStructuredQueryLanguage,NoSQL)为核心的存储和 检索方式,这种方式以其良好的可扩展性为立足点,能够对海量数据提供高性能的存储和 查询支持,逐渐成为近年来研宄的一个热点,然而,由于一般分布式环境的复杂性,带来了 诸如负载平衡、灾备恢复等问题,在部署和维护上也较为复杂。
[0004] 在此基础上,云计算技术开始飞速发展。由于云计算技术在海量数据存储和检索 中的优势,采用云计算平台作为物联网后端的数据管理平台是一种趋势。然而,目前为止, 还没有出现针对存储具备小型且格式相似特征的XML文档的成熟的解决方案。


【发明内容】

[0005] 本发明提供一种XML文档的存储方法,以解决具备小型且格式相似特征的XML文 档的存储问题。
[0006] 本发明提供一种可扩展标记语言XML文档的存储方法,包括:
[0007] 将所述XML文档D建模为文档树T;其中,文档树为T:T= (V,V。,Ε,Σ,P, <,path,parent,value),其中,V表示所述XML文档D中的节点集合,Vtl表示所述XML文 档D中的根节点,E表示所述XML文档D中父子约束关系集合,有穷字母表Σ表示所述 XML文档D中所有节点名称的集合,P表示所述XML文档D中祖先路径约束集合,<表示 定义在P上的前缀关系,函数path:V-P,表示Vver,.path(V) eP返回节点V的祖先路 径,函数parent:V-V表示Vve 返回节点V的父节点,其中= 0,函数 value:V」Ve-Vt表示VveFa |Fe,vaiue(v)返回在所述XML文档D中节点V的Text值;
[0008] 按照预设编码规则对所述XML文档D进行编码;
[0009] 按照预设映射规则对所述XML文档D进行映射存储。
[0010] 如上所述的方法,其中:所述节点集合V=AttrUElemUText,其中,Attr表示 所述XML文档D中所有属性节点的集合Va,Elem表示所述XML文档D中所有元素节点的集 合I,Text表示所述XML文档D中所有文本节点的集合Vt,U表示交集。
[0011] 如上所述的方法,其中,所述按照预设编码规则对所述XML文档D进行编码,包 括:
[0012] 按照深度优先遍历方式,对所述XML文档D进行编码。
[0013] 如上所述的方法,其中,所述预设编码规则包括:
[0014] 节点编码code (V)=code (path (V))·iv;code (path (V))表示节点V对应的路径 的路径编码,iv表示所述节点V在当前层的编码;
[0015] 路径编码code(path(v)) =code(U) · ipath(v),其中,3(〃,v)e£ ;code(U)表示路径u 对应的节点的父节点的节点编码,ipathW表示所述路径u在当前层的编码。
[0016] 如上所述的方法,其中,所述节点编码之间、以及所述路径编码之间均存在前缀关 系,具体为:
[0017] 若codel与code2之间满足关系式code2 =codel.i,则判断出codel是code2的 前缀编码;其中,codel和code2分别表示两个所述节点编码,或者,codel和code2分别表 示两个所述路径编码。
[0018] 如上所述的方法,其中,在属性节点的属性名称前添加符号@。
[0019] 如上所述的方法,其中,所述预设编码规则具体包括:
[0020] 所述根节点%的编码为1,判断所述根节点VC1所在路径是否包含所述属性节点;
[0021] 若包含,则按照所述属性节点在所述文档树中的顺序进行编码,并记录到编码记 录表中。
[0022] 如上所述的方法,其中,所述按照所述属性节点在所述文档树中的顺序进行编码, 具体包括:
[0023] 对于Vve 乙IK,若code(paiA(v)> = 0,贝Ijpath(V)是节点parent(V)的第i个被编码 的孩子路径种类;所述孩子路径种类是指所述节点V的所有孩子节点中,同名孩子节点的 祖先路径所构成的路径种类;
[0024] 判断节点V是否有孩子节点,若是,对所述节点V的所述孩子节点进行编码;
[0025] 若判断出所述节点V没有所述孩子节点,则判断所述节点V是否有所述属性节 占.
[0026] 若判断出所述节点V有所述属性节点,则对所述属性节点进行编码;或者,若判断 出所述节点V没有所述属性节点,判断所述节点V是否有兄弟节点;
[0027] 若判断出所述节点V有所述兄弟节点,则对所述兄弟节点进行编码;或者,若判断 出所述节点V没有所述兄弟节点,则按照所述节点V的祖先路径,逆向回退到存在未编码兄 弟节点的祖先节点,对所述祖先节点的所述未编码兄弟节点进行编码;若按照所述节点V的所述祖先路径,逆向回退到所述根节点则编码结束。
[0028] 如上所述的方法,其中,所述按照所述属性节点在所述文档树中的顺序进行编码, 还包括:
[0029] 对于VveCIK,若c〇de(pa伙(v))#0,则参照所述编码记录表,判断所述节点V的 path(v)与parent(v)之间,是否满足关系式:Code(parent(v)) <Code(path(v));
[0030] 若不满足,则重复所述判断节点V是否有孩子节点的操作;
[0031] 若满足,则code(v) = (code(path(v)))·j,其中je[1,2, 3......)表示所述节点 V是所述节点V对应祖先路径种类下的同名兄弟节点中从1开始计数的顺序,完成对所述节 点V的编码后,重复所述判断节点V是否有孩子节点的操作。
[0032] 如上所述的方法,其中,所述按照预设映射规则对所述XML文档D进行映射存储, 包括:
[0033] 提取所述XML文档D对应的所有code(V)和value(V),将不同code(V)的作为编 码-值CodeToValue表的列名,将value(V)作为所述CodeToValue表中,与code(V)对应 的列的列值,一个所述XML文档D对应所述CodeToValue表中的一行,并将所述XML文档 D对应的文档名字作为行关键字;其中,所述CodeToValue表用于存放所述XML文档D中 code(V)和对应的value(V);
[0034] 提取所有的节点VeV-Text对应的path(V)及code(V),将不同path(V)的作为 路径-编码PathToCode表的列名,每个path(V)对应的所有code(V)用预设间隔符间隔, 所述XML文档D对应一个所述PathToCode表,并作为数据库HBase中的一行进行存储;其 中,所述PathToCode表用于存放所述XML文档D中path(V)和对应的code(V)。
[0035] 本发明提供的XML文档的存储方法,有效利用云计算平台上分布式存储系统 HBase,对于具备小型、格式相似特征的海量XML文档的存储问题提出一种新的存储方法。 在新的存储方法中,本发明提出一种海量XML到HBase的双向数据映射模型,在构造该模型 过程中,提出一种集路径信息和节点位置信息为一体的新的XML文档节点编码方式,该编 码方式既拥有优异的节点关系判断能力,又在一定程度上解决了传统XML编码方式在编码 更新方面存在的不足,同时为相似结构的海量XML的压缩存储提供良好的支持。

【专利附图】

【附图说明】
[0036] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
[0037] 图1为本发明XML文档的存储方法实施例一的流程图;
[0038] 图2a为本发明XML文档的存储方法实施例中实例文档1对应的文档树的示意图;
[0039] 图2b为本发明XML文档的存储方法实施例中实例文档2对应的文档树的示意图;
[0040] 图3a为对图2a中的文档树进行编码后的示意图;
[0041] 图3b为对图3a中的文档树进行编码后的示意图。

【具体实施方式】
[0042] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 图1为本发明XML文档的存储方法实施例一的流程图。如图1所示,本实施例提 供的方法具体可以包括:
[0044] 步骤101、将所述XML文档D建模为文档树T;其中,文档树为T:T= (V,V(l,Ε,Σ,Ρ, <,path,parent,value),其中,V表示所述XML文档D中的节点集合,Vtl表示所述XML文 档D中的根节点,E表示所述XML文档D中父子约束关系集合,有穷字母表Σ表示所述 XML文档D中所有节点名称的集合,P表示所述XML文档D中祖先路径约束集合,<表示定 义在P上的前缀关系,函数path:V-P,表示Vvepath(V)eP返回节点V的祖先路径, 函数parent:V-V表示Vve「,parent(V)返回节点V的父节点,其中/?(re?i(vu) = 0,函数 value:V」Ve-Vt表示VveF; |Fe,value(v)返回在所述XML文档D中节点V的Text值。
[0045] 具体的,所述节点集合V=AttrUElemUText,其中,Attr表示所述XML文档D 中所有属性节点的集合Va,Elem表示所述XML文档D中所有元素节点的集合I,Text表示 所述XML文档D中所有文本节点的集合Vt,U表示交集。
[0046] ¥(|表示文档D中的根元素,VC1EV,VC1作为对应的文档树的根节点;E表示文档D中 父子约束关系的集合,是一个二元关系,即=r:,且E= {(u,V)|ueV,VeV,u是 V的父节点}。若3(〃,v)e£,可简写为u-V;有穷字母表Σ是D中所有节点名称的集合。
[0047] P是文档D中祖先路径约束的集合,P是一个多元关系,即 尸CΓuF2ur3u…ur|vi,P= {(v〇,V1,V2,· · ·,Vn)I(Vi,Vi+1)eE,1 彡i〈n}U{v0},表示V中 所有节点的路径构成的集合。具体来说,VvneF,其祖先路径约束(Vtl,V1,v2, ...,vn)eP表示从根节点Vci到节点V"的连续父子约束,即Vd-V^V1^V2,. ..,Vn,简写为 v。一V1^V2- ... -Vn。使用函数path:V-P返回XML节点的祖先路径约束,即当VeV, path(V) eP0
[0048] <是定义在P上的前缀关系,< =KP1,P2)Ipi=V。一VV2- ... -Vm,P2 =Pi-Vm+i,PieP,P2eP}。若H(PpP2)H,简写为Pi<P2。函数path:V-P,VveV, path(V)eP返回节点v的祖先路径。函数parent:V-V,Vveparent(V)返回节点 V的父节点,注意押观咖。)=0,即若u-v,则parent(v) =u。函数value:Va|Ve-Vt, ClK,value(V)返回在XML文档中节点v的Text值。
[0049] 对于示例文档1进行建模为文档树后,可以表示为如图2a所示。其中,示例文档 1为:
[0050] <?xmlyersion=" 1.0"?> <dblp> <time>201l</time> <articleindate="2011-05-31"> <author>P〈/author〉 <author>P.S</author> <ti11e>CIoudcomputing</ti11e> 〈/article〉 <articlekey="SasikalalI"mdate="2011-09-23"> </article> </dblp>
[0051] 对于示例文档2进行建模为文档树后,可以表示为如图2b所示。其中,示例文档 2为:
[0052] <?xmlversion=" 1.0"?> <dblp> <time>2012</time>
[0053] <articlemdate="2012-05-1 "> <author>A〈/author〉 <author>B〈/author〉 <author>C〈/author〉 <tit!e>CIoudcomputing</title> </article> 〈book> <author>lVi</author> <title>ThinkinginJAVA</title> 〈/'book〉 〈articlemdate="2012-09-3 "> </article> </dblp>
[0054] 步骤102、按照预设编码规则对所述XML文档D进行编码。
[0055] 具体的,本步骤中,按照深度优先遍历方式,对所述XML文档D中VaIVe节点进行编 码。根据深度优先编码方式的特点,可得如下结论:
[0056] 对VveK-Texi进行编码时,其父节点parent(V) -定已经编码;VP1,VP2,若P1 <P2,则对P2进行编码时,P 定已经编码。
[0057] 首先,定义编码函数code:Va|VjP-Code,其中Code表示VaIVjP对应的编码。具 体来说,Code(VaIVe) -Code表示当输入为节点VaIVJ寸,输出值为节点对应的编码(简称 节点编码),code(P) -Code表示当输入为某节点对应的祖先路径约束时,输出值为该祖先 路径对应的编码,即路径编码。
[0058] 其次,定义编码规则,在编码时,属性节点与元素节点同等对待,两者遵守相同的 编码规则,唯一不同之处在于属性节点的命名规则是在属性名称前添加符号@。
[0059] 除根节点外的节点编码和路径编码均由三部分组成。即,节点编码Code(V)= code(path(V))·iv;code(path(V))表示节点V对应的路径的路径编码,iv表示所述节点 V在当前层的编码;所述节点V在当前层的编码表示所述节点V是同一祖先路径下的同 名兄弟节点中从1开始计数的顺序i;路径编码code(path(v)) =code(u).ipath(v),其中, 彐(《,v)e五;code(u)表示路径垃对应的节点的父节点的节点编码,ipath(v)表示所述路径u在当前层的编码;所述路径u在当前层的编码表示在所述路径u对应节点的父亲节点中,设 定所有同名子路径作为一个路径种类,则所述路径u所对应的路径种类在所有兄弟路径中 路径种类从1开始计数的路径种类顺序值i。
[0060] 需要说明的是,所述节点编码之间、以及所述路径编码之间均存在前缀关系,具体 为:若codel与code2之间满足关系式code2 =codel.i,则判断出codel是code2的前缀 编码;其中,codel和code2分别表示两个所述节点编码,或者,codel和code2分别表示两 个所述路径编码。由于该定义与文档建立成文档树时定义的P上的前缀关系<实质性含义 相同,所以此处也用<表示。3( (:'?也丨,(:'?心2)-:表示为Codel<Code2。
[0061] 所述预设编码规则具体包括:所述根节点%的编码为1,判断所述根节点VC1所在 路径是否包含所述属性节点;若包含,则按照所述属性节点在所述文档树中的顺序进行编 码,并记录到编码记录表中;可以理解的是,若所述根节点Vtl所在路径不包含所述属性节 点,则编码结束。
[0062]具体的,对于Vve C I Fe,若c〇de(paiA(v)) = 0,则path (V)是节点parent (V)的第i 个被编码的孩子路径种类;所述孩子路径种类是指所述节点V的所有孩子节点中,同名孩 子节点的祖先路径所构成的路径种类;也就是说,VveFJFe,若存在V-V1, V-V2,当V1 和乂2是同名节点时,Path(V1)和path(v2)属于节点V的同一个孩子路径种类,当vJPV2F 是同名节点时,Path(V1)和path(v2)和属于节点V的不同的孩子路径种类。
[0063] 判断节点V是否有孩子节点,若是,对所述节点V的所述孩子节点进行编码;
[0064] 若判断出所述节点V没有所述孩子节点,则判断所述节点V是否有所述属性节 占.
[0065] 若判断出所述节点V有所述属性节点,则对所述属性节点进行编码;或者,若判断 出所述节点V没有所述属性节点,判断所述节点V是否有兄弟节点;
[0066] 若判断出所述节点V有所述兄弟节点,则对所述兄弟节点进行编码;或者,若判断 出所述节点V没有所述兄弟节点,则按照所述节点V的祖先路径,逆向回退到存在未编码兄 弟节点的祖先节点,对所述祖先节点的所述未编码兄弟节点进行编码;若按照所述节点V 的所述祖先路径,逆向回退到所述根节点则编码结束。
[0067] 进一步地,对于Vve匕IK,若code(part(v)) # 0,贝Ij参照所述编码记录表,判断 所述节点V的path(v)与parenUv)之间,是否存在前缀关系,即是否满足关系式:Code(parent(V)) <Code(path(v));
[0068] 若不满足,则重复所述判断节点v是否有孩子节点的操作;
[0069] 若满足,则code(v) = (code(path(v)))·j,其中je[1,2, 3......)表示所述节点 V是所述节点V对应祖先路径种类下的同名兄弟节点中从1开始计数的顺序,完成对所述节 点V的编码后,重复所述判断节点V是否有孩子节点的操作。
[0070] 按照本步骤对图2a所示的文档树进行编码的过程中,所产生的中间结果如图3a 所示;按照本步骤对图2b所示的文档树进行编码的过程中,所产生的中间结果如图3b所 不O
[0071] 步骤103、按照预设映射规则对所述XML文档D进行映射存储。
[0072] 本步骤中,所述按照预设映射规则对所述XML文档D进行映射存储,具体可以包 括:
[0073] 提取所述XML文档D对应的所有code(V)和value(V),将不同code(V)的作为编 码-值CodeToValue表的列名,将value(V)作为所述CodeToValue表中,与code(V)对应 的列的列值,一个所述XML文档D对应所述CodeToValue表中的一行,并将所述XML文档 D对应的文档名字作为行关键字;其中,所述CodeToValue表用于存放所述XML文档D中 code(V)和对应的value(V)。可以理解的是,如果code(V)不存在,贝Ij开辟一个新的列,如 果code(V)已经存在,贝Ij直接存储value(V)作为列code(V)对应的值。
[0074] 提取所有的节点VeV-Text对应的path(V)及code(V),将不同path(V)的作为 路径-编码PathToCode表的列名,每个path(V)对应的所有code(V)用预设间隔符间隔, 所述XML文档D对应一个所述PathToCode表,并作为数据库HBase中的一行进行存储;其 中,所述PathToCode表用于存放所述XML文档D中path(V)和对应的code(V)。
[0075] 例如,对于示例文档1,提取示例文档1对应的所有的code(V)和对应的value(V) 存入数据库Hbase的CodeToValue表中第一行。该行的数据可以如表一所示。
[0076] 表一
[0077]

【权利要求】
1. 一种可扩展标记语言XML文档的存储方法,其特征在于,包括: 将所述XML文档D建模为文档树T;其中,文档树为T:T= (V,V(l,E,2,P, <,path,parent,value),其中,V表示所述XML文档D中的节点集合,表示所述XML文 档D中的根节点,E表示所述XML文档D中父子约束关系集合,有穷字母表2表示所述 XML文档D中所有节点名称的集合,P表示所述XML文档D中祖先路径约束集合,<表示 定义在P上的前缀关系,函数path:V-P,表示Vvepath(v)GP返回节点v的祖先路 径,函数parent:V-V表示Wer,/7are7tf(v)返回节点v的父节点,其中iwe?((vQ) = 0,函数 value:Va|Ve-Vt表示Vve|Fe,va/i/e(r)返回在所述XML文档D中节点v的Text值; 按照预设编码规则对所述XML文档D进行编码; 按照预设映射规则对所述XML文档D进行映射存储。
2. 根据权利要求1所述的方法,其特征在于: 所述节点集合V=AttrUElemUText,其中,Attr表示所述XML文档D中所有属性 节点的集合Va,Elem表示所述XML文档D中所有元素节点的集合I,Text表示所述XML文 档D中所有文本节点的集合Vt,U表示交集。
3. 根据权利要求2所述的方法,其特征在于,所述按照预设编码规则对所述XML文档D 进行编码,包括: 按照深度优先遍历方式,对所述XML文档D进行编码。
4. 根据权利要求3所述的方法,其特征在于,所述预设编码规则包括: 节点编码code(v) =code(path(v)).iv;code(path(v))表示节点v对应的路径的路 径编码,iv表示所述节点v在当前层的编码; 路径编码code(path(v)) =code(u) ?ipath(v),其中,3(?,v)e£ ;c〇de(u)表示路径u对 应的节点的父节点的节点编码,ipathW表示所述路径u在当前层的编码。
5. 根据权利要求4所述的方法,其特征在于,所述节点编码之间、以及所述路径编码之 间均存在前缀关系,具体为: 若codel与code2之间满足关系式code2 =codel.i,则判断出codel是code2的前缀 编码;其中,codel和code2分别表示两个所述节点编码,或者,codel和code2分别表示两 个所述路径编码。
6. 根据权利要求5所述的方法,其特征在于,在属性节点的属性名称前添加符号@。
7. 根据权利要求6所述的方法,其特征在于,所述预设编码规则具体包括: 所述根节点的编码为1,判断所述根节点V。所在路径是否包含所述属性节点; 若包含,则按照所述属性节点在所述文档树中的顺序进行编码,并记录到编码记录表 中。
8. 根据权利要求7所述的方法,其特征在于,所述按照所述属性节点在所述文档树中 的顺序进行编码,具体包括: 对于Vve|G,若code(paf/!(v))= 0,贝ljpath(v)是节点parent(v)的第i个被编码的孩 子路径种类;所述孩子路径种类是指所述节点v的所有孩子节点中,同名孩子节点的祖先 路径所构成的路径种类; 判断节点V是否有孩子节点,若是,对所述节点V的所述孩子节点进行编码; 若判断出所述节点V没有所述孩子节点,则判断所述节点V是否有所述属性节点; 若判断出所述节点V有所述属性节点,则对所述属性节点进行编码;或者,若判断出所 述节点V没有所述属性节点,判断所述节点V是否有兄弟节点; 若判断出所述节点V有所述兄弟节点,则对所述兄弟节点进行编码;或者,若判断出所 述节点V没有所述兄弟节点,则按照所述节点V的祖先路径,逆向回退到存在未编码兄弟节 点的祖先节点,对所述祖先节点的所述未编码兄弟节点进行编码;若按照所述节点V的所 述祖先路径,逆向回退到所述根节点V(l,则编码结束。
9. 根据权利要求8所述的方法,其特征在于,所述按照所述属性节点在所述文档树中 的顺序进行编码,还包括: 对于Vvef*;,若code(p-(v)) # 0,则参照所述编码记录表,判断所述节点v的path(v)与parent(v)之间,是否满足关系式:Code(parent(v)) <Code(path(v)); 若不满足,则重复所述判断节点v是否有孩子节点的操作; 若满足,则code(v) = (code(path(v))).j,其中jG[1,2, 3......)表示所述节点v是 所述节点v对应祖先路径种类下的同名兄弟节点中从1开始计数的顺序,完成对所述节点v的编码后,重复所述判断节点v是否有孩子节点的操作。
10. 根据权利要求1所述的方法,其特征在于,所述按照预设映射规则对所述XML文档 D进行映射存储,包括: 提取所述XML文档D对应的所有code(v)和value(v),将不同code(v)的作为编码-值CodeToValue表的列名,将value(v)作为所述CodeToValue表中,与code(v)对应的列的列 值,一个所述XML文档D对应所述CodeToValue表中的一行,并将所述XML文档D对应的文 档名字作为行关键字;其中,所述CodeToValue表用于存放所述XML文档D中code(v)和对 应的value(v); 提取所有的节点vGV-Text对应的path(v)及code(v),将不同path(v)的作为路 径-编码PathToCode表的列名,每个path(v)对应的所有code(v)用预设间隔符间隔,所 述XML文档D对应一个所述PathToCode表,并作为数据库HBase中的一行进行存储;其中, 所述PathToCode表用于存放所述XML文档D中path(v)和对应的code(v)。
【文档编号】G06F17/30GK104484337SQ201410663532
【公开日】2015年4月1日 申请日期:2014年11月19日 优先权日:2014年11月19日
【发明者】鲍亮, 张静, 黄鹏, 张强, 衣凡 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1