半结构化数据作为第一等级数据库元素的实现的制作方法

文档序号:10663597阅读:279来源:国知局
半结构化数据作为第一等级数据库元素的实现的制作方法
【专利摘要】用于管理半结构化数据系统的数据存储和数据访问的系统、设备和方法。
【专利说明】
半结构化数据作为第一等级数据库元素的实现[0001]相关申请的交叉引用[0002]本申请要求标题为“Apparatus and method for enterprise data warehouse data processing on cloud infrastructure”的且于2014年2月19日提交的美国临时专利 申请序列号61/941,986的利益,该公开通过引用被全部并入本文。
技术领域
[0003]本公开涉及管理数据存储和计算资源的资源管理系统和方法。
[0004]背景
[0005]在今天,许多现有的数据存储和取回系统是可用的。例如,在共享盘系统中,所有的数据被储存在从数据群集中的所有处理节点可访问的共享存储设备上。在这种类型的系统中,所有的数据变化被写入共享存储设备以确保数据群集中的所有处理节点访问数据的一致的版本。随着共享盘系统中的处理节点的数量增加,共享存储设备(和处理节点和共享存储设备之间的通信链路)变成减慢数据读操作和数据写操作的瓶颈。随着更多的处理节点的添加,这个瓶颈进一步恶化。因此,由于这个瓶颈问题,现有的共享盘系统具有受限的可缩放性。
[0006]另一种现有的数据存储和取回系统被称为“无共享架构”。在这种架构中,数据被分布在多个处理节点之间,使得每个节点在整个数据库中储存数据的子集。当新的处理节点被添加或移除时,无共享架构必须在多个处理节点之间重新布置数据。数据的这种重新布置可以是耗时的并且对数据重新布置期间执行的数据读和写操作是破坏性的。并且,数据与特殊节点的相关性可在数据群集上创建用于常用数据的“热点”。此外,因为每个处理节点也执行存储功能,这个架构需要至少一个处理节点以储存数据。因此,如果所有处理节点被移除,则无共享架构无法储存数据。另外,由于数据在许多不同处理节点之间的分布, 在无共享架构中的数据的管理是复杂的。
[0007]本文描述的系统和方法提供缓和现有系统的以上明确的限制的数据存储和数据取回的改进的方法。
[0008]附图简述
[0009]本公开的非限制和非穷举实施方式参考下面的附图描述,其中,除非以其它方式说明,贯穿各种图形中的相似的参考数字指相似的部件。[〇〇1〇]图1示出描绘半结构化数据的处理的信息流和关系图。
[0011]图2示出描绘本文公开的方法的实现的过程流程图。
[0012]图3示出描绘根据本公开的教导的操作环境的实施方式的框图。
[0013]图4示出描绘根据本公开的教导的资源管理器的实现的示例的框图。
[0014]图5示出描绘根据本公开的教导的执行平台的实现的示例的框图。
[0015]图6示出描绘根据本公开的教导的示例计算设备的框图。
[0016]详细描述
[0017]本文公开的是用于管理半结构化数据的方法、设备和系统。例如,用于管理半结构化数据的方法的实现接收来自半结构化数据源的半结构化数据元素,并且可在半结构化数据元素被添加到数据库时实施对他们的集合的统计分析。来自半结构化数据内的公共数据元素可被识别并根据公共性阈值被分配为第一等级数据和/或次要等级数据。实现还可将来自半结构化数据源的公共数据元素合并到储存在缓存存储器中的单独的伪列,并且然后使对应于第一等级数据元素的伪列的元数据和统计信息对基于计算机的查询生成器可用。
[0018]在下面的说明书中,参考形成其一部分的附图,并且其中通过说明公开内容可被实践的特定的示例性实施方式的方式示出。这些实施方式以足够的细节来描述以使本领域中的技术人员能够实践本文公开的概念,并且应理解的是可以对各种公开的实施方式做出修改,并且其它实施方式可被利用,而不脱离本公开的范围。因此,下面的详细描述不被是限制性意义的。
[0019]本说明书通篇对“一个实施方式”、“实施方式”、“一个示例”或“示例”的引用是指结合实施方式或示例的特殊的特征、结构或特性被包括在本公开的至少一个实施方式中。因此,短语“在一个实施方式中”、“在实施方式中”、“一个示例”或“示例”在贯穿本说明书的各个位置的出现不必所有都指相同的实施方式或示例。此外,应认识到,此处的附图是出于说明的目的提供给本领域中的普通技术人员并且附图不必按照比例绘制。
[0020]根据本公开的实施方式可被实现为设备、方法或计算机程序产品。因此,本公开的方面可采用完全硬件组合的实施方案、完全软件组合的实施方案(包括固件、驻留软件、微代码等等)或组合软件和硬件方面的实施方案的形式,这些实施方案可在本文中被全部统称为“电路”、“模块”或“系统”。此外,本公开的实施方案可采用计算机程序产品的形式,该计算机程序产品以具有嵌入在介质中的可用程序代码的任何有形介质的形式实施。
[0021]—个或多个计算机可用或计算机可读介质的任意组合可被利用。例如,计算机可读介质可包括便携式计算机磁盘、硬盘、随机存取存储器(RAM)设备、只读存储器(ROM)设备、可擦除可编程只读存储器(EPROMS闪存)设备、便携式光盘只读存储器(CDR0M)、光存储设备和磁存储设备。用于实现本公开的操作的计算机程序代码可以一个或多个编程语言的任意组合来编写。这种代码从源代码被编译成适用于代码将被执行的设备或计算机的计算机可读汇编语言或机器码。
[0022]实施方式还可在云计算环境中被实现。在本说明书和以下的权利要求书中,“云计算”可被定义为用于使能对可配置的计算资源的共享池(如,网络、服务器、存储器、应用程序和服务)的无处不在的、方便的、立即响应式的网络访问,该可配置的计算资源的共享库可经由虚拟化被快速供应并用最少的管理工作或服务提供商交互来释放并且然后相应地被缩放的模型。云模型可以由各种特性(如,立即响应式自服务、广泛的网络访问、资源合并、快速伸缩性和测量的服务)、服务模块(如,软件即服务(“SaaS”)、平台即服务(“PaaS” )以及基础结构即服务(“IaaS”))和部署模块(如,私有云、社区云、公有云和混合云)组成。
[0023]附图中的流程图和框图示出根据本文公开的各种实施方式的架构、功能和系统、方法以及计算机程序产品的可能的实现的操作。在这点上,流程图或框图中的每一个框可表示代码的模块、段或部分,其包括用于实现特定的逻辑功能的一个或多个可执行指令。还应注意到,框图和/或流程图中的每一个块以及框图和/或流程图中的块的组合可由实施指定功能或动作或专用硬件和计算机指令的专用的基于硬件的系统来实现。这些计算机程序指令还可被储存在能够知道计算机或其它可编程数据处理装置以特殊方式工作的计算机可读介质,使得储存在计算机可读介质中的指令产生包括实现在流程图和/或框图的框中指定的功能/动作的指令手段的生产的项目。
[0024]本文描述的系统和方法提供使用新的数据处理平台的灵活的和可缩放的数据仓库。在一些实施方式中,所描述的系统和方法利用支持基于云的存储资源、计算资源等的云基础结构。示例基于云的存储资源供应以低成本的按需的可用的重要的存储容量。此外,这些基于云的存储资源可以是容错和高度可缩放的,这在私有数据存储系统中实现是昂贵的。示例基于云的计算资源是按需可用的并且可基于资源的实际使用等级来定价。通常,云基础结构是以快速方式动态地部署、重配置和停用的。
[0025]在所描述的系统和方法中,数据存储系统利用基于半结构化的关系数据库。然而, 这些系统和方法可应用于使用任意数据存储架构并使用任意语言在数据库内储存和取回数据的任何类型的数据库。如本文所使用的,半结构化数据意味着传达结构化数据的形式, 该结构化数据的形式不符合与关系数据库相关的数据模块的典型的正式的结构,但是仍然包括标记或其它标志以分离语义元素并强制执行记录和数据的字段的层次。本文描述的系统和方法还提供多租户系统,其支持在不同的客户/客户端之间以及相同的客户/客户端内的不同用户之间的计算资源和数据的隔离。[〇〇26]本文公开的是显著地改进处理大量半结构化数据的数据库和数据仓库的性能的方法和系统。现有的数据库系统是关系的(即,SQL数据库)或键-值库。
[0027]关系数据库可由于查询数据访问修剪(基于关于储存在表的特定列中的值的聚合的元数据从搜索中排除数据库的部分)而实施有效的查询。然而,这需要严格的表格格式的数据,其不能用于表示半结构化数据。
[0028]另外,键-值库更灵活,但是由于缺乏修剪而引入严重的性能恶化。在现有产品和研究项目中有许多方式来将半结构化数据的处理添加到关系数据库。
[0029]1.序列化编码-半结构化数据记录被储存在列中作为序列化表示。每当一些字段的值被使用,其被提取并被转换成基本类型。这种方法是灵活的,但使得对数据的访问由修剪改进。从序列化表示的提取是昂贵的,并且需要比与常规的关系数据工作显著多的CPU时间。整个序列化数据记录必须从永久存储器读出并被处理,即使仅他们的很少的部分(诸如单一元素)在查询中被使用。
[0030]2.在引入处转换-半结构化数据在引入处被转换成关系数据。这使得对这种数据的访问和对任何其它关系数据的访问一样快,但是需要在引入处的数据结构的严格的规范,并且需要对应的数据库架构事先被完全指定。由于对改变数据库架构的需要,该方法使得用改变结构来处理数据变得非常昂贵。具有结构从记录到记录的改变的数据不能使用这种方法来处理。该转换方法必须被先验地指定,并且任何非微不足道的改变将需要重新引入原始的半结构化数据。
[0031]3.结构化数据的关系类表示等效于储存在常规关系数据库中的对象属性值三元表示。这种方法是灵活的,但实际上需要对数据子组件的访问的联合操作,这取决于数据, 可能是非常慢的。
[0032]4.关系数据模块的非传统扩展,允许具有不同基数的列在反映源数据的结构中被链接。用于这种数据表示的查询方法未被很好的理解(并因此在本领域的当今状态没有有效的查询生成是可能的)。这种方法还需要输入数据以符合严格的(通过非表格的)架构,并且因此对于处理任意的半结构化数据不是足够灵活的。
[0033]所需要的是用于与半结构化数据一起工作的有效的、低成本的和易响应的系统和方法,因为它将保留半结构化数据的语义同时管理可以像更多传统数据结构一样被处理和查询的至少伪列中的数据。[〇〇34]在以下的公开的实现中,数据可以文件、文件的元素、文件的部分等的形式进入。 文件可包括文档的集合并且数据的部分可包括文件、来自连接的多个文档和/或文档的部分。此外,在该实现中,元数据可与文件、文件的部分和数据的部分相关。
[0035]如本文所使用的,术语“公共数据元素”旨在意味着属于相同组的数据元素和逻辑地类似元素的集合。
[0036]图1示出计算机系统中的半结构化数据流的示意图,该半结构化数据流处理半结构化数据并分配等级指示到数据元素,用于增加对查询的访问。如在图中可见的,半结构化数据110可在其中包括公共和非公共数据元素。为了从半结构化数据中提取公共数据,分析统计122可针对半结构化数据运行以确定公共数据元素、非公共数据元素,并生成将被分配到每个数据元素的等级指示。另外,应注意,用户兴趣和用户请求124还可被使用以确定用于公共数据元素的等级指示。如在图中所示出的,公共数据可被储存在被称为伪列120的暂时的分列结构中并且还可根据等级指示被储存,其中,第一等级数据元素被储存用于对查询的更好的访问。未被确定为公共的数据元素可被串行地储存在“溢出”序列化数据140中。 最终,用户将接收结果130以更快和更准确地从第一等级数据元素中进行查询。
[0037]在实现中,如果请求的数据元素不在伪列120中,则它可从“溢出”序列化数据140 中被提取,而如果整体半结构化数据记录150被请求重构,则它可从伪列120中的第一等级数据、伪列120中的次要等级数据以及“溢出”数据140被重构并被重新序列化成原始形式。
[0038]图2示出用于处理半结构化数据并分配用于设置数据存储的优先级的数据等级的方法200的流程图。如在图中可见的,在210处,半结构化数据元素从半结构化数据源或多个半结构数据源被接收。在数据元素被接收时他们可被指示为公共和非公共。这可通过在220 处在半结构化数据的集合被添加到数据库时实施他们的统计分析来实现。基于统计分析, 公共数据元素可在230处被识别。在240处,公共数据元素可被分配等级指示,诸如针对被需要的或重新出现的数据分配第一等级,针对较少被需要的和较少出现的数据元素分配次要等级指示。实施方法200的指令的系统还可根据公共性阈值在240处将来自半结构化数据的第一等级数据元素的存储合并在单独的伪列中,同时非公共数据元素在250处被储存在“溢出”序列化存储器中。例如,公共性阈值可基于数据元素出现在半结构化数据中的次数或可基于搜寻该数据的用户查询的数量。这些元素可从半结构化数据提取并被单独地储存在对用户不可见的分列格式中。在260处,第一等级数据由于其被需要性可被储存在快速存取缓存存储器中的伪列中,将认识到的是,这些伪列的元数据和统计信息(诸如最小和最大值、 不同值的数量等)可然后在270处对查询生成器可用。注意到单独的集合(即储存在单独文件中的表的部分)可具有数据元素被提取的不同子集。
[0039]如在图2中可见的,数据元素的公共性指示和等级分配可被重复,以便确保半结构化数据元素的数据库保持最新以用于查询。
[0040]在实现中,当提取数据时,如果需要公共数据元素的值,则它可使用有效的分列访问直接从对应的伪列获得。
[0041]在实现中,公共数据元素可在任何时间被添加到第一等级指示,并且同样地,数据元素可在他们被发现为较少被需要或较少被表示时丢失第一等级指示。
[0042]对于用户,该方法与储存序列化记录不能区别,并在独立的数据记录的结构上没有强加限制。然而,因为大部分公共数据元素以与传统的关系数据相同的方式被储存,对他们的访问被提供并且不需要整体半结构化记录的读取和提取,因此得到传统关系数据库的速度优势。
[0043]因为半结构化数据的不同集合(来自相同的表格)可使数据元素的不同组被提取,查询生成器和修剪应能够与部分可用的元数据(即表格的部分可使元数据和统计信息对特定的数据元素可用,而其它部分可能缺乏它)一起工作。
[0044]优于现有技术的优点是由该方法提供的用于使用混合数据存储表示(作为较少的公共元素的序列化存储和公共元素的分列存储)的能力。这允许用户使用序列化表示和由传统关系数据库提供的数据查询的高性能来实现灵活性和储存系统的任意的半结构化数据的能力。
[0045]本领域中的那些技术人员将认识到,任何数据处理平台可使用本方法来处理半结构化数据。它不需要被限制到运行SQL的DBMS系统。
[0046]在图3中示出的是用于运行本文公开的方法的计算机系统。如在图3中所示出的,资源管理器302被耦合到多个用户304、306和308。在特定的实现中,资源管理器302可支持要求访问数据处理平台300的任意数量的用户。用户304-308可包括,例如,提供数据存储和取回请求的终端用户、管理本文描述的系统和方法的系统管理员、与数据库交互的软件应用以及与资源管理器302交互的其它组件/设备。资源管理器302提供支持在数据处理平台300内的所有系统和组件的操作的各种服务和功能。资源管理器302还被耦合到元数据310,其与贯穿数据处理平台300储存的数据的整体相关。因为资源管理器与对应于文件集的元数据耦合,所以元数据可被用于生成用户查询。在一些实施方式中,元数据310包括储存在远程数据存储系统的数据以及本地缓存可用的数据的概略。另外,元数据310可包括关于数据在远程数据存储系统和本地缓存中是如何组织的信息。元数据310允许系统和服务确定数据片是否需要被处理而不加载或访问来自存储器设备的实际数据。
[0047]资源管理器302还被耦合到执行平台312,其提供执行各种数据存储和数据取回功能任务的多个计算资源,如在下面更详细地讨论的。执行平台312被耦合到为存储平台314的部分的多个数据存储设备316、318和320。尽管三个数据存储设备316、318和320在图3中被示出,执行平台312能够与任意数量的数据存储设备通信。在一些实施方式中,数据存储设备316、318和320是位于一个或多个地理位置中的基于云的存储设备。例如,数据存储设备316、318和320可以是公共云基础结构的部分或私有云基础结构。数据存储设备316、318和320可以是硬盘驱动器(HDD)、固态硬盘(SSD)、存储器群集或其它数据存储技术。另外,存储平台314可包括分布式文件系统(诸如Hadoop分布式文件系统(HDFS))、对象存储系统等。
[0048]在特定的实施方式中,资源管理器302和用户304-308、元数据310以及执行平台312之间的通信链路经由一个或多个数据通信网络被实现。类似地,执行平台312和存储平台314中的数据存储设备316-320之间的通信链路经由一个或多个数据通信网络被实现。这些数据通信网络可利用任意通信协议和任意类型的通信介质。在一些实施方式中,数据通信网络是耦合到彼此的一个或多个数据通信网络(或子网络)的组合。在可选的实施方式中,这些通信链路使用任意类型的通信介质和任意通信协议被实现。
[0049]如在图3中所示的,数据存储设备316、318和320从与执行平台312相关的计算资源被解耦。基于改变数据存储/取回需求以及访问数据处理平台300的用户和系统的改变需求,该架构支持到数据处理平台300的动态改变。动态改变的支持允许数据处理平台300快速缩放以响应于数据处理平台300内的系统和组件的改变需求。计算资源从数据存储设备的解耦支持数据的大量的存储,而不需要对应的大量的计算资源。类似地,资源的解耦支持在特定时间处利用的计算资源的显著增加,而不需要在可用的数据存储资源中的对应的增加。
[0050]资源管理器302、元数据310、执行平台312和存储平台314在图3中被示出为单独的组件。然而,资源管理器302、元数据310、执行平台312和存储平台314中的每个可被实现为分布式系统(如,分布在多个地理位置处的多个系统/平台之间)。另外,资源管理器302、元数据310、执行平台312和存储平台314中的每个根据到接收自用户304-308的请求的改变和数据处理平台300的改变需求可(独立于彼此地)被放大或缩小。因此,在所描述的实施方式中,数据处理平台300是动态的并支持定期改变以满足当前的数据处理需求。[〇〇51]图4是描绘资源管理器302的实施方式的框图。如在图3中所示出的,资源管理器 302包括耦合到数据存储设备406的访问管理器402和密钥管理器404。访问管理器402处理用于本文描述的系统的认证和授权任务。密钥管理器404管理在认证和授权任务期间使用的密钥的存储和认证。请求处理服务408管理所接收的数据存储请求和数据取回请求。管理控制台服务410支持由管理员和其它系统管理员对各种系统和过程的访问。[〇〇52] 资源管理器302还包括SQL编译器412、SQL优化器414和SQL执行器410。SQL编译器 412解析SQL查询并生成用于查询的执行代码。SQL优化器414基于需要被处理的数据确定执行查询的最好的方法。SQL执行器416执行用于由资源管理器302接收的请求的请求代码。查询调度器和协调器418将所接收的请求发送到合适的服务或系统用于编译、优化和到执行平台的调度。虚拟仓库管理器420管理在执行平台中实现的多个虚拟仓库的操作。[〇〇53]另外,资源管理器302包括配置和元数据管理器422,其管理与储存在远程数据存储设备中和本地缓存中的数据相关的信息。监测器和工作负载分析器424监督由资源管理器302实施的过程并管理任务(如工作负载)在虚拟仓库和执行平台中的执行节点之间的分布。配置和元数据管理器422以及监测器和工作负载分析器424被耦合到数据存储设备426。 [〇〇54]资源管理器302还包括交易管理和访问控制模块428,其管理与数据存储请求和数据访问请求的处理相关的各种任务和其它活动。例如,交易管理和访问控制模块428提供多个用户或系统对数据的一致的和同步的访问。由于多个用户/系统可同时访问相同的数据, 对数据的改变必须被同步以确保每个用户/系统工作在数据的当前版本。交易管理和访问控制模块428提供对资源管理器302中的单一的、集中的位置处的各种数据处理活动的控制。[〇〇55]图5是描绘执行平台的实施方式的框图。如在图5中所示出的,执行平台512包括多个虚拟仓库502、504和506。每个虚拟仓库包括多个执行节点,其每个包括缓存和处理器。尽管在图5中示出的每个虚拟仓库502-506包括三个执行节点,特定的虚拟仓库可包括任意数量的执行节点。此外,在虚拟仓库中的执行节点的数量是动态的,使得当出现额外的需求时,新的执行节点可被创建,并且当他们不再被需要时,现有的执行节点被删除。
[0056]每个虚拟仓库502-506能够访问图3中示出的任何数据存储设备316-320。因此,虚拟仓库502-506不必被分配到数据存储设备316-320,并且相反可访问来自任何数据存储设备316-320的数据。类似地,在图5中示出的执行节点中的每个可访问来自任何数据存储设备316-320的数据。在一些实施方式中,特定的虚拟仓库或特定的执行节点可被暂时分配到特定的数据存储设备,但是虚拟仓库或执行节点可随后访问来自任何其它数据存储设备的数据。[〇〇57] 在图5的示例中,虚拟仓库502包括三个执行节点508、510和512。执行节点508包括缓存514和处理器516。执行节点510包括缓存518和处理器520。执行节点512包括缓存522和处理器524。每个执行节点508-512与处理一个或多个数据存储和/或数据取回任务相关。例如,特定的虚拟仓库可处理与特定用户或客户相关的数据存储和数据取回任务。在其它实现中,特定的虚拟仓库可处理与特定的数据存储系统或数据的特定类别相关的数据存储和数据取回任务。[〇〇58] 类似于上面讨论的虚拟仓库502,虚拟仓库504包括三个执行节点526、528和530。 执行节点526包括缓存532和处理器534。执行节点528包括缓存536和处理器538。执行节点 530包括缓存540和处理器542。另外,虚拟仓库506包括三个执行节点544、546和548。执行节点544包括缓存550和处理器552。执行节点546包括缓存554和处理器556。执行节点548包括缓存558和处理器560。[〇〇59]尽管在图5中示出的执行节点每个包括一个缓存和一个处理器,可选的实施方案可包括包含任意数量的处理器和任意数量的缓存的执行节点。另外,在不同的执行节点之间,缓存可在尺寸上可变化。在图5中示出的缓存在本地执行节点中储存数据,该数据从存储平台314(图3)中的一个或多个数据存储设备取回。因此,缓存减少或消除出现在一致地从远程存储系统取回数据的平台中的瓶颈问题。代替从远程存储设备重复地访问数据,本文描述的系统和方法从执行节点中的缓存访问数据,这显著地更快并避免上面讨论的瓶颈问题。在一些实施方式中,缓存使用提供对缓存数据的快速访问的高速存储器设备来实现。 每个缓存可储存来自存储平台314中的任意存储设备的数据。
[0060]此外,缓存资源和计算资源可在不同的执行节点之间切换。例如,一个执行节点可包含相当多的计算资源和最小的缓存资源,使执行节点对需要相当多的计算资源的任务有用。另一个执行节点可包含相当多的缓存资源和最小的计算资源,使该执行节点对需要数据的大量的缓存的任务有用。在一些实施方式中,当执行节点基于由该执行节点实施的期望的任务被创建时,与特定的执行节点相关的缓存资源和计算资源被确定。
[0061]另外,与特定的执行节点相关的缓存资源和计算资源被可基于改变由执行节点实施的任务而随时间改变。例如,如果由执行节点实施的任务变得更处理器密集,则该特定的执行节点可被分配更多的处理资源。类似地,如果由执行节点实施的任务需要更大的缓存容量,则该执行节点可被分配更多的缓存资源。
[0062]尽管虚拟仓库502-506与图3的相同的执行平台312相关,虚拟仓库可使用多个地理位置处的多个计算系统来实现。例如,虚拟仓库502可由处于从第一地理位置处的计算系统实现,而虚拟仓库504和506由处于第二地理位置处的另一个计算系统来实现。在一些实施方式中,这些不同的计算系统是由一个或多个不同的实体维护的基于云的计算系统。
[0063]另外,每个虚拟仓库在图5中被示出为具有多个执行节点。与每个虚拟仓库相关的多个执行节点可使用处于多个地理位置的多个计算系统实现。例如,虚拟仓库502的特定实例实现在特定地理位置处的一个计算平台上的执行节点508和510,并在另一个地理位置处的不同的计算平台处实现执行节点512。选择特定的计算系统以实现执行节点可取决于各种因素,诸如特定执行节点所需要的资源的等级(如,处理资源需求和缓存需求)、在特定计算系统处可用的资源、在地理位置内或地理位置之间的网络的通信能力以及哪个计算系统已经实施在虚拟仓库中的其它执行节点。执行平台312也是容错的。例如,如果一个虚拟仓库故障,该虚拟仓库被快速地用不同地理位置处的不同的虚拟仓库代替。[0〇64]特定的执行平台312可包括任意数量的虚拟仓库502-506。另外,在特定执行平台中的虚拟仓库的数量是动态的,使得当额外的处理和/或缓存资源被需要时新的虚拟仓库被创建。类似地,当与虚拟仓库相关的资源不再必要时,现有的虚拟仓库可被删除。
[0065]图6是描绘示例计算设备600的框图。在一些实施方式中,计算设备600被用于实现本文讨论的一个或多个系统和组件。例如,计算设备600可允许用户或管理员访问资源管理器302。此外,计算设备600可与本文描述的任何系统和组件交互。相应地,计算设备600可用于实施各种过程和任务,诸如本文讨论的那些。计算设备600可起到服务器、客户端或任何其它计算实体的作用。计算设备600可以是任意的各种各样的计算设备,诸如台式计算机、 笔记本式计算机、服务器计算机、手持计算机、平板电脑等。[0〇66] 计算设备600包括一个或多个处理器602、一个或多个存储器设备604、一个或多个接口 606、一个或多个大容量存储设备608以及一个或多个输入/输出(I/O)设备610,这些全部被耦合到总线612。处理器602包括执行储存在存储器设备604和/或大容量存储设备608 中的指令的一个或多个处理器或控制器。处理器602还可包括各种类型的计算机可读介质, 诸如缓存存储器。[〇〇67]存储器设备604包括各种计算机可读介质,诸如易失性存储器(如,随机存取存储器(RAM))和/或非易失性存储器(如,只读存储器(ROM))。存储器设备604还可包括可重写的 R0M,诸如闪存。
[0068]大容量存储设备608包括各种计算机可读介质,诸如磁带、磁盘、光盘、固态存储器 (如,闪存)等。各种驱动器也可被包括在大容量存储设备608中以使能对各种计算机可读介质的读出和/或写入。大容量存储设备608包括可移动介质和/或不可移动介质。
[0069]I/O设备610包括允许数据和/或其它信息被输入到计算设备600或从计算设备600 取回的各种设备。示例I/O设备610包括光标控制设备、键盘、小键盘、传声器、监视器或其它显示设备、扬声器、打印机、网络接口卡、调制解调器、CCD或其它图像捕获设备等。
[0070]接口606包括允许计算设备600与其它系统、设备或计算环境交互的各种接口。示例接口 606包括任意数量的不同的网络接口,诸如与局域网(LAN)、广域网(WAN)、无线网络和因特网的接口。[〇〇71]总线612允许处理器602、存储器设备604、接口 606、大容量存储设备608和I/O设备 610与彼此以及耦合到总线612的其它设备或组件通信。总线612表示总线结构的几个类型中的一个或多个,诸如系统总线、PCI总线、IEEE 1394总线、USB总线等。
[0072]出于说明的目的,程序和其它可执行程序组件在本文中被示出为离散的框,尽管应理解这种程序和组件可在各种时间处存在于计算设备600的不同的存储组件中,并可由处理器602执行。可选地,本文描述的系统和过程可在硬件或硬件、软件和/或固件的组合中实现。例如,一个或多个专用集成电路(ASIC)可经编程来执行本文所描述的系统和程序中的一个或多个。
[0073]尽管本公开根据特定的优选实施方式来描述,其它实施方式对于本领域中的那些普通技术人员是明显的,给定本公开的优势,包括不提供本文阐述的所有的优势和特征的实施方式,其也落入本公开的范围。将理解,其他的实施方式可以被利用而不偏离本公开的范围。
【主权项】
1.一种用于储存半结构化数据的方法,包括:接收来自数据源的半结构化数据元素;当所述半结构化数据元素的集合被添加到数据库时,实施对它们的统计分析;从所述半结构化数据内识别公共数据元素;根据公共性阈值将所述公共数据元素分配为第一等级数据和次要等级数据;将来自所述数据源的所述公共数据元素合并到单独的伪列中;以及将第一等级数据在缓存存储器中储存在伪列中并使对应于所述第一等级数据元素的 所述伪列的元数据和统计信息对基于计算机的查询生成器可用。2.如权利要求1所述的方法,还包括从所述半结构化数据内重新识别公共数据元素并 将额外的公共数据元素分配为第一等级数据,并将所述额外的数据元素保存在缓存存储器 中。3.如权利要求2所述的方法,还包括识别已经落到所述公共性阈值以下的第一等级数 据元素并分配次要等级给所识别的数据元素,并从缓存存储器中移除。4.如权利要求1所述的方法,其中,所述公共性阈值是关于所述数据元素出现在所述半 结构化数据中的频率的计数。5.如权利要求1所述的方法,其中,所述公共性阈值是数据元素被用户请求的频率。6.如权利要求1所述的方法,还包括将次要等级数据储存在磁盘储存器上的伪列中。7.如权利要求2所述的方法,还包括将非公共半结构化数据元素储存在溢出序列化列 中。8.如权利要求7所述的方法,还包括通过将所述第一等级数据元素、所述次要等级数据 元素以及所述非公共数据合并来将半结构化数据重构回到原始形式。9.如权利要求7所述的方法,还包括用表示当前伪列结构和内容的更新来维护聚合的 元数据。10.如权利要求1所述的方法,还包括将次要等级数据储存在主存储器中。11.一种用于聚合半结构化数据的系统,包括计算机处理器、缓存存储器、磁盘储存器 和计算机指令,所述系统还包括:接收模块,其被配置为接收来自数据源的半结构化数据元素;统计分析模块,其被配置为得到在所述半结构化数据元素的集合被添加到数据库时得 到的对应于所述集合的统计分析数据;识别模块,其被配置为从所述半结构化数据内识别公共数据元素并被配置为根据公共 性阈值将公共数据元素分配为第一等级数据和次要等级数据;聚合模块,其被配置为将来自所述数据源的公共数据元素合并到单独的伪列中;以及其中,所述聚合模块被配置为将第一等级数据储存在缓存存储器的伪列中,并被配置 为使所述第一等级数据元素的所述伪列的元数据和统计信息对基于计算机的查询生成器 可用。12.如权利要求11所述的系统,其中,所述识别模块还被配置为从所述半结构化数据内 重新识别公共数据元素,并还被配置为将额外的公共数据元素分配为第一等级数据并将所 述额外的数据元素保存在缓存存储器中。13.如权利要求12所述的系统,其中,所述识别模块还被配置为识别已经落到所述公共性阈值以下的第一等级数据元素并分配次要等级给所识别的数据元素并从缓存存储器中移除。14.如权利要求11所述的系统,其中,所述公共性阈值是关于所述数据元素出现在所述半结构化数据中的频率的计数。15.如权利要求11所述的系统,其中,所述公共性阈值是数据元素被用户请求的频率。16.如权利要求11所述的系统,其中,较低等级数据被储存在磁盘储存器上的伪列中。17.如权利要求11所述的系统,其中,非公共半结构化数据元素被储存在溢出序列化列中。18.如权利要求17所述的系统,其中,半结构化数据被重构成具有重新合并的第一等级数据元素和次要等级数据的原始形式。19.一种用于聚合半结构化数据的设备,包括: 接收模块,其被配置为接收来自数据源的半结构化数据元素; 统计模块,其被配置为得到在所述半结构化数据元素的集合被添加到数据库时得到的对应于所述集合的统计分析数据;以及 聚合装置,其用于从所述半结构化数据内识别公共数据元素并用于根据公共性阈值将公共数据元素分配为第一等级数据和次要等级数据,所述聚合装置还用于将来自所述数据源的公共数据元素合并到单独的伪列中,并且所述聚合装置还用于将第一等级数据储存在缓存存储器中的伪列中。20.如权利要求19所述的设备,其中,所述聚合装置还从所述半结构化数据内重新识别公共数据元素,并还将额外的公共数据元素分配为第一等级数据并将所述额外的数据元素保存在缓存存储器中。21.如权利要求20所述的设备,其中,所述聚合装置还识别已经落到所述公共性阈值以下的第一等级数据元素并且还分配次要等级给所识别的数据元素并从缓存存储器中移除。22.如权利要求19所述的设备,其中所述聚合装置还基本上持续地用表示当前伪列结构和内容的更新来维护聚合的元数据。
【文档编号】G06F17/30GK106030573SQ201580009233
【公开日】2016年10月12日
【申请日】2015年2月18日
【发明人】本诺特·戴奇维勒, 瓦迪姆·安东诺夫
【申请人】斯诺弗雷克计算公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1