CN110019969B - 处理半结构化数据的方法和系统 - Google Patents
处理半结构化数据的方法和系统 Download PDFInfo
- Publication number
- CN110019969B CN110019969B CN201711273916.4A CN201711273916A CN110019969B CN 110019969 B CN110019969 B CN 110019969B CN 201711273916 A CN201711273916 A CN 201711273916A CN 110019969 B CN110019969 B CN 110019969B
- Authority
- CN
- China
- Prior art keywords
- entity
- semi
- database
- sub
- structured 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/86—Mapping to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及计算机技术领域,更具体地,涉及一种数据处理方法和系统,以至少部分地解决传统的数据库技术很难应用到半结构化数据的问题。具体提出一种处理半结构化数据的方法和系统,其中处理半结构化数据的方法包括:基于半结构化数据模型表达半结构化数据的实体;建立半结构化数据中包含子对象的实体与数据库表层次的映射;建立半结构化数据中不包含子对象的实体与所述数据库字段层次的映射。从而有利于将半结构化数据结构化的存储于数据库中。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种数据处理方法和系统。
背景技术
在计算机的各行各业,会生成很多半结构化的文本数据。
在实现本发明构思的过程中,发明人发现现有技术中至少存在如下问题:现有的半结构化的文本数据的特点是半结构化、数据和模式信息混合在一起,没有独立于数据之外的模式信息,传统的数据库技术很难应用到这类数据中;且半结构化数据还存在多表存储以及多个数据值对应一个数据库字段的情况,这些都使得科学工作者在进行查询、浏览或者集成的过程中效率较低。
发明内容
有鉴于此,本公开提供了一种便于提取的处理半结构化数据。
本公开的一个方面提供了一种处理半结构化数据的方法,该方法包括:基于半结构化数据模型表达半结构化数据的实体;建立半结构化数据中包含子对象的实体与数据库表层次的映射;以及建立半结构化数据中不包含子对象的实体与数据库字段层次的映射。
根据本公开实施例,建立半结构化数据中包含子对象的实体与数据库表层次的映射可以具体包括:采用数据库表的类型和数据库表的名称对包含子对象的实体进行进一步的表达;其中数据库表的类型表达包含子对象的实体包含的子对象实体与数据库中表结构的映射关系;其中数据库表的名称表达与包含子对象的实体包含的子对象实体对应的数据库中的表的名称。
根据本公开实施例,上述数据库表的类型的值包括以下的至少之一:“1”、“2”及“null”,其中:“1”代表包含子对象的实体包含的子对象实体映射至数据库的主表中;“2”代表包含子对象的实体包含的子对象实体映射至数据库的子表中;以及“null”代表包含子对象的实体包含的子对象实体不存在与数据库中表结构的映射关系。
根据本公开实施例,在数据库表的类型的值为“null”的情况下,数据库表的名称也应设置为“null”。
根据本公开实施例,建立半结构化数据中不包含子对象的实体与数据库字段层次的映射可以具体包括:以三元组的形式表达半结构化数据中不包含子对象的实体与数据库字段层次的映射关系;其中,三元组包括数据库表的字段的名称、所述数据库表的字段对应的数据值的表达式及该三元组的唯一标识号。
根据本公开实施例,上述数据库表的字段对应的数据值的表达式包括不包含子对象的实体的值的组合。
根据本公开实施例,上述的处理半结构化数据的方法还可以包括:根据半结构化数据的实体的唯一标识号,对半结构化数据进行逐行扫描;在扫描到包含子对象的实体所在行的情况下,根据该包含子对象的实体包含的不包含子对象的实体与数据库字段层次的映射,获取得到数据库字段的数据值;以及根据该包含子对象的实体与数据库表层次的映射,将获取得到的数据库字段的数据值映射存储到相应的数据库表中。
根据本公开实施例,上述逐行扫描例如可包括深度优先扫描。
本公开的另一个方面提供了一种处理半结构化数据的系统,该系统包括:表达模块,用于基于半结构化数据模型表达半结构化数据的实体;映射建立模块,用于建立半结构化数据中包含子对象的实体与数据库表层次的映射,以及半结构化数据中不包含子对象的实体与数据库字段层次的映射。
根据本公开实施例,上述处理半结构化数据的系统还可包括:扫描模块,用于根据半结构化数据的实体的唯一标识号,对半结构化数据进行逐行扫描;
处理模块,用于在扫描到包含子对象的实体所在行的情况下,根据该包含子对象的实体包含的不包含子对象的实体与数据库字段层次的映射,获取得到数据库字段的数据值;以及根据该包含子对象的实体与数据库表层次的映射,将获取得到的数据库字段的数据值映射存储到相应的数据库表中。
根据本公开实施例,上述逐行扫描例如可包括深度优先扫描。
本公开的另一个方面提供了一种处理半结构化数据的系统,该系统包括:一个或多个处理器;以及存储装置,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述的处理半结构化数据的方法。
本公开的另一个方面提供了一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述的处理半结构化数据的方法。
根据本公开的实施例,可以至少部分地解决传统的数据库技术很难应用到半结构化数据的问题,并因此可以实现直接从结构化的数据库中提取使用现有的半结构化数据,从而大大提高工作效率的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1是示意性示出了根据本公开实施例的处理半结构化数据的示例性流程图;
图2A~图2D示意性示出了根据本公开实施例的处理半结构化数据的方法流程图;
图3A~图3B示意性示出了根据本公开实施例的基于OEM模型扩展得到的OEM-Relation模型两种表示形式的示意图;
图4示意性示出了根据本公开另一实施例的处理半结构化数据的方法流程图;
图5A~图5B示意性示出了根据本公开实施例的处理半结构化数据的系统;
图6示意性示出了根据本公开实施例的适于实现处理半结构化数据的系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
本公开的实施例提供了一种处理半结构化数据的方法和系统。该方法包括基于半结构化数据模型表达半结构化数据的实体;建立半结构化数据中包含子对象的实体与数据库表层次的映射;建立半结构化数据中不包含子对象的实体与数据库字段层次的映射。其中,通过建立半结构化数据与数据库的映射,有利于将半结构化数据结构化的存储于数据库中,从而解决传统的数据库技术很难应用到半结构化数据的问题。
图1示意性示出了根据本公开实施例的处理半结构化数据的示例性流程图。需要注意的是,图1所示仅为可以应用本公开实施例的处理半结构化数据流程的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以采用其他流程、方法、模型及算法。
如图1所示,根据该实施例的流程可以包括数据抽取操作S101、扩展模型操作S102和映射操作S103,该流程中的操作可由终端设备执行,该终端设备例如包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。
具体地,抽取操作S101包括:将半结构化文本类型的数据采用数据抽取方法抽取出来对应到半结构化数据模型。其中,数据抽取方法例如包括但不限于正则表达数据抽取(Regular Expression Data Extraction,ReDE)方法,以将数据源中的数据对象抽取出来,对应到半结构化数据模型后,映射到数据库中;具体采用的抽取方式例如包括但不限于全量抽取或增量抽取;其中的半结构化数据模型例如包括但不限于以图为基础建立的模型、以树为基础建立的模型、依托于逻辑建立的模型、依托于关系建立的模型及建立在对象基础之上的模型等;其中,以图为基础建立的模型例如包括但不限于对象交换模型(ObjectExchange Model,OEM),其中的半结构化文本例如包括但不限于XML文件、HTML文件和/或SGML文件等。
具体地,扩展模型操作S102包括对半结构化数据模型进行扩展,使得扩展后的模型不仅能够表达半结构化模式的信息,同时还包含有数据与数据库表的映射规则,例如可包括但不限于在OEM模型的基础上进行扩展,得到OEM-Relation模型,该OEM-Relation模型对OEM模型的扩展例如包括但不限于以下两个部分:(1)在Type值为S的节点上增加TableType和Table Name两项,分别用来表示数据库表类型(主表或子表)和数据库表名称;(2)新增一个三元组(Field,Value,Id),分别用来表示数据库表的字段的名称、该数据库表的字段对应的数据值的表达式及该三元组的唯一标识号。
具体地,映射操作S103包括采用映射算法将扩展的半结构化数据模型表达的半结构化数据映射存储到关系型数据库中。其中,所述映射算法例如包括扩展后的半结构化数据模型包含的映射规则,具体的映射规则与进行扩展的半结构化数据模型相匹配。
应该理解,图1中的流程仅仅是示意性的,根据实际需要,可对处理半结构化数据的流程进行相应的修改、添加和/或删除。
图2A~图2D示意性示出了根据本公开实施例的处理半结构化数据的方法的流程图。
如图2A所示,该方法包括操作S201~S203。
在操作S201,基于半结构化数据模型表达半结构化数据的实体。
根据本公开的实施例,例如可采用OEM模型来表达半结构化数据的实体,该OEM模型的显著优点是可在同一种数据模型下表达模式和数据,这种方式使得在对数据进行处理时更加方便。该模型例如可被看成是一个图,图中的每个顶点对应于一个实体,两个顶点之间的边表示两个顶点(实体和其子实体,即包含子对象的实体和其包含的子对象的实体)之间的层次引用。如图2B所示,OEM模型中每个实体用一个四元组来表示:(Label,Type,Value,Object-ID)。其中,Label是一个变长的字符串,用来表示一个实体以及这个实体所代表的含义;Type表示实体值的数据类型,用A表示原子类型(如Integer、String、Real等,即不包含子对象的实体),用S表示集合类型(即包含子对象的实体);Value表示实体(原子类型)的值,或者表示实体(集合类型)对包含的子对象实体的引用,以{<l1,oid1>…<ln,oidn>}代表的集合的形式表示;Object-ID为实体的唯一标识号,其中li(1≤i<≤n)即为实体的Label,oidi(1≤i≤n)即为实体的唯一标识号。可以理解,上述采用OEM模型表达半结构化数据仅为帮助理解,本公开不限定表达半结构化数据的半结构化数据模型,本领域技术人员可根据实际情况选择适当的半结构化数据模型来表达半结构化数据。
根据本公开的实施例,半结构化数据中的每个实体例如可用一行信息表示。例如,可按照OEM模型的四元组(Label,Type,Value,Object-ID)来表示,具体表达存储后的形式例如可如图2C所示,其中第一行描述的实体中,Label对应message(信息),表示该实体名称;Type对应S,表示该实体的值是一个复杂类型;Value对应{<barcode,&1>,<workstatue,&2>,<operatorname,&3>,<exporttype,&4>,<worklisti,&5>},表示对该实体包含的子节点(即子对象实体)的引用;Object-ID定义为0,用来唯一标志该实体。
根据本公开的实施例,图2C所示的所有实体,根据其对应关系,可以用如图2D所示的图形来表示,在该图2D中,每个节点对应于图2C中每一行信息表示的一个实体,例如,第一个标识号“0”代表的节点对应图2C中Object-ID值为0的实体,即图2C中第一行信息表达的实体,该实体的Value值的集合表示该节点的孩子节点,即图2D中的第二层节点,依次类推,图2D中的每个叶子节点描述了半结构化数据的每个数据值。
在操作S202,建立半结构化数据中包含子对象的实体与数据库表层次的映射。
根据本公开的实施例,操作S202具体包括:采用数据库表的类型和数据库表的名称对包含子对象的实体进行进一步的表达,其中,数据库表的类型表达:包含子对象的实体包含的子对象实体与数据库中表结构的映射关系;以及数据库表的名称表达:与包含子对象的实体包含的子对象实体对应的数据库中表的名称。
根据本公开的实施例,数据库表的类型的值包括但不限于以下的至少之一:“1”、“2”及“null”,其中:“1”表达包含子对象的实体包含的子对象实体映射至数据库的主表中;“2”表达包含子对象的实体包含的子对象实体映射至数据库的子表中;以及“null”表达包含子对象的实体包含的子对象实体不存在与数据库中表结构的映射关系。其中,本公开实施例不对数据库表的类型的值进行限定,可根据用户经验或用户需求设定,本领域技术人员可根据实际情况选择设定不同的数据库表的类型的值。
根据本公开的实施例,在包含子对象的实体包含的子对象实体不存在与数据库中表结构的映射关系的情况下,数据库表的名称例如也应相应的设置为“null”。
根据本公开的实施例,该操作S202例如包括但不限于建立数据库表层次的映射,这是由于对于一个半结构化文本数据,其对应的数据库表结构大部分是主表带子表的复杂形式,因此,需要建立数据库表层次的映射,以利于半结构化文本数据能够结构化的存储于数据库中。
根据本公开的实施例,例如可在OEM模型表达半结构化数据的基础上进行映射建立,具体的:本公开实施例将OEM模型中的S节点(即Type值为S的节点)作为与数据库表层次的映射,映射方法例如可以包括:在原S节点上增加两项:Table Type、Table Name,其中Table Type可取“1”、“2”和null三个值,“1”表示该节点下的所有叶子节点都映射到主表中,如图2D中的“0”节点,“2”表示该节点下的所有叶子节点都映射到子表中,如图2D中的“6”节点,null表示该节点不需要设置与数据库的映射规则,如图2D中的“5”节点;Tablename表示该节点对应的数据库表名。上述在OEM模型表达半结构化数据的基础上建立映射仅为帮助理解,本公开实施例不限定建立映射的基础,本领域技术人员可根据实际情况选择适当的半结构化数据模型来表达半结构化数据,并在此半结构化数据模型基础上建立映射。
在操作S203,建立半结构化数据中不包含子对象的实体与数据库字段层次的映射。
根据本公开的实施例,操作S203具体包括:以三元组的形式表达半结构化数据中不包含子对象的实体与数据库字段层次的映射关系,其中,三元组例如包括数据库表的字段的名称、该数据库表的字段对应的数据值的表达式及该三元组的唯一标识号。本公开实施例不限定表达该半结构化数据中不包含子对象的实体与数据库字段层次的映射关系的形式,可根据用户经验或用户需求设定具体的表达形式,且本领域技术人员还可根据实际情况选择设定不同的三元组中包括的信息。
根据本公开的实施例,在以三元组形式表达上述映射关系,且该三元组包括数据库表的字段对应的数据值的表达式时,该数据库表的字段对应的数据值的表达式例如可包括不包含子对象的实体的值的组合,该组合例如包括但不限于至少两个不同子对象实体的实体值加、减、乘、除、对数、逻辑且、逻辑或等运算组合形成的表达式。
根据本公开的实施例,该操作S203例如包括但不限于数据字段层次的映射,这是因为在实际计算机产生的半结构化数据中,会存在需要将多个数据进行数据运算后再映射到一个表字段的情况,因此,需建立半结构化数据与数据字段层次的映射。
根据本公开的实施例,例如可在OEM模型表达半结构化数据的基础上进行映射建立,具体的,本公开实施例将OEM模型中A节点(即Type值为A的节点)作为与数据库字段层次的映射,映射方法包括:将A节点与数据库字段的对应关系以一个三元组(Field,Value,Id)的形式,添加到S节点上。其中,Field表示数据库表的字段的名称,Value是由OEM模型中类型为A的节点的值组合而来,表示该数据库表的该字段对应的数据值的表达式,Id是该三元组的唯一标识号,该唯一标识号例如可以“R1”为起始,逐渐递增。上述在OEM模型表达半结构化数据的基础上建立映射仅为帮助理解,本公开实施例不限定建立映射的基础,本领域技术人员可根据实际情况选择适当的半结构化数据模型来表达半结构化数据,并在此半结构化数据模型基础上建立映射。
图3A~图3B示意性示出了根据本公开实施例的基于OEM模型扩展得到的OEM-Relation模型两种表示形式的示意图。
根据本公开的实施例,采用OEM模型表达半结构化数据的实体,并对该OEM模型进行扩展得到OEM-Relation模型,从而采用扩展得到的OEM-Relation模型对半结构化数据进行进一步的表达,从而达到同时表达半结构化模式信息和包含数据与数据库表的映射规则的目的。
根据本公开的实施例,在OEM基础上扩展得到OEM-Relation模型的扩展主要包括以下两个部分:
1、在Type值为S的节点增加两项:Table Type和Table name,分别用来表示数据库表类型(主表或子表)和数据库表名称,本公开实施例称此类Type值为S的节点为S节点,称Type类型为A的节点为A节点,其中,Table Type例如可取“1”、“2”和“null”三个值,其具体代表含义与上述参考图2A描述的操作S202中数据库表的类型的值相同或相似,在此不再赘述;
2、新增一个三元组(Field,Value,Id),用来表示A节点与数据库字段层次的映射关系,其中Field表示数据库表的字段的名称,Value的值由A节点的值组合而来,表示该Field对应的数据值的表达式,Id是该三元组的唯一标识号,本公开实施例称由该三元组形成的节点为R节点。
根据本公开的实施例,扩展得到的OEM-Relation模型具体的表示形式例如可如图3A所示,其中字体加粗部分为相对于上述参考图2C描述的OEM模型增加的内容。其中,第一行的S节点增加的<bar_code,&R1>表示数据库表的字段名为bar_code,该R节点(即三元组)对应的唯一标识号为“R1”,第一行S节点增加的1代表该S节点包含的A节点(即子对象的实体)映射至数据库的主表中。增加的第六行内容(bar_code1,1,&R1)则表示:映射至数据库表的字段名为bar_code的实体为标识号为1的实体,即图3A中第二行的实体,则该字段对应的数据值即为标识号为1的实体的值。第九行内容中增加的null,null则表示,S类型的worklist实体包含的子对象的实体与数据库中表结构不存在映射关系。最后一行的内容(art_sum,4*9,&R6)表示:映射至数据库表的字段名为art_sum的实体为标识号为4与标识号为9的实体,该字段对应的数据值即为标识号为4的实体的值与标识号为9的实体的值的乘积。
根据本公开实施例,图3A所描述的OEM-Relation模型的表示形式可用如图3B所示的图结构来表示,通过图形结构表示的OEM-Relation模型图,可以清晰、方便的了解到其所描述的半结构化数据的结构,其类似于参考图2D的描述,每个节点都对应于图3A中的一个实体,每个节点上的序号对应于实体的标识号或R节点(即三元组)的标识号,用来唯一标志实体或数据库表的字段。要想得知每个节点的具体信息,可以根据节点上的序号,在图3A描述的形式中得到。
图3B中,S节点包括第一层节点和第三层节点,其代表与数据库表层次的映射,对应于图3A中的Type类型是S的节点,从图3B中可以看出,该节点包括了两种类型的孩子节点,代表着同时包含半结构化数据值,以及这些数据值与数据库表的映射关系;A节点包括第二层节点和第四层节点的实线圈表示的节点,其代表半结构文本数据中具体的值,对应于图3A中Type类型是A的节点;R节点包括第二层节点和第四层节点的虚线圈表示的节点,其代表与数据库字段层次的映射,对应于图3A中的三元组。因此,本公开实施例的OEM-Relation模型包含了半结构化数据的模式信息,数据值、数据值与对应的数据库表层次信息、数据值与对应的数据库字段层次信息。
图4示意性示出了本公开另一实施例的处理半结构化数据的示例性流程图。
如图4所示,该方法包括操作S201~S203,及操作S401~S403。
操作S201~S203与上述参考图2A描述的操作S201~S203相同或相似,在此不再赘述。
在操作S401,根据半结构化数据的实体的唯一标识号,对半结构化数据进行逐行扫描。具体的,当半结构化数据采用上述实施例中扩展的OEM-Relation模型表达时,从Object_ID为0的节点开始扫描遍历。
根据本公开的实施例,其中,在扫描遍历时,包括但不限于采用深度优先遍历,本公开实施例以参考图3B描述的形式为例,则在遍历到标识号为5的实体worklist时,继续向深度方向遍历,即继续遍历标识号为6的实体,随后遍历标识号为6的实体包含的实体7~9及R节点R4~R6;在遍历了R节点R6后,再遍历R节点R1。
在操作S402,在扫描到包含子对象的实体所在行的情况下,根据该实体包含的不包含子对象的实体与数据库字段层次的映射,获取得到数据库字段的数据值。具体的,即为根据该扫描到的包含子对象的实体包含的不包含子对象的实体与数据库字段层次的映射,获取得到数据库字段的数据值。
根据本公开的实施例,在以OEM-Relation模型表达半结构化数据时,在扫描遍历到S节点时,得到S节点下的所有R节点,依次处理每个节点,获取该每个R节点中的Value,根据该Value设定的1到多个A节点的组合,结合相对应A节点的Value值,计算得到每个R节点代表的字段实际对应的数据值。
根据本公开的实施例,在以OEM-Relation模型表达半结构化数据时,在扫描遍历中,在遍历到A节点和R节点时,在可直接过滤掉。
在操作S403,根据该包含子对象的实体与数据库表层次的映射,将获取得到的数据库字段的数据值映射存储到相应的数据库表中。该操作S403即为将操作S402计算得到的数据库字段的数据值,按照映射关系,插入存储到数据库中。
图5A~图5B示意性示出了根据本公开实施例的处理半结构化数据的系统。
如图5A所示,处理半结构化数据的系统500包括表达模块510和映射建立模块520。
具体地,表达模块510用于基于半结构化数据模型表达半结构化数据的实体。根据本公开实施例,表达模块510例如可以执行上文参考图2A描述的操作S201,在此不再赘述。
具体地,映射建立模块520用于建立半结构化数据中包含子对象的实体与数据库表层次的映射,以及半结构化数据中不包含子对象的实体与数据库字段层次的映射。根据本公开实施例,映射建立模块520例如可以执行上文参考图2A描述的操作S202~S203,以及基于OEM模型扩展得到上文参考图3A~图3B描述的OEM-Relation模型,具体执行及扩展方法详见对参考图2A中操作S202~S203,及对参考图3A~图3B的描述,在此不再赘述。
根据本公开实施例,如图5B所示,处理半结构化数据的系统500还可以包括扫描模块530和处理模块540。
具体地,扫描模块530用于根据半结构化数据的实体的唯一标识号,对半结构化数据进行逐行扫描。根据本公开实施例,扫描模块530例如可以执行上文参考图4描述的操作S401,在执行操作S401过程中,例如包括但不限于采用深度优先扫描进行遍历,详见上文对操作S401的描述,此处不再赘述。
具体地,处理模块540用于在扫描到包含子对象的实体所在行的情况下,根据该包含子对象的实体包含的不包含子对象的实体与数据库字段层次的映射,获取得到数据库字段的数据值;以及根据该包含子对象的实体与数据库表层次的映射,将获取得到的数据库字段的数据值映射存储到相应的数据库表中。根据本公开实施例,处理模块540例如可以执行上文参考图4描述的操作S402~S403,在此不再赘述。
根据本公开的实施例,通过处理半结构化数据的系统500能够将半结构化数据存储到结构性的数据库中,因此,在需要使用该些半结构化数据时,可直接从数据库中读取数据,因此能够有效的提高计算效率,可以至少部分地解决传统的数据库技术很难应用到半结构化数据的问题。
可以理解的是,表达模块510、映射建立模块520、扫描模块530以及处理模块540可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,表达模块510、映射建立模块520、扫描模块530以及处理模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,表达模块510、映射建立模块520、扫描模块530以及处理模块540的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图6示意性示出了根据本公开实施例的适于实现处理半结构化数据的系统的方框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,根据本公开实施例的计算机系统600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载处理器。处理器601可以包括用于执行参考图2A~图2D及图4描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有系统600操作所需的各种程序和数据。处理器601、ROM 602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行以上参考图2A~图2D及图4描述的处理半结构化数据的方法的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行以上参考图2A~图2D及图4描述的处理半结构化数据的方法的各种操作。
根据本公开的实施例,系统600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。系统600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
根据本公开的实施例,上文参考流程图描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。根据本公开的实施例,计算机可读介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行:
一种处理半结构化数据的方法,该方法包括:基于半结构化数据模型表达半结构化数据的实体;建立半结构化数据中包含子对象的实体与数据库表层次的映射;以及建立半结构化数据中不包含子对象的实体与数据库字段层次的映射。
根据本公开实施例,建立半结构化数据中包含子对象的实体与数据库表层次的映射可以具体包括:采用数据库表的类型和数据库表的名称对包含子对象的实体进行进一步的表达;其中数据库表的类型表达包含子对象的实体包含的子对象实体与数据库中表结构的映射关系;其中数据库表的名称表达与包含子对象的实体包含的子对象实体对应的数据库中的表的名称。
根据本公开实施例,上述数据库表的类型的值包括以下的至少之一:“1”、“2”及“null”,其中:“1”代表包含子对象的实体包含的子对象实体映射至数据库的主表中;“2”代表包含子对象的实体包含的子对象实体映射至数据库的子表中;以及“null”代表包含子对象的实体包含的子对象实体不存在与数据库中表结构的映射关系。
根据本公开实施例,在数据库表的类型的值为“null”的情况下,数据库表的名称也应设置为“null”。
根据本公开实施例,建立半结构化数据中不包含子对象的实体与数据库字段层次的映射可以具体包括:以三元组的形式表达半结构化数据中不包含子对象的实体与数据库字段层次的映射关系;其中,三元组包括数据库表的字段的名称、该数据库表的字段对应的数据值的表达式及该三元组的唯一标识号。
根据本公开实施例,上述数据库表的字段对应的数据值的表达式包括不包含子对象的实体的值的组合。
根据本公开实施例,上述的处理半结构化数据的方法还可以包括:根据半结构化数据的实体的唯一标识号,对半结构化数据进行逐行扫描;在扫描到包含子对象的实体所在行的情况下,根据该包含子对象的实体包含的不包含子对象的实体与数据库字段层次的映射,获取得到数据库字段的数据值;以及根据该包含子对象的实体与数据库表层次的映射,将获取得到的数据库字段的数据值映射存储到相应的数据库表中。
根据本公开实施例,上述逐行扫描例如可包括深度优先扫描。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种处理半结构化数据的方法,包括:
基于半结构化数据模型表达所述半结构化数据的实体;
建立所述半结构化数据中包含子对象的实体与数据库表层次的映射,包括:
采用数据库表的类型和数据库表的名称对所述包含子对象的实体进行进一步的表达,其中,所述数据库表的类型表达所述包含子对象的实体包含的子对象实体与数据库中表结构的映射关系;所述数据库表的名称表达与所述包含子对象的实体包含的子对象实体对应的所述数据库中的表的名称;
建立所述半结构化数据中不包含子对象的实体与所述数据库字段层次的映射,包括:
以三元组的形式表达所述半结构化数据中不包含子对象的实体与所述数据库字段层次的映射关系,其中,所述三元组包括数据库表的字段的名称、所述数据库表的字段对应的数据值的表达式及所述三元组的唯一标识号。
2.根据权利要求1所述的处理半结构化数据的方法,其中,所述数据库表的类型的值包括以下的至少之一:“1”、“2”及“null”,其中:
“1”表达所述包含子对象的实体包含的子对象实体映射至所述数据库的主表中;
“2”表达所述包含子对象的实体包含的子对象实体映射至所述数据库的子表中;以及
“null”表达所述包含子对象的实体包含的子对象实体不存在与所述数据库中表结构的映射关系。
3.根据权利要求2所述的处理半结构化数据的方法,其中,在所述数据库表的类型的值为“null”的情况下,所述数据库表的名称设置为“null”。
4.根据权利要求1所述的处理半结构化数据的方法,其中,所述数据库表的字段对应的数据值的表达式包括所述不包含子对象的实体的值的组合。
5.根据权利要求1所述的处理半结构化数据的方法,还包括:
根据半结构化数据的实体的唯一标识号,对所述半结构化数据进行逐行扫描;
在扫描到所述包含子对象的实体所在行的情况下,根据该包含子对象的实体包含的不包含子对象的实体与所述数据库字段层次的映射,获取得到数据库字段的数据值;以及
根据该包含子对象的实体与所述数据库表层次的映射,将获取得到的所述数据库字段的数据值映射存储到相应的数据库表中。
6.根据权利要求5所述的处理半结构化数据的方法,其中,所述逐行扫描包括深度优先扫描。
7.一种处理半结构化数据的系统,包括:
表达模块,用于基于半结构化数据模型表达所述半结构化数据的实体;
映射建立模块,用于建立所述半结构化数据中包含子对象的实体与数据库表层次的映射,以及所述半结构化数据中不包含子对象的实体与所述数据库字段层次的映射,
其中,映射建议模块具体用于:
采用数据库表的类型和数据库表的名称对所述包含子对象的实体进行进一步的表达,其中,所述数据库表的类型表达所述包含子对象的实体包含的子对象实体与数据库中表结构的映射关系;所述数据库表的名称表达与所述包含子对象的实体包含的子对象实体对应的所述数据库中的表的名称;以及
以三元组的形式表达所述半结构化数据中不包含子对象的实体与所述数据库字段层次的映射关系,其中,所述三元组包括数据库表的字段的名称、所述数据库表的字段对应的数据值的表达式及所述三元组的唯一标识号。
8.根据权利要求7所述的处理半结构化数据的系统,还包括:
扫描模块,用于根据半结构化数据的实体的唯一标识号,对所述半结构化数据进行逐行扫描;
处理模块,用于在扫描到所述包含子对象的实体所在行的情况下,根据该包含子对象的实体包含的不包含子对象的实体与所述数据库字段层次的映射,获取得到数据库字段的数据值;以及根据该包含子对象的实体与所述数据库表层次的映射,将获取得到的所述数据库字段的数据值映射存储到相应的数据库表中。
9.根据权利要求8所述的处理半结构化数据的系统,其中,所述逐行扫描包括深度优先扫描。
10.一种处理半结构化数据的系统,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~6中任一项所述的方法。
11.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711273916.4A CN110019969B (zh) | 2017-12-05 | 2017-12-05 | 处理半结构化数据的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711273916.4A CN110019969B (zh) | 2017-12-05 | 2017-12-05 | 处理半结构化数据的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019969A CN110019969A (zh) | 2019-07-16 |
CN110019969B true CN110019969B (zh) | 2021-06-29 |
Family
ID=67186836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711273916.4A Active CN110019969B (zh) | 2017-12-05 | 2017-12-05 | 处理半结构化数据的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019969B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797279B (zh) * | 2020-07-17 | 2024-01-19 | 西安数据如金信息科技有限公司 | 一种存储数据的方法及装置 |
US11775270B1 (en) * | 2023-04-19 | 2023-10-03 | Tsinghua University | Method and apparatus for parsing structured parameters of geocomputation language, device and medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581062B1 (en) * | 2000-03-02 | 2003-06-17 | Nimble Technology, Inc. | Method and apparatus for storing semi-structured data in a structured manner |
CN101067814A (zh) * | 2007-05-10 | 2007-11-07 | 浪潮集团山东通用软件有限公司 | 数据访问层Xml格式数据与关系数据间的映射转换方法 |
CN102929898A (zh) * | 2011-08-12 | 2013-02-13 | 微软公司 | 结构化数据库的语义查询引擎 |
CN105574016A (zh) * | 2014-10-14 | 2016-05-11 | 镇江鼎拓科技信息有限公司 | 一种半结构化Web信息抽取技术的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090259670A1 (en) * | 2008-04-14 | 2009-10-15 | Inmon William H | Apparatus and Method for Conditioning Semi-Structured Text for use as a Structured Data Source |
-
2017
- 2017-12-05 CN CN201711273916.4A patent/CN110019969B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581062B1 (en) * | 2000-03-02 | 2003-06-17 | Nimble Technology, Inc. | Method and apparatus for storing semi-structured data in a structured manner |
CN101067814A (zh) * | 2007-05-10 | 2007-11-07 | 浪潮集团山东通用软件有限公司 | 数据访问层Xml格式数据与关系数据间的映射转换方法 |
CN102929898A (zh) * | 2011-08-12 | 2013-02-13 | 微软公司 | 结构化数据库的语义查询引擎 |
CN105574016A (zh) * | 2014-10-14 | 2016-05-11 | 镇江鼎拓科技信息有限公司 | 一种半结构化Web信息抽取技术的方法 |
Non-Patent Citations (5)
Title |
---|
"An Algorithm of Semi-structured Data Scheme Extraction Based on OEM Model";Gong A, Yang X W;《Communication in Computer & Information Science》;20111231;第143卷;pp 315-319 * |
"integrating unstructured data into relational databases";Mansuri I R, Sarawagi S;《Data Engineering,ICDE’06》;20060824;29-29p * |
"半结构化数据查询的处理和优化";陈滢 王能斌;《软件学报》;19990805(第08期);第3-5页 * |
"半结构化数据的形式化描述及数据抽取方法研究";李亚红 赵冬玲;《计算机应用与软件》;20130415;第30卷(第4期);第145-148页 * |
"基于OEM模型的半结构化数据的模式抽取";鲁明羽 陆玉昌;《清华大学学报(自然科学版》;20040930;第44卷(第9期);第1264-1267页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110019969A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813963B (zh) | 知识图谱构建方法、装置、电子设备及存储介质 | |
CN111295680B (zh) | 用于基础设施建模的智能模型层级 | |
US8527532B2 (en) | Transforming function calls for interaction with hierarchical data structures | |
US10650559B2 (en) | Methods and systems for simplified graphical depictions of bipartite graphs | |
US9176712B2 (en) | Node Grouped Data Marshalling | |
US20150379156A1 (en) | Web pages processing | |
JP2007087216A (ja) | 階層型辞書作成装置、プログラムおよび階層型辞書作成方法 | |
US20140184500A1 (en) | Populating nodes in a data model with objects from context-based conformed dimensional data gravity wells | |
US20150193531A1 (en) | Modeling and visualizing level-based hierarchies | |
Carletti et al. | VF3-Light: A lightweight subgraph isomorphism algorithm and its experimental evaluation | |
US20180144035A1 (en) | Information landscape modeling, analysis & validation | |
US8228326B2 (en) | Three dimensional surface and solid query processing | |
CN110019969B (zh) | 处理半结构化数据的方法和系统 | |
US20090307200A1 (en) | System and Method For Providing Suppression of Zero, Null, Overflow, and Divide by Zero Values in Sparse Query Results | |
Gopalakrishnan et al. | Big Data in building information modeling research: survey and exploratory text mining | |
CN112037029B (zh) | 银行信贷审批问题自动生成方法及装置 | |
Neun et al. | Web service approaches for providing enriched data structures to generalisation operators | |
US8694918B2 (en) | Conveying hierarchical elements of a user interface | |
US8924385B2 (en) | Query-based diagrammatic presentation of data | |
CN110704635A (zh) | 一种知识图谱中三元组数据的转换方法及装置 | |
CN111753027B (zh) | 一种面向多实体的隐式知识图谱表示的方法及装置 | |
CN111767406A (zh) | Plc工程的知识表示方法及装置 | |
CN112685574B (zh) | 领域术语层次关系的确定方法、装置 | |
US9129318B2 (en) | System and method for allocating suppliers using geographical information system and supplier capability | |
US20070168857A1 (en) | Transformation of Source Data in a Source Markup Language to Target Data in a Target Markup Language |
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 |