当前位置: 首页 > 专利查询>谷歌公司专利>正文

记录的列状存储表示制造技术

技术编号:8493995 阅读:170 留言:0更新日期:2013-03-29 06:45
计算机系统访问数据记录的集合。该集合中的每个记录包括多个数据值以及从该多个数据值标识出相对应数据值的语义的多个数据元素。一个或多个数据记录中的每个包括相同数据元素的多个实例,并且包括对应于该相同数据元素的多个实例的数据值。该计算机系统生成列状条带的集合。该列状条带集合包括来自数据记录集合中的每个数据记录的数据值。该列状条带集合中的每个列状条带包括对应于来自记录集合中的每个记录的具体数据元素的所有数据值。

【技术实现步骤摘要】
【国外来华专利技术】记录的列状存储表示相关申请的交叉引用本申请要求于2010年4月5日提交的第61/321106号美国临时申请和于2010年4月7日提交的第61/321688号美国临时申请的权益。
本文档总体上描述了用于生成并处理记录的列状存储表示的技术、方法、系统和机制。
技术介绍
本公开总体上涉及大规模分析数据处理。这样的数据处理在网络公司中且跨产业已经变得非常普遍,尤其是由于使得能够采集大量商业关键数据的低成本存储。将该数据放在分析师和引擎的指尖已经显得越来越重要;交互响应时间经常在数据探测、监视、在线消费者支持、快速成形、数据管线调试和其它任务中形成质量差异。按规模执行交互式数据分析要求高度并行、例如,使用当今的商品磁盘在一秒钟内读取一兆兆字节的压缩数据将需要数万个磁盘。类似地,CPU密集查询可能需要在数千个核上运行以在数秒之内完成。
技术实现思路
这里公开了一种用于数据分析的可扩展、交互式ad-hoc查询系统。通过将多级执行树与列状逐句布局相结合,所描述的系统和方法能够运行诸如整合查询之类的快速且高效的查询。描述了用于嵌套记录的列状存储表示,所述嵌套记录是可以在许多网络规模和科学数据集中使用的流行数据模型。依据一个实施例,记录被分解为列条带,每个列被编码为块的集合,每个块包含字段值以及重复和定义级别信息。级别信息使用字段写入器(writer)的树生成,其结构与记录模式中的字段层级相匹配。可以有效地使用有限状态机从列状数据组成记录,该有限状态机读取字段数据以及每个字段的级别信息并且将值顺序附加至输出记录。如果仅字段的子集需要被获取,则能够构造其执行更为廉价更为简单的有限状态机。此外通过利用列状存储表示存储诸如约束信息之类的附加元数据,能够支持附加类型的查询。多级服务树被用来执行查询。在一个实施例中,根服务器接收传入的查询,从表读取元数据,并且将该查询路由至服务树中的下一级别。叶服务器与存储层进行通信并且访问本地存储上的数据,其中所存储的数据能够被复制,并且读取列状表示中嵌套数据的条带。每个服务器可以具有对应于物理查询执行计划的内部执行树,其包括对输入列进行扫描并且发出利用级别信息进行注释的聚集和标量函数的结果的迭代器集合。在另一个实施例中,提供查询分派器,其基于查询的属性对它们进行调度并且平衡负载。查询分派器在一个服务器变得明显比其它服务器更慢或者当副本(replica)变为无法访问时提供容错。查询分派器能够计算叶服务器上的执行线程的处理时间的直方图并且当处理时间占用不成比例的时间量时重新调度至另一个服务器。可以就地对列状数据进行查询。将列状数据在普通存储层上维护并且提供机制以对来自列状数据的记录进行整合支持对记录结构的数据进行分析的数据管理工具的可操作性。该系统可以为数个处理器的规模并且能够快速读取大量数据。在某些实例中,特定实施例能够被实施为实现以下的一种或多种优势。嵌套数据可以在原地进行操作,以使得数据可以被访问而并不利用数据库管理系统加载该数据。可以以比其它分析程序所需的时间有所减少的执行时间来执行嵌套数据的查询。在普通存储层上实现的列状存储数据结构使得多个不同分析程序能够访问该列状存储数据结构。作为所附权利要求以及以上描述中所描述实施例的备选,本专利技术也可以通过以下实施例之一进行描述:实施例1针对一种计算机实施的方法。该方法包括由计算系统访问存储在计算机存储器中的数据记录的集合,该数据记录集合中的每个记录包括多个数据值以及标识出来自该多个数据值的对应数据值的语义的多个数据元素,该数据记录集合中的一个或多个数据记录中的每个包括相同数据元素的多个实例,并且包括对应于该相同数据元素的多个实例的数据值。该方法进一步包括由计算机系统生成列状条带的集合,该列状条带集合包括来自数据记录集合中的每个数据记录的数据值,该列状条带集合中的每个列状条带包括对应于来自记录集合中的每个记录的具体数据元素的所有数据值。实施例2针对实施例1的方法。该方法进一步包括由计算系统且对于列状条带集合中的每个列状条带中的每个数据值生成识别来自该数据记录集合的相应数据记录中的相应数据值的位置的数据。实施例3针对实施例2的方法,其中该数据由重复值和定义值所构成。实施例4针对实施例2至3中任一项的方法。该方法进一步包括从(i)列状条带集合中的列状条带,和(ii)数据来重构仅包含来自该数据记录集合中的记录的数据元素子集的记录集合。实施例5针对实施例1至4中任一项的方法,进一步包括生成该列状条带集合中的每个特定数据值的重复值,以与该列状条带集合中的数据值一起存储,其中每个特定数据元素的路径包括对该特定数据元素的任意一个或多个父数据元素;其中每个特定数据值的重复值标识出对应于特定数据值的特定数据元素的路径中最近重复的数据元素;其中特定数据元素的路径中的该最近重复过的数据元素是在包括该特定数据值的特定数据记录的分析期间在特定数据元素的路径中第二次遇到的数据元素,该分析从特定数据值在特定数据记录中的位置向上朝着特定数据记录的开始进行。实施例6针对实施例1至5中任一项的方法,其中该数据元素集合中所包括的数据元素中的每个特定数据元素与包括对该特定数据元素的任意一个或多个父数据元素的相应路径相关联。该方法进一步包括生成该数据记录集合中的每个特定路径或特定路径部分的定义值,以与该列状条带中的数据值一起存储。特定路径或特定路径的部分的定义级别标识出该特定路径或路径的部分中所包括的数据元素的数量。实施例7针对实施例1至6中任一项的方法。该方法进一步包括由计算系统从数据源集合接收信息,每个数据源包括未根据模式而结构化的信息。该方法进一步包括由计算系统通过根据该模式对每个数据源中的信息进行结构化而生成该数据记录集合中的每个数据记录。实施例8针对实施例1至7中任一项的方法。该方法进一步包括由计算系统执行对该列状条带集合的查询。该方法进一步包括由计算系统且响应于查询的执行而输出新的列状条带,该新的列状条带包括来自由该查询所标识出的列状条带集合的列状条带的值的子集。实施例9针对实施例8的方法。其中执行该列状条带集合的查询而并不将该列状条带集合中所包括的数据值加载到数据库中。实施例10针对实施例1至9中任一项的方法,其中该列状条带集合的至少第一列状条带包括多个数据块,该多个数据块中的至少一些数据块中的每个包括定义了在每个块的值中所找到的值类型的声明值,从而使得在执行第一列状条带的查询时,该计算系统避免不包括由该查询所指定的数据值的一个或多个数据块。实施例11针对实施例1至10中任一项的方法,其中该列状条带集合的第一列状条带包括来自该数据记录集合中的对应于该数据记录集合中的第一数据元素的实例的数据记录中的所有数据值,作为第一数据值。该第一列状条带在存储器中连续存储多个第一数据值,其中多个第一数据值在多个第一数据值存储在该数据记录集合中的数据记录中时,并不在存储器中连续存储。实施例12针对实施例1至11中任一项的方法,其中该数据记录集合中的至少一个数据记录包括根据嵌套数据模型所存储的数据元素和对应的数据值。实施例13针对实施例1至12中任一项的方法,其中第一数据记录包括第一数据元素和第二数据元素,第一数据元素是第二数据元素的父数据元素,并且第二数据元素是第一数据元素的子数据元素本文档来自技高网...
记录的列状存储表示

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.04.05 US 61/321,106;2010.04.07 US 61/321,6881.一种计算机实现的方法,包括:由计算系统访问存储在计算机存储器中的数据记录集合,所述数据记录集合中的每个记录包括多个数据值以及标识出来自所述多个数据值的对应数据值的语义的多个数据元素,所述数据记录集合中的一个或多个数据记录中的每个包括相同数据元素的多个实例,并且包括对应于所述相同数据元素的所述多个实例的数据值;由所述计算系统生成列状条带集合,所述列状条带集合包括来自所述数据记录集合中的每个数据记录的所述数据值,所述列状条带集合中的每个列状条带包括对应于来自所述记录集合中的每个所述记录的具体数据元素的所有数据值;由所述计算系统针对所述列状条带集合中每个列状条带中的每个数据值生成以下数据:(i)其标识出来自所述数据记录集合的相应数据记录中的相应数据值的位置;以及(ii)其能够与所述列状条带一起使用以重构所述数据记录集合。2.根据权利要求1所述的方法,其中所述数据由重复值和定义值所构成。3.根据权利要求1至2中任一项所述的方法,进一步包括根据(i)所述列状条带集合中的所述列状条带,和(ii)所述数据来重构仅包含来自所述数据记录集合中的所述记录的数据元素的子集的记录集合。4.根据权利要求1至2中任一项所述的方法,进一步包括生成所述列状条带集合中每个特定数据值的重复值,以与所述列状条带集合中的所述数据值一起存储,其中每个特定数据元素的路径包括对所述特定数据元素的任意一个或多个父数据元素;其中每个特定数据值的所述重复值标识出对应于所述特定数据值的所述特定数据元素的所述路径中最近重复过的数据元素;其中所述特定数据元素的所述路径中的所述最近重复过的数据元素是在包括所述特定数据值的特定数据记录的分析期间在所述特定数据元素的所述路径中第二次遇到的数据元素,所述分析从所述特定数据值在所述特定数据记录中的位置向上朝着所述特定数据记录的开始进行。5.根据权利要求1至2中任一项所述的方法,其中所述数据元素集合中所包括的所述数据元素中的每个特定数据元素与包括对所述特定数据元素的任意一个或多个父数据元素的相应路径相关联;进一步包括生成所述数据记录集合中的每个特定路径或所述特定路径的部分的定义值,以与所述列状条带中的所述数据值一起存储;其中所述特定路径或所述特定路径的部分的定义级别标识出所述特定路径或路径的部分中所包括的数据元素的数量。6.根据权利要求1至2中任一项所述的方法,进一步包括:由所述计算系统从数据源集合接收信息,每个数据源包括未根据模式而结构化的信息;以及由所述计算系统通过根据所述模式对每个数据源中的所述信息进行结构化而生成所述数据记录集合中的每个数据记录。7.根...

【专利技术属性】
技术研发人员:A·古巴雷夫S·梅尔尼克J·J·隆G·M·罗梅尔N·施瓦屈玛尔M·B·托尔顿T·瓦西拉基斯
申请(专利权)人:谷歌公司
类型:
国别省市:

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

1