用于针对时限结果提供备用查询建议的方法和查询建议服务器与流程

文档序号:11450538阅读:249来源:国知局
用于针对时限结果提供备用查询建议的方法和查询建议服务器与流程
本发明通常涉及数据库管理系统,尤其涉及用于针对时限结果提供备用查询建议的系统和方法。
背景技术
:通常,大数据包括存储在大数据存储设备(简称为数据存储设备)中的大型复杂的数据的集合。大型复杂的数据以数据块形式存储,对该数据块通常会编索引,排序和压缩。数据存储设备提供高效的工具来探索数据存储设备中的数据,以响应用户指定的一个或多个查询。大数据查询消耗了大量的时间。响应时间可能从几个小时到几天。因此,通常对大数据只进行了后台/批量处理,用户无法及时作出决策。进一步地,用户不知道查询会需要多长时间来执行,因此,用户无法做任何时限分析。用于对大数据进行时限分析的常规方法较少。图1a采用了针对在关系型数据库管理系统(relationaldatabasemanagementsystem,简称rdbms)中的查询执行的软时间约束方法。在这种方法中,逻辑模块对该查询进行简单约束,以将查询执行时间减少至用户预期的时间。在这种常规方法中,增加了两种类型的约束,即行数约束和样本比例约束。行数约束给查询增加行数限制,以便可以更快地完成该查询。在这种方法中,可以在用户预期的时间内提供查询结果,但用户可能无法获得完整的结果。样本比例约束只从存储器中读取数据的样本。在这种方法中,可以在用户预期的时间内更快地完成查询,但用户可能无法获得准确的结果。总之,这种方法不保证在用户预期的时间内完成该查询。然而,可以在接近用户预期的时间内完成该查询。并且,如果在用户预期的时间内提供查询执行的结果,则该结果可能是部分的或是不完整的。图1b采用了针对查询执行的硬时间约束方法。这种方法类似于软时间约束方法。此外,增加了计时器,以在查询执行超过用户指定的时间时停止查询执行。这种方法保证了在用户指定的时间内完成查询或者终止查询。另一种常规方法使用预定义的样本方法,在该方法中,预先创建数据采样桶,然后在查询中选取一个样本来限制查询时间。在这种方法中,可能不会在数据存储设备中的整个数据运行查询。这种方法的主要方面在于这种方法创建了原始数据的多个不同的采样桶,这是一种离线操作。然后,基于用户预期的时间,该方法选择适当的采样桶,使得能够在用户指定的时间内完成该桶上执行的查询。但是,这种方法不保证在用户预期的时间内完成该查询。然而,查询会在接近用户预期的时间内完成,但最终结果可能不准确。基于部分数据计算该最终结果,这可能对用户没有用。这样的查询执行只是在浪费系统资源以及用户时间。另一种常规方法涉及增加处理硬件来支持时限分析。可以对硬件进行建模,以便能够即时地请求额外的处理资源。因此,可以基于查询时间限制和待完成工作量来确定硬件的大小。这种方法的缺点是该方法成本非常高昂,而且几乎不可行。技术实现要素:本发明的目的是提供一种用于针对时限结果提供备用查询建议的方法。额外的特征和优势通过本发明的技术实现。本发明的其他实施例和方面在此详细描述,并且被认为是该请求保护的发明的一部分。本发明涉及一种用于针对时限结果提供备用查询建议的方法。所述方法包括由查询建议服务器执行的一个或多个步骤。第一个步骤包括:从与用户相关联的用户设备处接收包括一个或多个维度的查询和用于执行所述查询的目标时间。第二个步骤包括:所述查询建议服务器实时确定所接收到的查询的执行时间。第三个步骤包括:当确定所接收到的查询的执行时间超过所述目标时间时,识别一个或多个备用查询建议。最后一个步骤包括:向所述用户设备提供所述一个或多个备用查询建议以便修改所述查询。在一实施例中,本发明的方法包括:所述查询建议服务器接收用户对于所述一个或多个备用查询建议中的一个的选择。所述方法还包括:基于所述选择修改所述查询。在一实施例中,所述一个或多个备用查询建议可由用户全部或部分选择。进一步地,所述方法包括进行以下操作中的至少一种:当确定已修改查询的执行时间超过所述目标时间时,提供一个或多个后续备用查询建议;或者当确定已修改查询的执行时间在所述目标时间内时,提供已修改查询的结果。在一实施例中,如果所述一个或多个备用查询建议全部被选择,则所述查询执行时间小于所述目标时间。这是因为所述一个或多个备用查询建议的确定使得它们的执行时间小于用户指定的目标时间。在一实施例中,如果所述一个或多个备用查询建议部分被选择,则采用部分选择的已修改查询的执行时间需要重新计算。本发明公开了一种用于针对时限结果提供备用查询建议的查询建议服务器。所述查询建议服务器包括:接收模块,用于从与用户相关联的用户设备处接收包括一个或多个维度的查询和用于执行所述查询的目标时间。所述系统还包括:查询时间估计模块,用于实时确定所接收到的查询的执行时间。所述系统也包括:查询估计和改变模块,用于当确定所接收到的查询的执行时间超过所述目标时间时,识别一个或多个备用查询建议。进一步地,所述系统包括:备用查询建议输出模块,用于为所述用户设备提供所述一个或多个备用查询建议以便修改所述查询。在一实施例中,所述查询建议服务器还用于进行一个或多个行为。所述行为包括:接收用户对于所述一个或多个备用查询建议中的一个的选择;所述行为还包括:基于所述选择修改所述查询。在一实施例中,所述一个或多个备用查询建议可由用户全部或部分选择。进一步地,所述行为包括进行以下操作中的至少一种:当确定已修改查询的执行时间超过所述目标时间时,提供一个或多个后续备用查询建议;或者当确定已修改查询的执行时间在所述目标时间内时,提供已修改查询的结果。在一实施例中,如果所述一个或多个备用查询建议全部被选择,则所述查询执行时间小于所述目标时间。这是因为所述一个或多个备用查询建议的确定使得它们的执行时间小于用户指定的目标时间。在一实施例中,如果所述一个或多个备用查询建议部分被选择,则采用部分选择的已修改查询的执行时间需要重新计算。本发明涉及一种非瞬时性计算机可读介质,其特征在于,包括非瞬时性计算机可读介质中存储的操作,当所述操作由至少一个处理器处理时,使得查询建议服务器通过进行以下行为进行一个或多个动作:从与用户相关联的用户设备处接收包括一个或多个维度的查询和用于执行所述查询的目标时间;然后实时确定所接收到的查询的执行时间;进一步地,当确定所接收到的查询的执行时间超过所述目标时间时,识别一个或多个备用查询建议;最后,为所述用户设备提供所述一个或多个备用查询建议以便修改所述查询。本发明涉及一种用于在查询建议服务器上进行一个或多个动作的计算机程序。所述计算机程序包括:用于从与用户相关联的用户设备处接收包括一个或多个维度的查询和用于执行所述查询的目标时间的代码段。所述计算机程序还包括:用于实时确定所接收到的查询的执行时间的代码段。所述计算机程序还包括:用于当确定所接收到的查询的执行时间超过所述目标时间时,识别一个或多个备用查询建议的代码段。所述计算机程序还包括:用于为所述用户设备提供所述一个或多个备用查询建议以便修改所述查询的代码段。在一实施例中,本发明有助于用户在有限的时间内执行查询时更快地作出业务决策。此外,本发明提供了更好的用户体验,因为用户预先知道他们的查询将花费更多的时间,而所述系统有助于用户将所述查询变成更快的查询。在一实施例中,本发明的实施例向用户提供了选择,使其基于其业务需求选择用于改变查询的不同参数。本发明减轻了服务器的负载,因为系统引导用户将所述查询变成更简单/更快的查询。因此,相同的服务器可以支持更多的用户并行地做分析。本发明通过节省时间,成本和计算资源来优化查询执行。上述
发明内容仅是说明性的并无意以任何方式进行限制。除了以上描述的说明性的方面和特征,进一步的方面和特征将通过参考附图和下面的详细描述变得显而易见。附图说明本发明的新颖特点和特征在所附权利要求中进行阐述。但是本发明实施例自身,优选的使用方式,及其进一步的目的和优势,也可以通过参考以下说明性实施例的详细说明结合附图得到最好的理解。现参照附图仅通过示例描述一个或多个的实施例。图1a,1b和1c示出了现有技术提供的用于在用户指定的时间内提供查询结果的方法;图2a示出了本发明一些实施例提供的用于针对时限结果提供备用查询建议的示例性网络架构;图2b示出了本发明一些实施例提供的用于在数据存储设备中存储数据的方法;图3a示出了本发明一些实施例提供的查询建议服务器的详细框图;图3b示出了本发明一些实施例提供的用于估计查询执行的大致时间的方法;图4a示出了本发明一些实施例提供的用于针对时限结果提供备用查询建议的方法的流程图;图4b示出了本发明一些实施例提供的用于针对时限结果提供后续备用查询建议的方法的流程图;图5示出了本发明一些实施例提供的用于针对时限结果提供备用查询建议的方法的详细流程图;图6a至6f示出了本发明一些实施例提供的用于提供备用查询建议的示例性快照;图7示出了用于实现与本发明一致的实施例的示例性计算机系统的框图。附图描绘了本发明的实施例以仅用于说明目的。本领域技术人员将很容易从以下描述中意识到本文中示出的结构和方法的替代性实施例可以在不脱离本文所述的本发明的原理的情况下采用。具体实施方式上文相当宽泛地概述了本发明的实施例的特征和技术优点,目的是让人能更好地理解下文对本发明的详细描述。下文中,将描述本发明的额外特征和优点,其形成本发明的权利要求书的主题。所属领域的技术人员应理解,所公开的概念和具体方面可容易地用作修改或设计用于实现本发明的相同目的的其他结构的基础。所属领域的技术人员还应意识到,此类等效构造不脱离所附权利要求书中所提及的本发明的范围。在本发明中认为是本发明特征的新颖特征,包括其组织和操作方法,以及进一步的目标和优点将在结合附图考虑时通过下面的描述得到更好地理解。但是,应明确理解,提供的每个图仅用于说明性和描述性目的,并非旨在对本发明进行限制。本发明实施例涉及用于针对时限结果提供备用查询建议的方法和系统。用户提供数据存储设备即具有用于接收查询结果的软时限的大数据存储设备的查询。查询建议服务器确定该查询的大致执行时间。如果不能在用户指定的软时限内执行该查询,所述查询建议服务器向用户提供一个或多个备用查询建议。该系统提供的建议使得一个或多个备用查询建议的执行时间在用户提供的软时限内。用户可以选择查询建议服务器提供的一个或多个备用查询建议中的一个。然后基于该用户选择修改该查询。在一实施例中,如果所述一个或多个备用查询建议全部被选择,则所述查询执行时间小于所述目标时间。这是因为所述一个或多个备用查询建议的确定使得它们的执行时间小于用户指定的目标时间。在一实施例中,如果所述一个或多个备用查询建议部分被选择,则采用部分选择的已修改查询的执行时间需要重新计算。查询建议服务器进一步分析是否可以在用户提及的软时限内执行已修改查询。如果可以在软时限内执行已修改查询,则执行查询,并且向用户提供查询结果。在替代性方案中,如果不能在用户提及的软时限内执行已修改查询,则查询建议服务器提供一个或多个后续备用查询建议。用户可以进一步选择系统建议的一个或多个后续备用查询建议中的一个。可以继续这种方法,直到可以在软时限内执行该查询。最后,执行查询,并且向用户显示结果。此后,本发明实施例借助示例性图表和一个或多个示例进行说明。然而,提供这样的示例性图表和示例是为了更好地理解本发明的说明目的,而不应解释为对本发明的范围的限制。图2a示出了本发明一些实施例提供的用于针对时限结果提供备用查询建议的示例性网络架构。如图2a所示,所述架构包括用于提供备用查询建议的查询建议服务器200。所述架构还包括一个或多个用户设备2081,2082,...,208n(统称为用户设备208)和连接至查询建议服务器200的数据存储设备212。如图2所示,该用户设备208通过网络210通信耦合至查询建议服务器202,以便于查询数据存储设备212中的信息。用户设备208包括使用查询建议服务器200的服务的应用程序。具有应用程序的用户设备208可以在各种计算系统中实现,例如便携式计算机,台式计算机,笔记本电脑,工作站,大型计算机,服务器,网络服务器等。用户设备201可以由组织的各种利益相关者或终端用户使用,如项目经理,管理人员和员工。在一实施例中,用户设备208用于相关联的用户创建一个或多个查询。用户设备208安装有一个或多个接口(图2中未示出),用于通过网络210与查询建议服务器200进行通信。在一实现方案中,如图2所示,查询建议服务器200包括中央处理器(centralprocessingunit,简称“cpu”或“处理器”)202,存储器204和接口206。处理器202可以包括:至少一个数据处理器,用于执行程序组件,并且用于执行用户或系统生成的请求。用户可以包括人,即使用设备的人,例如本发明包括的那些人或该设备本身。处理器202用于获取并执行存储在存储器204中的计算机可读指令。在一实现方案中,存储器204通信耦合至处理器202。存储器204存储处理器可执行指令,以向用户提供备用查询建议。查询建议服务器200可以包括:输入/输出(i/o)接口206,用于与一个或多个用户设备208进行通信。在一实现方案中,查询建议服务器200还充当用户设备。因此,直接在查询建议服务器200接收一个或多个查询用于查询执行和用户交互。数据存储设备212存储大数据信息。存储在数据存储设备212中的信息可能与一个或多个机构相关,包括但不限于金融机构,股票,商业机构,政府机关,数据安全中心,社交网络,教育机构,气象预报中心和制造业。例如,数据存储设备212存储有关移动用户,移动设备即移动电话的型号名称,订阅数据,订阅网络的流量使用,订阅计划提供的带宽,国际移动设备标识(internationalmobileequipmentidentity,简称imei)详情,移动设备的品牌名称,订阅计划细节等的信息,这些归入商业机构。在一示例性实施例中,一个或多个机构的信息以预定义的格式或结构或扩展名存储在数据存储设备212中,例如但不限于平面文件,分层在线分析处理数据立方,多维立方,关系数据存储设备,在线分析处理(on-lineanalyticalprocessing,简称olap)数据立方和excel文件。本领域的技术人员应理解,存储大数据信息的数据存储设备的数量可以是任意的。图2b示出了本发明一些实施例提供的用于在数据存储设备212中存储数据的方法。首先,确定数据的分区方案。考虑下面的表1。表1字段类型基数imsi维度(高基数)一亿userplan维度10time维度30天protocol维度300city维度100terminal_type维度300bandwidth维度na在上表中,第一级分区按照‘imsi’维度,第二级按照‘time’维度。考虑有100万个imsi和10个存储节点。因此,每个节点存储100kimsi(第一级分区)的数据。然后考虑每个小时(第二级分区)加载新数据。因此,一个分区对应一小时的数据文件,并且一天内每个节点获得24个这样的分区/文件。在框214中,接收分区数据文件。然后,在框216中,分布式存储管理器(未示出)确定应存储该分区文件的节点,并向节点的所选择的存储管理器(未示出)转发存储请求。该分布式存储管理器采用包括字段,测度和基数信息的数据模式作出决策。在框218中,节点存储管理器将该分区文件存储至数据存储设备212中。在框220中,节点存储管理器在将数据加载到分区时更新分区级统计。在一实施例中,节点存储管理器更新分区大小,记录数,低基数成员记录的百分比等。在框222中,节点存储管理器还基于新数据计算并更新节点级统计。在一实施例中,节点存储管理器更新节点大小,记录数,低基数成员记录的%等。然后在框224中,节点存储管理器将这些更新后的统计发送到更新数据统计310的中央存储管理器(未示出)。在示例性实施例中,仅为低基数字段保存数据统计。图3示出了本发明一些实施例提供的的查询建议服务器的详细框图。在一实现方案中,查询建议服务器200可以在各种计算系统中实现,例如便携式计算机,台式计算机,笔记本电脑,工作站,大型计算机,服务器,网络服务器等。在一实施例中,查询建议服务器200通信连接至数据存储设备212,执行规划器304,查询解析器306和查询时间估计模块308。在一实现方案中,用户通过一个或多个用户设备创建的一个或多个查询由查询解析器306接收。查询解析器306通信连接至所述一个或多个用户设备301。在一实施例中,一个或多个查询包括但不限于:基于多维表达式(multidimensionalexpression,简称mdx)的查询,基于关系型数据库管理系统(relationaldatabasemanagementsystem,简称rdbms)的查询,基于结构化查询语言(structuredquerylanguage,简称sql)的查询,基于非关系型数据库(notonlystructuredquerylanguage,简称nosql)的查询,基于半结构化查询的查询和基于非结构化查询的查询。在一实现方案中,执行规划器304用于从查询解析器306接收一个或多个查询和查询中的维度。然后,执行规划器304基于一个或多个参数确定执行该查询的最佳计划。一个或多个参数可以包括要用于查询执行的线程数,可以从超速缓存内存中读取的数据量和要从数据存储设备中读取的数据量,是否join命令应在查询所有的数据之后或者查询小批量的数据之后完成。执行规划器304连接至数据存储设备212,用于规划查询的执行。在一实现方案中,查询时间估计模块308估计查询执行所需的大致时间。在一实施例中,执行时间基于数据存储设备212中的查询的数据扫描范围,执行所需的扫描计算的可用资源,执行查询的网络输入/输出和扫描速度中的至少一个来确定。此外,包括cpu和存储器等在内的类似集群的可用资源的当前状态用于确定执行时间。执行规划器304可以提供用于执行查询的多个计划,查询时间估计模块308提供每个计划的大致执行时间。基于该信息,执行规划器304确定哪个计划可以更快地执行。在一实施例中,用于估计执行查询的大致时间的方法如图3b所述。首先,当在框330中系统启动时,进行检查以确定分区扫描统计在存储器204中是否可用。如果不可用,则该方法进入框334。在框334中,查询时间估计模块308通过启动少数几个分区处的样本扫描来计算扫描速度。然后,在框336中,节点扫描器扫描少数几个数据分区。然后,在框338中,计算数据分区的平均扫描速度。在框340中,计算出的扫描速度更新至数据统计310中。在替代性方案中,如果分区扫描速度可用,则该方法进入框342。在框342中,该系统具有描绘查询正在执行时的分区的实时扫描速度的守护线程。然后,在框344中,监控不同分区的扫描速度。然后,在框346中,计算出的速度更新至数据统计310中。在一实施例中,查询建议服务器200从执行规划器304,查询解析器306和查询时间估计模块308接收与查询结果相关的数据。在一示例中,数据可以存储在存储器204中。在一实现方案中,数据可以包括例如数据统计310,查询数据312,扫描范围数据314,数据模式316,集群信息数据318和其他数据320。在一实施例中,数据统计310包括与数据存储设备212中存储的数据相关的统计信息。数据统计可以包括但不限于分区数量和每个分区中的数据分布等。查询数据312包括关于用户提出的查询和该查询中的一个或多个维度的信息。扫描范围数据314包括用于执行查询要扫描的分区数量。数据模式316包括关于数据结构的信息,例如字段/列的数量,每个字段的名称和类型,字段的基数,事实,索引和存储顺序/格式。集群信息数据318包括关于节点,每个节点的可用线程和数据分区策略等的信息。例如,节点的数量为10,数据分区为每节点100000国际移动用户识别码(internationalmobilesubscriberidentity,简称imsi),时间分区为每小时一个文件,以及每节点的扫描线程为10。此外,计算信息可以存储在计算统计中。计算统计可包括加入和排序等不同操作的网络速度,磁盘输入/输出吞吐量,网络i/o吞吐量,速度级吞吐量。在一实施例中,数据可以以各种数据结构的形式存储在存储器204中。此外,上述数据可以使用关系型或层次型数据模型等数据模型进行组织。其它数据320可用于存储数据,包括处理器202中的模块生成的用于执行查询建议服务器200的各种功能的临时数据和临时文件。在一实施例中,数据由查询建议服务器200中的模块进行处理。该模块可存储在存储器204中。该模块可以包括例如查询估计和改变模块322,基于资源的统计查询模块324和备用查询建议输出模块326。查询建议服务器200还可以包括其他模块328,以执行查询建议服务器200的各种杂项功能。要理解的是该前述模块可以表示为单个模块或不同模块的组合。在一实现方案中,查询估计和改变模块322用于估计该查询,并利用数据存储设备212中存储的数据的统计来识别针对查询的可能的不同改变。然后,查询估计和改变模块322确定可以向用户建议的最佳选择。该改变使得改变后的查询的执行时间在用户提及的目标时间内。在一实施例中,一个或多个备用查询建议的提供基于所述一个或多个维度的基数,数据存储设备中存储的其他维度的基数和数据存储设备212中存储的数据的统计中的至少一个。基于资源的统计查询模块324用于查询关于存储在数据存储设备212中的数据的统计信息。该数据统计可以包括但不限于分区数量和每个分区中的数据分布等。在一实施例中,备用查询建议输出模块326,用于为所述用户设备提供一个或多个备用查询建议以便修改所述查询。备用查询建议的执行时间在用户提及的目标时间内。图6a至6f示出了本发明一些实施例提供的用于提供备用查询建议的示例性快照。首先,用户通过从数据存储设备212中的维度中选择一个或多个字段来提供查询。用于用户创建查询的一个或多个字段的选择如图6a所示。此外,用户还提供了用于执行查询的软时限。软时限是指用户打算接收查询结果的目标时间。在该示例中,用户选择‘city’和‘terminal_type’作为行字段。此外,用户选择测度为‘bandwidth’。此外,用户提供5分钟的目标时间用于执行查询。查询时间估计模块308估计执行查询所需的大致时间。这里,查询时间估计模块308确定接收到的查询的执行时间需要72分钟。因为查询的执行时间大于用户指定的目标时间,用户接口向用户提供了选项,以查看一个或多个备用查询建议。一个或多个备用查询建议使得备用查询的执行时间在用户提及的目标时间内。此外,向用户提供另一种选项以照常继续查询执行。在图6b中,用户选择查看一个或多个备用查询建议的选项。然后,查询估计和改变模块322提供一个或多个备用查询建议,其中每个备用查询建议的执行时间在用户提及的目标时间内。所述一个或多个备用查询建议可以包括但不限于:将查询范围缩小到两天,将查询范围缩小到只有3个用户计划,以及将查询范围缩小到只有150项协议。用户选择第二种备用方案,其中将在数据存储设备212中只查询三个用户计划。在一个实施例中,用户还可以修改目标时间。在图6c中,在用户接口上设置有供用户选择少数几个用户计划的用户计划列表。用户选择5个用户计划,而不是如系统所建议的3个用户计划。基于实时选择向用户提供15分钟的已修改执行时间。在图6d中,向用户显示已修改查询执行时间。现在,基于所述备用查询建议的选择,执行时间从72分钟缩短到15分钟。但是,因为已修改执行时间仍超过用户提供的目标时间,即5分钟,查询估计和改变模块322向用户提供后续备用查询建议。该后续备用查询建议基于所选择的备用查询建议提供。后续备用查询建议的执行时间在用户提供的目标时间内。在一实施例中,查询估计和改变模块322继续提供所述备用查询建议,直到执行时间等于或小于目标时间。在图6e中,用户从查询估计和改变模块322提供的多个后续备用查询建议中选择一个后续备用查询建议。作为示例,建议查询估计和改变模块322将查询范围缩减到10天。然而,用户选择的时间范围仅为7天。用于执行已修改查询的已修改执行时间被确定为4分钟。最后,用于执行已修改查询的执行时间在用户提及的目标时间内。因此,如图6f所示,执行查询并在用户设备208上向用户显示该查询的结果。如图4a,图4b和图5所示,方法400,401和500包括用于查询建议服务器200提供备用查询建议的一个或多个框。该方法400,401和500可以在计算机可执行指令的一般语境中进行描述。通常,所述计算机可执行指令可以包括例程、程序、对象、组件、数据结构、过程、模块和功能,这些可以执行特定功能或者实现特定抽象数据类型。该方法400,401和500的描顺序不应理解为限制,并且任何数量的所描述的方法框都可以按任何顺序组合以实现该方法400,401和500。另外,在不脱离本文描述的主题的精神和范围的情况下,可以从该方法400,401和500中删除单个框。此外,该方法400,401和500可以通过任何合适的硬件,软件,固件,或其组合实现。图4a示出了本发明一些实施例提供的用于针对时限结果提供备用查询建议的方法的流程图。在框402中,接收包括一个或多个维度的查询和用于执行该查询的目标时间。在一实施例中,查询解析器306从一个或多个用户设备208接收查询。在框404中,实时确定所接收到的查询的执行时间。在一实施例中,所接收到的查询的执行时间由查询时间估计模块308确定。在一实施例中,术语“实时”可以解释为在接收到查询时立即。在框406中,确定所接收到的查询的执行时间是否大于目标时间。如果所接收到的查询的执行时间小于目标时间,则该方法通过‘否’进入框408。在框408中,执行查询并向用户提供查询结果。在替代性方案中,如果所接收到的查询的执行时间大于目标时间,则该方法通过‘是’进入框410。在框410中,识别一个或多个备用查询建议。在一实施例中,备用查询建议的执行时间在用户提供的目标时间内。在框412中,向用户设备提供一个或多个备用查询建议以便修改查询。图4b示出了本发明一些实施例提供的用于针对时限结果提供后续备用查询建议的方法的流程图。在框414中,接收用户对于所述一个或多个备用查询建议中的一个的选择。在框416中,基于所述选择修改查询。在框418中,实时确定已修改查询的执行时间。在框420中,确定已修改查询的执行时间是否大于目标时间。如果已修改查询的执行时间小于目标时间,则该方法通过‘否’进入框422。在框422中,执行已修改查询并向用户提供查询结果。在替代性方案中,如果已修改查询的执行时间大于目标时间,则该方法通过‘是’进入框424。在框424中,当确定已修改查询的执行时间超过目标时间时,提供一个或多个后续备用查询建议。图5示出了本发明一些实施例提供的用于针对时限结果提供备用查询建议的方法的详细流程图。在框502中,用户发出具有软时限的查询,该查询由查询解析器306接收。在框504中,查询解析器306解析查询并识别查询中的低基数字段。查询解析器使用数据统计310来确定查询的低基数字段。在框506中,查询建议服务器200确定低基数字段或时间字段上是否存在任何滤波器。如果不存在滤波器,该方法通过‘否’进入框516。在框516中,查询的扫描范围更新为全部扫描,即要对100%数据和分区进行扫描。在替代性方案中,如果存在滤波器,该方法通过‘是’进入框508。在框508中,启动循环以更新查询中存在的各个滤波器的扫描范围。在框510中,进行检查以确定时间字段中是否存在滤波器。如果时间字段中存在滤波器,该方法通过‘是’进入框512。在框512中,查询建议服务器200基于时间消减需要扫描的分区数量。然后,通过分区数量更新扫描范围314。在替代性方案中,如果非时间字段中存在滤波器,该方法通过‘否’进入框514。在框514中,对应于滤波器的数据的百分比是从数据统计310中检索到的。例如,数据计划=10gb计划,滤波器具有按统计的20%数据,并且通过待扫描数据的百分比更新扫描范围。为查询中的每个滤波器重复框510循环。一旦循环结束,该方法进入框518。在框518中,计算对用于执行查询的数据存储设备212进行扫描所需要的时间。这是通过使用分区扫描范围,扫描速度数据和可用扫描线程数量进行的。此外,查询的数据扫描范围,执行所需扫描计算的可用资源,用于在数据存储设备212中执行查询的网络输入/输出和扫描速度,包括cpu和存储器等在内的类似集群的可用资源的当前状态用于确定该执行时间。在框520中,进行检查以确定该查询的执行时间是否大于目标时间。如果执行时间不大于目标时间,该方法通过‘否’进入框522。在框522中,执行查询并向用户提供查询结果。在替代性方案中,如果该查询的执行时间超过目标时间,则该方法通过‘是’进入框524。在框524中,查询建议服务器200识别数据存储设备212中的可能或不可能在查询中使用的额外的低基数维度字段。在框526中,确定每个字段的备用查询作为滤波器。例如,在图6b中,查询中的字段是city,terminal_type和bandwidth。然而,备用查询建议包括额外的低基数字段,如用户计划,协议等,这些没有在查询中提及。然后,在框528中,进行检查以确定这些额外的字段是否是时间字段。如果这些额外的字段是时间字段,该方法通过‘是’进入框532。在框532中,计算可在给定的目标时间内扫描的分区数量。然后,在框534中,将分区数量转换为数据上的时间范围滤波器,并将其添加作为备用查询建议。在替代性方案中,如果额外的字段为非时间字段,该方法通过‘否’进入框530。在框530中,检查为数据统计310中的额外的字段的不同值所存储的数据百分比。然后,基于指定的目标时间计算所需的数据缩减%,并且确定此%范围内可以容纳的值的个数。传递此信息到框534中,然后将其添加到备用查询建议。对所有额外的字段重复框528循环。循环结束后,该方法进入框538。在框538中,为所识别的值建议备用查询。在框540中,用户选择所建议的选项之一。在框542中,向系统提供更新后的查询用于进一步的备用建议/执行。计算机系统图7示出了用于实现与本发明一致的实施例的示例性计算机系统700的框图。在一实施例中,该计算机系统700用于实现查询建议服务器200。该计算机系统700提供用于用户的时限分析的备用查询建议。该计算机系统700可以包括中央处理器(centralprocessingunit,简称“cpu”或“处理器”)702。处理器702可以包括:至少一个数据处理器,用于执行用于执行用户或系统生成的业务进程的程序组件。用户可以包括人,即使用设备的人,例如本发明包括的那些人或该设备本身。处理器702可以包括专用的处理单元,如集成系统(总线)控制器,存储器管理控制单元,浮点单元,图形处理单元和数字信号处理单元等。处理器702可以设置用于通过i/o接口701与一个或多个输入/输出(i/o)设备(711和712)进行通信。该i/o接口701可以采用通信协议/方法,例如但不限于:音频,模拟,数字,单声道,rca,立体声,ieee-1394,串行总线,通用串行总线(universalserialbus,简称usb),红外线,ps/2,bnc,同轴,组件,合成物,数字视频接口(digitalvisualinterface,简称dvi),高清多媒体接口(high-definitionmultimediainterface,简称hdmi),rf天线,s-video,vga,ieee802.n/b/g/n/x,蓝牙,蜂窝(如码分多址接入(code-divisionmultipleaccess,简称cdma),高速分组接入(high-speedpacketaccess,简称hspa),全球移动通信系统(globalsystemformobilecommunications,简称gsm),长期演进(long-termevolution,简称lte)或wimax等)等。通过i/o接口701,计算机系统700可以与一个或多个i/o设备(711和712)进行通信。例如,输入设备711可以是天线,键盘,鼠标,操纵杆,(红外线)遥控器,摄像机,读卡器,传真机,加密狗,生物识别读卡器,麦克风,触摸屏,触摸板,导航球,手写笔,扫描器,存储设备,收发机,视频设备/源等。输出设备712可以是打印机,传真机,视频显示器(如阴极射线管(cathoderaytube,简称crt),液晶显示屏(liquidcrystaldisplay,简称lcd),发光二极管(light-emittingdiode,简称led),等离子体,等离子显示屏(plasmadisplaypanel,简称pdp)或有机发光二极管(organiclight-emittingdiode,简称oled)等),音频扬声器等。在一些实施例中,处理器702可以设置用于通过网络接口703与通信通络709进行通信。网络接口703可以与通信通络709进行通信。网络接口703可以采用连接协议,包括但不限于:直接连接,以太网(如双绞线10/100/1000baset),传输控制协议/因特网协议(transmissioncontrolprotocol/internetprotocol,简称tcp/ip),令牌环,ieee802.11a/b/g/n/x等。通信网络709可以包括但不限于:直接互连,局域网(localareanetwork,简称lan),广域网(wideareanetwork,简称wan),无线网络(如采用无线应用协议),因特网等。通过网络接口703和通信网络709,计算机系统700可以与数据聚集器或传感器710进行通信。在一些实施例中,处理器702可以设置用于通过存储接口704与存储器705(如ram,rom等,图7中未示出)进行通信。存储接口704可以采用连接协议,如串行高级技术附件(serialadvancedtechnologyattachment,简称sata),集成驱动电路(integrateddriveelectronics,简称ide),ieee-1394,通用串行总线(universalserialbus,简称usb),光纤通道,小型计算机系统接口(smallcomputersystemsinterface,简称scsi)等连接至存储器705,包括但不限于:存储器驱动器,可移动磁盘驱动器等。存储器驱动器还可以包括滚筒,磁盘驱动器,磁光盘驱动器,光驱,独立磁盘冗余阵列(redundantarrayofindependentdiscs,简称raid),固态存储器设备,固态驱动器等。存储器705可以存储一组程序或数据库组件,包括但不限于:用户接口706,操作系统707,web服务器708等。在一些实施例中,计算机系统700可以存储用户/应用数据706,例如本发明所描述的数据,变量,记录等。该数据库可以作为容错,关系型,可扩展,安全的数据库实现,如oracle或sybase。操作系统707可以促进资源管理和计算机系统700的操作。操作系统的例子包括但不限于:applemacintoshosx,unix,类unix系统发行(如伯克利软件发行(berkeleysoftwaredistribution,简称bsd),freebsd,netbsd,openbsd等),linux发行(如redhat,ubuntu,kubuntu等),ibmos/2,microsoftwindows(xp,vista/7/8等),appleios,googleandroid,blackberryos等。用户接口706可以通过文本或图形设施促进程序组件的显示,执行,交互,操控或操作。例如,用户接口可以提供可操作地连接至计算机系统700的显示系统上的计算机交互接口元件,如光标,图标,复选框,菜单,滚动条,窗口,微件等。可以采用图形用户接口(graphicaluserinterface,简称gui),包括但不限于:applemacintosh操作系统aqua,ibmos/2,microsoftwindows(例如,aero,metro等),unixx-windows,web界面库(例如,activex,java,javascript,ajax,html,adobeflash等)等。在一些实施例中,计算机系统700可以实现web浏览器708所存储的程序组件。web浏览器可以是超文本查看应用,如microsoftinternetexplorer,googlechrome,mozillafirefox,applesafari等。安全web浏览可以利用安全超文本传输安全协议(securehypertexttransportprotocol,简称https),安全套接层(securesocketslayer,简称ssl),传输层安全(transportlayersecurity,简称tls)等来提供。web浏览器可以利用ajax,dhtml,adobeflash,javascript,java,应用编程接口(applicationprogramminginterface,简称api)等设施。在一些实施例中,计算机系统700可以实现邮件服务器719中存储的程序组件。邮件服务器可以是因特网邮件服务器,如microsoftexchange等。邮件服务器可以利用asp,activex,ansic++/c#,microsoft.net,cgi脚本,java,javascript,perl,php,python,webobjects等设施。邮件服务器可以利用因特网消息接入协议(internetmessageaccessprotocol,简称imap),消息应用程序接口(messagingapplicationprogramminginterface,简称mapi),microsoftexchange,邮局协议(postofficeprotocol,简称pop),简单邮件传输协议(simplemailtransferprotocol,简称smtp)等通信协议。在一些实施例中,计算机系统700可以实现邮件客户端中存储的程序组件。邮件客户端可以是邮件查看应用,如applemail,microsoftentourage,microsoftoutlook,mozillathunderbird等。此外,一个或多个计算机可读存储介质可以用于实施与本发明一致的实施例。计算机可读存储介质是指在其上可以存储处理器可读的信息或数据的任何类型的物理存储器。因此,计算机可读存储介质可以存储供一个或多个处理器执行的指令,包括用于使处理器进行与在此描述的实施例一致的步骤或阶段的指令。术语“计算机可读介质”应被理解为包括有形物品且不包括载波和瞬态信号,即非瞬时性。例子包括随机存取存储器(randomaccessmemory,简称ram),只读存储器(read-onlymemory,简称rom),易失性存储器,非易失性存储器,硬盘驱动器,cdrom,dvd,闪存盘,磁盘以及任何其他已知的物理存储介质。此外,在此示出了本发明的优点。本发明实施例有助于用户在有限的时间内执行查询时做出更快的业务决策。本发明实施例提供了更好的用户体验,因为用户预先知道他们的查询将花费更多的时间,而所述系统有助于用户将所述查询变成更快的查询。本发明实施例提供了更好的用户体验,因为用户基于其业务需要选择不同的参数以便改变查询。本发明减轻了服务器的负载,因为系统引导用户将所述查询变成更简单/更快的查询。因此,相同的服务器可以支持更多的用户并行地做分析。本发明通过节省时间,成本和计算资源来优化查询执行。所描述的操作可以通过采用标准编程和/或工程技术产生软件,固件,硬件,或其任意组合作为方法,系统或制品来实现。所描述的操作可以作为“非瞬时性计算机可读介质”中保存的代码实现,其中处理器可以读取和执行计算机可读介质中的代码。该处理器是微处理器和能够处理和执行查询的处理器中的至少一个。非瞬时性计算机可读介质可以包括磁存储介质(例如,硬盘驱动器,软盘,磁带等),光存储设备(cd-rom,dvd,光盘等),易失性和非易失性存储器设备(例如,eeprom,rom,prom,ram,dram,sram,闪存,固件,可编程逻辑等)等介质。进一步地,非瞬时性计算机可读介质包括除瞬时性介质以外的所有计算机可读介质。实现所描述的操作的代码可以进一步以硬件逻辑(例如,集成电路芯片,可编程门阵列(programmablegatearray,简称pga),专用集成电路(applicationspecificintegratedcircuit,简称asic)等)实现。更进一步地,实现所描述的操作的代码可以以“传输信号”实现,其中传输信号可以通过空间或通过光纤、铜线等传输介质传播。通过其将代码或逻辑进行编码的传输信号可以进一步包括无线信号,卫星传输,无线电波,红外信号,蓝牙等。通过其将代码或逻辑进行编码的传输信号能够由发射站发射并且由接收站接收,通过传输信号进行编码的代码或逻辑可以在接收和发射站或设备中通过硬件或非瞬时性计算机可读介质进行解码和存储。“制品”包括非瞬时性计算机可读介质,硬件逻辑,和/或通过其可实现代码的传输信号。通过其将实现所描述的操作实施例的代码进行编码的设备可以包括计算机可读介质或硬件逻辑。当然,本领域的技术人员将认识到可以在不脱离本发明的范围的情况下对这种配置做出许多修改,并且所述制品可以包括本领域中公知的合适的信息承载介质。术语“某个实施例”,“实施例”,“多个实施例”,“所述实施例”,“所述多个实施例”,“一个或多个实施例”,“一些实施例”和“一个实施例”是指“本发明的一个或多个(但不是全部)实施例”,除非另有明确规定。术语“包括”,“具有”及其变型是指“包括但不限于”,除非另有明确规定。术语的列举列表并不意味任何或所有的术语是互相排斥的,除非另有明确规定。术语“一个”和“该”是指“一个或多个”,除非另有明确规定。对于具有彼此之间进行通信的若干部件的实施例的描述并不意味着所有这些组件都是必需的。相反,通过描述各种可选组件以说明本发明的各种各样可能的实施例。当本文描述单个设备或制品时,显而易见的是不止一个设备/制品(无论它们是否协作)可以用来代替单个设备/制品。类似地,本文描述不止一个的设备或制品(无论它们是否协作),显而易见的是单个设备/制品可以用来代替不止一个设备或制品,或者不同数量的设备/制品可以用来代替所示数量的设备或程序。设备的功能和/或特征可以由没有明确描述为具有此类功能/特征的一个或多个其它设备可替代性地体现。因此,本发明的其它实施例不必包括设备本身。图4a,图4b和图5中示出的操作显示了以某个顺序发生的某些事件。在替代性实施例中,某些操作可以以不同的顺序执行,可以修改或移除。此外,可以将步骤添加到上述逻辑并且仍然符合所描述的实施例。另外,本文描述的操作可以顺序发生,或者某些操作可以并行处理。更进一步地,操作可以由单个处理单元或由分布式处理单元来执行。最后,出于可读性和指导性的目的已经主要选择了说明书中,使用的语言,并且该语言未被选择成限定或限制本发明的主题。因此,本发明的范围并非意在由这一详细描述限制,而是由在基于本文的应用上所附的任何权利要求限制。因此,本发明实施例旨在举例说明,而非限制在所附权利要求中,阐述的本发明范围。尽管本文公开了多个方面和实施例,但是其它方面和实施例对于所属领域技术人员来说应该是显而易见的。本文所公开的多个方面和实施例是出于说明性目的,而非限制性的,真实范围和精神由所附权利要求表征。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1