使用列式数据库中的直方图进行有效查询处理的利记博彩app

文档序号:9355217阅读:297来源:国知局
使用列式数据库中的直方图进行有效查询处理的利记博彩app
【专利说明】
【背景技术】
[0001]随着用以创建、追踪和保持信息的组织的技术能力持续增强,已开发出用于管理和存储处于上升趋势的信息的各种不同技术。例如,数据库系统对客户端提供诸多不同专用或定制配置的硬件和软件以管理存储的信息。然而,必须存储和管理的数据组织的量增加通常对应地增加数据存储和管理技术(如同数据库系统)的大小和复杂度,其转而升级为增加维护信息的成本。新技术越来越多地寻求在改善数据存储和数据管理的效率的同时,降低维护数据的复杂度和存储需求两者。
[0002]—种此类技术涉及随着数据存储在数据库表单中而使用面向列的数据库表单(通常称为“列式”)修改数据的定向或排列以减少管理数据所要的访问操作的次数。通常,访问操作(诸如各种输入(例如,写入数据)和输出(例如,读取数据))已被证明在存储和管理数据时最昂贵且最低效。对于某些类型的数据,在例如数据库系统响应于查询主要出现于数据库表单的列而非数据库表单的行中的信息时,列式数据库显著地减少访问操作的次数。又,甚至随着诸如列式数据库表单的技术的出现,收集的信息的持续增长要求对数据存储和管理的进一步优化。
【附图说明】
[0003]图1示出根据一些实施方案的使用列式数据库的列的高度平衡直方图进行有效查询处理的数据流方框图。
[0004]图2为示出根据一些实施方案的示例性分布式数据库库存服务的方框图。
[0005]图3为示出根据一些实施方案的示例性分布式数据库存群集的方框图。
[0006]图4A为示出根据一些实施方案的示例性领导节点的方框图。
[0007]图4B为示出根据一些实施方案的示例性计算节点的方框图。
[0008]图5为示出根据一些实施方案的用以使用列式数据库表单的列的直方图处理查询的方法的高级流程图。
[0009]图6为示出根据一些实施方案的用以确定表示列式数据库表单中的列的数据的均匀分布的直方图的桶范围大小的方法的高级流程图。
[0010]图7为示出根据一些实施方案的用以生成表示列式数据库表单中的列中的数据的直方图中的每个桶的位图的方法的高级流程图。
[0011]图8示出根据一些实施方案的用以响应于查询列式数据库表单的列中的数据而确定哪些数据块无需读取的方法的流程图。
[0012]图9示出根据一些实施方案的用以响应于检测再平衡事件而修改数据块的概率数据结构的方法的流程图。
[0013]图10示出根据一些实施方案的用以更新数据块的概率数据结构的方法的流程图。
[0014]图11示出根据一些实施方案的示例性系统。
[0015]虽然本文中通过对若干实施方案和说明图举例来描述实施方案,但所属领域的技术人员将认识到,实施方案不限于所述实施方案或图。应了解,所述图和其详述并非意在将实施方案限于所公开的特定形式,但相反,意在涵盖落在如由所附权利要求书界定的精神和范围内的所有修改、等效物和替代物。本文中所使用的标题仅用于组织目的且并非意在用以限制本发明描述或权利要求书的范围。如贯穿本申请所使用,在许可意义(即,意指可能)而非强制性意义(即,意指必须)上使用单词“可以”。相似地,单词“包括(include、including和includes) ”意指包括但不限于。
【具体实施方式】
[0016]在下文详述中,陈述众多特定详情以完全地了解所要求主题。然而,所属领域的技术人员将了解,可以在没有这些特定详情的情况下实践所要求主题。在其它实例中,不详细描述所属领域的一般技术人员已知的方法、装置或系统以免使所要求主题不清楚。
[0017]还将了解,尽管术语第一、第二等可以在本文中用以描述各种元件,但这些元件不应受限于这些术语。这些术语仅用以区别一个元件与另一元件。例如,在不背离本发明的范围的情况下,第一接触件可称为第二接触件,且相似地,第二接触件可称为第一接触件。第一接触件和第二接触件均为接触件,但不是相同接触件。
[0018]本发明描述中所使用的术语仅用于描述特定实施方案的目的且并非意在限制本发明。如本发明描述和所附权利要求书中所使用,除非上下文另有清楚指示,否则单数形式“一(a)”、“一(an)”和“所述”也意在包括复数形式。还将了解,如本文中所使用的术语“和/或”指代且涵盖相关联所列项中的一个或多个的任何和所有可能组合。还将了解,术语“包括(includes、including、comprises和/或comprising) ”在本说明书中被使用时指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
[0019]如本文中所使用,术语“如果”可以被解释为意指“在…时”、“在…之后”或者“响应于确定”或“响应于检测”,这取决于上下文。相似地,术语“如果确定”或“如果检测到[所述条件或事件]”可以被解释为意指“在确定…之后”或“响应于确定”或者“在检测到[所述条件或事件]之后”或“响应于检测到[所述条件或事件]”,这取决于上下文。
[0020]本文中描述使用列式数据库的列的直方图进行有效查询处理的各种实施方案。数据库管理服务(诸如分布式数据库存系统或其它数据库管理系统)可以实施面向列的数据库表单(后文中称为“列式数据库表单”)以对客户端提供有效数据管理。通常,根据数据库表单中的一列(诸如按日期)对列式数据库表单中的数据进行分类。在确定是否阻止针对列对数据进行分类时(根据其对数据进行分类),可以存储或估计每个数据块的不同范围,从而允许查询仅引导具有已知可能存储在数据块中的请求的数据的所述数据块的读取。然而,仅可以在响应于查询列中的数据时(根据其对列式数据库表单进行分类)应用这种技术,因为一次仅可以对一列进行分类。
[0021]直方图表示通常称为桶的不同值范围内的数据集的分布。例如,天气温度的直方图可以示出条线图,其示出高温在90s、80s、70s等的天数。表示直方图的条线图中的条线的高度可以变化很大,因为一些值范围可以具有数据集中的更多频遇值。然而,高度平衡直方图提供值范围的不同大小(即,桶),使得所绘直方图的条线的高度将是均匀的或平衡的。列式数据库表单的列可以包括不同频率的数据值。可以使用基于这些数据值生成的直方图来识别存储在数据块中的值的不同范围,且因此确定哪些块无需读取。在至少一些实施方案中,基于这些数据值生成的高度平衡直方图可以提供足够多的选择性(例如,特定桶中的数据值的判别或概率)来处理查询,使得在接收到查询时,可以使用列的高度平衡直方图来确定存储列数据的哪些数据块无需读取。例如,接着可以执行少数读取操作(或其它各种访问操作)以获得用以服务接收的查询的数据。因此,通过使用列式数据库的列的直方图或高度平衡直方图来处理查询,一些实施方案可以提供对大量数据的更有效管理和访问。
[0022]对客户端(或顾客、组织、实体等)来说,不少见的是收集可能要求后续存储或管理的大量数据。尽管一些客户端可能希望对这个数据实施自身的数据管理系统,但越来越明显的是,获得数据管理服务可以证明是不希望管理自身数据的那些客户端的更有效且划算的选择。例如,小企业可能希望维护销售记录和相关数据用于未来数据分析。或者,小企业可能发现更有效的是,承包数据管理服务来存储和管理其数据而非直接投资在数据管理系统中来维护数据以及设置和维护系统所要的专业知识。
[0023]数据管理服务(诸如下文关于图2到图4B所论述的分布式数据库存服务)可以根据其各种需要对客户端提供各种不同数据管理服务。在一些情况中,客户端可能希望存储和维护大量数据,诸如销售记录营销、管理报告、业务流程管理、预算预测、财务报告、网站分析或诸多其它类型或种类的数据。客户端对数据的使用还可以影响用以存储数据的数据管理系统的配置。例如,对于某些类型的数据分析和其它操作(诸如将来自少数列的大数据集聚合在每行内的操作),列式数据库表单可以提供更有效的性能。换句话来说,来自数据库表单的列信息可以存储到磁盘上的数据块中,而非将整行的列信息存储在每个数据块中(如在传统数据库方案中)。
[0024]在一些实施方案中,以这种列式方式存储表单数据可以降低对各种查询的总磁盘I/O需求且可以改善分析查询性能。例如,以列式方式存储数据库表单信息可以减少在作为处理查询的部分而将数据检索到存储器中以执行数据库操作时(例如,在检索表单中的所有行的所有列字段值时)执行的磁盘I/O请求的次数且可以减少需要在处理查询时从磁盘加载的数据量。相反地,对于给出次数的磁盘请求,相比于每个数据块存储整个表单行的情况,可以检索多得多的行的列字段值。在一些实施方案中,还可以使用匹配列式存储数据类型的压缩方法降低磁盘需求。例如,因为每个块包括统一数据(即,均为相同数据类型的列字段值),所以还可以通过应用最适于特定列数据类型的压缩方法降低磁盘存储和检索需求。在一些实施方案中,用于在磁盘上存储仅包括单列的字段值的数据块的空间的节省可以转化成在检索数据且接着将该数据存储在系统存储器中时(例如,在分析或以其它方式处理检索的数据时)的空间的节省。例如,对于仅需要对一列或少数列进行访问和/或操作一次的数据库操作,相比于传统基于行的存储,可能要求更少的存储器空间,因为仅存储实际上需要执行查询的特定列中的数据的数据块可以被检索并存储在存储器中。为了提高实施列式数据库表单的效率,可以生成列式数据库的列的直方图以创建用以在响应于查询时确定无需读取的数据块的概率数据结构。
[0025]图1示出根据一些实施方案的使用列式数据库的列的高度平衡直方图进行有效查询处理的数据流方框图。可以基于存储在列式数据库表单的列132中的多个数据块中的数据值创建高度平衡直方图110。可以确定直方图110的桶范围大小使得数据值均匀地分布在所述直方图的桶120当中。可以创建指示高度平衡直方图110中的桶110中的哪些特定桶存在存储在数据块中的数据值的概率数据结构。更一般来说,可以使用概率数据结构来测试给出值是否为数据集的成员,诸如存储在数据块中的数据值的集。概率数据结构可以确定无疑地指示特定值不是数据值的集的成员。为了服务于涉及列132的对选择数据的查询140,可以检验超级块数据结构100中的各自条目以确定哪些块无需读取。
[0026]存储装置130可以为一个或多个存储器件,诸如被配置来存储列式数据库表单的数据的存储磁盘器件或其它类型的存储器件。在图1中,存储装置130被配置来存储多列数据,包括列132。例如,数据可以为以下项的清单:日期、引文、数量或网络度量和更一般来说能够存储在列式数据库表单的列的数据块中的任何其它类型或形式的数据值。在各种实施方案中,不对存储在列中的数据值进行分类。数据块可以为将这些数据值存储在数据库或其它存储系统中的数据存储单元(例如,数据页)、逻辑抽象或物理存储块。列式数据库表单可以为被配置来将列的数据值存储在一起的面向列的数据存储系统。在至少一些实施方案中,可以跨分布式数据库系统中的多个不同节点分布存储装置130。
[0027]可以基于存储在列132中的数据块的数据值生成直方图110。为了确定桶120的桶范围大小,可以获得来自数据块的列数据。接着可以生成多个桶,其可以明显多于可以存储在数据块中的值的数量。可以设置所述桶的桶范围大小,使得列数据均匀地分布在所述桶当中。图1示出不同桶120的范围大小。例如,零售商可以将关于在一定时间周期内从零售商购买物品的顾客的人口统计信息(诸如年龄)存储在列式数据库表的列中。如果顾客年龄高度集中于某个年龄范围(例如,45到60岁)而其余顾客年龄较分散,那么具有均匀桶大小范围(例如,10年)的直方图可以具有具高数量的40-50和50-60个顾客的2个桶以及具少得多的数量的顾客的其它桶。替代地,桶范围大小可以在桶范围大小上变化,使得一些桶范围可以包括年龄0-25,而其它桶可以较小(45-47),使得跨所有桶均匀地分布每个桶中表示的顾客的数量。
[0028]可以基于桶范围大小120生成每个数据块的概率数据结构。这些概率数据结构指示针对桶120中的哪些桶数据值在由所述桶表示且存储在数据块内的值的范围内。在一些实施方案中,如
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1