格式化数据库中的半结构化数据制造技术

技术编号:12181232 阅读:81 留言:0更新日期:2015-10-08 19:17
在一些示例中,格式化数据库中的半结构化数据包括:将半结构化数据获取到列存储数据库中,将该半结构化数据分配给具有键和值格式的半结构化列,以及利用最优搜索格式来格式化该半结构化数据。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】
技术介绍
数据库使用各种格式来组织待响应于搜索查询而被搜索的数据。一种这样的数据库组织包括顺序地成行组织该数据。响应于搜索查询,从每行的开始顺序地读取该行,以定位与该搜索查询有关的数据。另一种数据库是列存储数据库,该列存储数据库以列而不是以行存储数据。这样的数据库定位每列中的信息,而不必读取与搜索查询无关的数据的顺序列表。因此,列存储数据库利用与行存储数据库不同的搜索技术来搜索与搜索查询有关的数据。【附图说明】附图图示本文描述的原理的各示例并且是本说明书的一部分。所图示的示例仅是示例,而不限制权利要求的范围。图1是根据本文描述的原理的列存储数据库的示例的图。图2是根据本文描述的原理的、具有键和值格式的半结构化列的示例的图。图3是根据本文描述的原理的、用于格式化数据库中的半结构化数据的方法的示例的图。图4是根据本文描述的原理的格式化系统的示例的图。图5是根据本文描述的原理的格式化系统的示例的图。图6是根据本文描述的原理的、用于将半结构化数据加载到数据库中的方法的流程图的示例的图。图7是根据本文描述的原理的、用于格式化数据库中的半结构化数据的方法的流程图的示例的图。【具体实施方式】像列存储数据库这样的关系数据库执行搜索,其中数据在所有记录之间以固定且一致的格式组织。虽然可以将这样的模式改变为包括其它列值,但是这种行为是由用户驱动的,而不是由列存储数据库隐含地执行的。因此,将新类型的数据加载到数据库中的过程涉及在加载该数据之前执行模式限定任务的用户。此外,该执行模式限定任务的用户具有用于准确地限定列数和数据类型(包括字符串字段最大宽度)的关于该数据的足够知识,使得列存储数据库可以将该新增加的数据放入其已有的固定且一致的格式中。模式限定任务可能成为将数据输入关系数据库中的障碍。此外,用户可能不具有用于规划紧凑模式的关于新数据的足够知识。一旦数据被加载,像结构化查询语言(SQL)这样的查询语言适合于表达将执行的分析。数据集中的许多是自描述的且包括与列名、描述和类型有关的元数据。例如,JavaScript对象表示法(JSON)格式描述列和数据类型。甚至像逗号分隔值(CSV)或制表符分隔值(TSV)这样的简单分界格式经常在顶部具有描述列名的标题行。在数据的记录由于记录内容改变或由于在单个数据流中存在多个记录类型而不一致的多变模式中,多变模式也对固定模式关系数据库带来问题。记录可能缺少字段,或者较新版本的数据源可以提供其它字段。多个不同记录类型可以出现在同样的流上。这样的新数据还不整齐地放入关系数据库的紧凑模式中。本文描述的原理包括一种用于格式化数据库中的半结构化数据的方法。这样的方法包括:将半结构化数据获取到列存储数据库中,将该半结构化数据分配给具有键和值格式的半结构化列,以及利用最优搜索格式来格式化该半结构化数据。该半结构化数据可以包括数据库未知的数据或在不同记录之间具有不一致格式的数据。该半结构化数据可以包括不整齐地放入关系数据库所用的用于优化搜索的紧凑模式中的其它类型数据。该键和值格式包括以下格式:键数据和该键数据的关联值被配对在一起作为可以在半结构化列中被搜索到的对。最优搜索格式包括除仅键和值对之外的额外信息和/或结构。这样的额外信息和/或结构提高搜索引擎搜索半结构化数据的能力。这样的额外信息可以包括元数据,该元数据提供可以在紧凑模式中用于允许半结构化列中最优搜索次数的关键字、标签、描述、其它值、额外索引信息、其它信息或以上的组合。本文描述的原理的一个优点包括写查询的用户不用知道数据是否被发送给半结构化列或具有更多结构的显式列(explicit column)。因此,存储功能与查询功能分离。在下面的描述中,为了解释,阐述多个特定细节,以提供本系统和方法的深入理解。但是,将对本领域技术人员显而易见的是,可以在没有这些特定细节的情况下实践本装置、系统和方法。说明书中对“示例”或类似语言的引用表示所描述的特定特征、结构或特性包括在至少一个示例中,但不一定包括在其它示例中。图1是根据本文描述的原理的列存储数据库(100)的示例的图。在此示例中,列存储数据库(100)具有第一显式列(102)、第二显式列(104)以及半结构化列(106)。列存储数据库(100)还包括数据获取器(108)、数据列分配器(110)、加载器(112)、搜索器(114)、搜索查询分析器(116)以及格式化器(118)。此外,在此示例中,半结构化数据源(120)与数据获取器(108)通信。数据获取器(108)从半结构化数据源获取数据。半结构化数据源可以是可移除的存储介质、其它数据库、网站、目录、库、来自用户的手动输入、系统、监视设备、其它源或以上的组合。半结构化数据可以具有列存储数据库(100)未知的格式。在其它示例中,由于记录的删除及其它改变,半结构化数据在多个记录之间具有不一致的格式。数据的其它条件可以引起该数据的结构超出该数据的余下部分在列存储数据库中被组织成的最优搜索格式之外。数据获取器(108)可以被动地从半结构化数据源(120)接收该数据,或者数据获取器(108)可以主动地从半结构化数据源检索数据。虽然已参照数据获取器(108)的特定特征描述此示例,但是依照本文描述的原理可以使用任何合适类型的数据获取器。数据获取器(108)与数据列分配器(110)通信,数据列分配器(110)确定数据是否具有与列存储数据库余下部分的组织方式兼容的格式。此外,数据列分配器(110)还确定该数据的多个记录是否是以一致的方式格式化的。如果数据的格式未知或不一致,则数据列分配器(I1)向半结构化列(106)分配该数据。另一方面,如果该数据是以与列存储数据库的最优搜索格式一致的方式组织的,则将该数据分配给诸如第一显示列(102)或第二显式列(104)之类的已有显式列,或分配给为新数据形成的新显式列。在一些示例中,数据列分配器(110)识别出在数据获取器(108)处获取的进入数据中的一些属于已经在当前已有列之一中存储的数据。在这样的示例中,数据列分配器(110)可以将该数据分配给当前已有显式列。可替代地,数据列分配器(110)将被识别为已经属于显式列中的数据的该数据分配给半结构化列和适当的显式列。虽然已参照数据列分配器(110)的特定特征描述此示例,但是依照本文描述的原理可以使用任何合适类型的数据列分配器。响应于数据列分配器(110)将该数据分配给列,加载器(112)将该数据加载到所分配的列内。虽然已参照加载器(112)的特定特征描述此示例,但是依照本文描述的原理可以使用任何合适类型的加载器(112)。响应于搜索查询,搜索器(114)搜索列存储数据库。在一些示例中,如果搜索查询不包括显式列中的信息,则搜索器(114)将搜索半结构化列(106)以寻找与该搜索查询有关的数据。如果可从显式列中获得查询数据,则不读取半结构化列。通过这样的方式,降低和/或消除在半结构化列中搜索数据的输入/输出成本。在其它示例中,搜索策略指示当在数据库的其余部分各处没找到其它相关信息时就搜索半结构化列。在另外的其它示例中,搜索策略包括规则,该规则指示:如果满足其它条件,则搜索器(114)将搜索半结构化列(106)。虽然已参照搜索器(114)的特定特征描述此示例本文档来自技高网...
格式化数据库中的半结构化数据

【技术保护点】
一种用于格式化数据库中的半结构化数据的方法,包括:将半结构化数据获取到列存储数据库中;将所述半结构化数据分配给具有键和值格式的半结构化列;以及利用最优搜索格式来格式化所述半结构化数据。

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:本杰明·M·万迪韦尔亚当·本杰明·塞林马修·史蒂文·富勒
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1