包括数据分类的查询处理系统的制作方法

文档序号:6540236阅读:135来源:国知局
包括数据分类的查询处理系统的制作方法【专利摘要】本公开涉及使用数据分类允许客户端控制对数据查询的响应的特性的计算机实施的方法、软件、以及系统。一种计算机实施的方法包括:从客户端接收对数据集的请求,该请求包括指示结果集的一个或多个特性的一个或多个请求参数;识别与数据集相关联的不相交类的集合,所述识别至少部分地基于一个或多个请求参数,所述类的集合包括整个数据集;将所述类的集合与类代表的集合相关联,所述类的集合中的每个类与来自类代表的集合的类代表相关联;并且向客户端呈送所述类代表的集合。【专利说明】控制对数据查询的响应的特性的计算机实友法包括:从客户端接收对数据集的请求,卜或多个请求参数;识别与数据集相关联的(别至少部分地基于所述一个或多个请求参耗合与类代表的集合相关联,所述类的集合并且向客户端呈送所述类代表的集合。換各个数据的有形介质上的计算机实施的施的方法,或者进一步包括在用于执行这:的这些以及其它方面和实施方式的细节将王、对象、以及优点将从描述和附图、以及权【具体实施方式】[0012]本公开一般涉及使用数据分类允许客户端控制对数据查询的响应的特性的计算机实施的方法、软件、以及系统。[0013]在一个方面中,本公开描述了涉及客户端向存储或管理资源的服务器呈送与该资源相关联的查询的解决方案。一般地,对于这样的查询的响应的大小可以与所请求的资源的大小相同。这种不可预知性可能导致在处理响应中的困难。例如,客户端可能需要将该响应解析和/或转换为内部数据格式。在一些情况下,客户端可能希望所传送的响应在给定的、有限的时间量内被处理。因为客户端的处理资源一般是有限的,但是响应的基数(cardinality)却是不受约束的,所以客户端可能根本不能处理响应,例如,因为该响应不适于客户端的存储器,或者因为处理该响应将过于耗费时间。而且,信息量可能太大而不能在例如智能电话或平板的特定客户端上呈现。[0014]本公开描述了一种解决方案,其可以响应于来自客户端的查询而聚集服务器上的数据,因此降低了响应的基数。在一些实施方式中,服务器可以将散布图(scatterplot)中的许多重叠数据点聚集到指示所有数据点的单一代表数据点中。在有些情况下,这种聚集可以通过具有该查询的客户端所包括的参数来控制。所述参数可以定义对于查询的响应的基数的固定上限。所述参数还可以定义指示这样的上限的特性,诸如对于响应的最大处理时间。[0015]在一些实施方式中,响应于接收到客户端查询,服务器将对应于该查询的所有或相当多的数据条目聚集到不相交类中。每个类可以代表数据条目的潜在的空集。在一些情况下,每个类可以具有与从客户端发送的参数相关联的或者基于被识别为与客户端相关联的参数确定的固定大小。数据分类还可以通过任何适当的算法或算法的集合来执行,所述算法或算法的集合保证对查询的响应对应于由客户端指定的参数。[0016]在一些实施方式中,服务器将每个类与类代表(classrepresentative)相关联。每个类代表可以包括唯一地识别类的键集合,并且在一些情况下,包括指示类中包括的数据条目的数目的基数值。在有些情况下,服务器以用于所请求的数据集的类代表的集合来响应于客户查询。然后客户端可以在随后的请求中向客户端发送一个或多个类代表,以检索与由一个或多个类代表指示的类相关联的数据条目。[0017]现在参考图1,示出了图解用于使用数据分类允许客户端控制对数据查询的响应的特性的示例环境100的框图。具体地说,所示出的系统100包括一个或多个客户端103和网络130或者与一个或多个客户端103和网络130可通信地耦接。[0018]示例环境100可以包括数据分类系统133。在高等级处,数据分类系统133包括电子计算设备,其可操作以接收、发送、处理、存储、或管理数据和与环境100相关联的信息。具体地说,图1中示出的数据分类系统133可以从各种客户端,诸如客户端103,接收、检索、或识别查询,处理那些查询以确定与那些查询相关联的数据分类,将类代表返回客户端,然后响应于来自客户端的请求返回对应于那些类代表的数据条目。在一些情况下,数据分类系统133可以从一个或多个客户端103接收指示和请求。这些请求可以包括关于与如上所述的类代表对应的数据的查询和请求。[0019]如本公开中所使用的,术语“计算机”意图包含任何适当的处理设备。例如,虽然图1示出了数据分类系统133,环境100能够使用两个或更多个服务器以及除了服务器(包括服务器池)以外的计算机来实施。实际上,数据分类系统133可以是任何计算机或处理设备,诸如,例如,刀片服务器、通用个人电脑(PC)、Mac?、工作站、基于UNIX的工作站、或任何其它适当的设备。换句话说,本公开考虑到除了通用计算机之外的计算机以及没有传统操作系统的计算机。而且,示出的数据分类系统133可以适合于运行任何操作系统,包括Linux、UNIX、Windows、MacOS?、Java?、Android?、1S、或任何其它适当的操作系统。根据一个实施方式,数据分类系统133还可以包括电子邮件服务器、网络服务器、高速缓存服务器、流化数据服务器、和/或其它适当的服务器,或者与它们可通信的耦接。[0020]数据分类系统133还包括接口136、处理器139、以及存储器151。接口136由数据分类系统133使用,用于与连接到网络130的分布式环境(包括环境100在内)中的其它系统通信,例如,客户端103,以及可通信地耦接到网络130的其它系统(未示出)。一般地,接口136包括在适当组合的软件和/或硬件中代码化的并且可操作以与网络130通信的逻辑。更具体地说,接口136可以包括支持与通信相关联的一个或多个通信协议的软件,从而网络130或接口的硬件可操作以传送所示出的环境100的内部或外部的物理信号。[0021]如图1中所示,数据分类系统133包括处理器139。虽然在图1中示出为单一处理器139,但是可以根据特定需要、要求、或环境100的特定实施方式来使用两个或更多个处理器。每个处理器139可以是中央处理单元(CPU)、刀片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或另一个适当的组件。一般地,处理器139运行指令并且操纵数据以执行数据分类系统133的操作。具体地说,处理器139可以执行接收和响应来自客户端103的请求所需的功能,以及执行如下所述的数据分类和检索操作。[0022]所示出的数据分类系统133还包括数据请求服务器150。在一些实施方式中,数据请求服务器150可以从一个或多个客户端103接收查询,对由查询描述的数据集执行数据分类操作,并向与通过数据分类操作识别出的一个或多个类相关联的客户端返回类代表。数据请求服务器150可以是在单一服务器上运行的单一软件程序,或者其可以是分布在一个或多个服务器上的多个软件或硬件组件。[0023]在所描绘的实施方式中,数据请求服务器150包括查询处理引擎152、数据分类引擎154、以及数据检索引擎156。在一些实例中,查询处理引擎152可以可操作以处理从一个或多个客户端103接收的查询。这个处理可以包括解析查询以提取由识别响应的一个或多个特性的客户端指定的一个或多个请求参数。例如,从一个或多个客户端103接收的查询可以包括结构化查询语言(SQL)查询,结构化查询语言(SQL)查询指定了客户端希望检索的数据集,其中,该查询包括请求参数或与请求参数相关联(例如,包括在包括该查询的请求中、等等),该请求参数指示数据集被划分到的类的集合的最大基数。以这种方式,客户端可以指定数据集将划分到的类的集合的最大大小。在另一个示例中,请求参数可以指示将要在响应中返回到客户端的数据条目的集合的最大基数,因此允许客户端指定其将响应于请求而接收的数据条目的最大数目。[0024]在一些实施方式中,SQL查询可以使用超文本传输协议(HTTP)在客户端103和数据分类系统133的查询处理引擎152之间发送。SQL查询还可以使用任何适当的协议或机制来发送,所述任何适当的协议或机制包括但是不限于简单对象访问协议(SOAP)、JavaScript对象表示法(JS0N)、远程过程调用(RPC)、可扩展标记语言(XML)、开放数据协议(OData)、或任何其它适当的协议或机制、或者它们的组合。[0025]在一些实例中,查询处理引擎152可以分析所接收的查询并执行一个或多个转换以改变该查询,以供数据分类系统133使用。在一些实施方式中,查询处理引擎152可以执行分析以确定由所接收的查询指定的数据集的基数或大小。这个信息可以在数据分类期间使用。在一些情况下,查询处理引擎152可以是在数据分类系统133中运行的单独的(separate)软件或硬件处理。查询处理引擎152还可以是集成在数据请求服务器150中的组件或模块。在一些实例中,查询处理引擎152可以是在数据分类系统133外部的系统。[0026]在一些情况下,数据分类引擎154可以位于数据分类系统133的其它组件外部的单独的系统。而且,本公开考虑到数据分类系统133的各种组件每一个都位于单独的系统,所有的组件都位于同一系统,或者一些组件共同位于同一系统而其它组件位于单独的系统。[0027]数据请求服务器150还可以包括数据分类引擎154。在一些实施方式中,数据分类引擎154可以将由查询处理引擎152识别出的数据集划分到一个或多个类中。一个或多个类可以是不相交类,从而数据集中的每个数据条目被包括在一个或多个类中的一个且是唯一的一个类中。而且,一个或多个类可以完全地覆盖数据集,从而数据集中的每个数据条目被包括在一个或多个类中的一个类中。[0028]在一些情况下,数据分类引擎154可以运行算法以执行数据集的分类。在一些实例中,所述算法可以可操作以将数据集划分到多个相等大小的类中,每个类对应于相等大小范围的值。例如,一个示例算法可以只基于属性X的值将数据集划分到类中。在这样的示例中,第一类可以包括具有在O和I之间的X值的数据条目,而第二类可以包括具有在I和2之间的X值的数据条目。这个算法只是为了示范性目的而被呈现,并且本公开考虑到使用任何适当的算法以执行这个数据分类,所述算法包括但是不限于基于两个或更多属性来分类的多维(multidimens1nal)分类算法、检查数据集以确定最佳分类方案的分类算法、由客户端具体提供的分类算法、或任何其它适当的算法或算法组合。在一些实施方式中,数据分类引擎154可以响应于接收对数据集的请求而对数据集执行分类。数据分类引擎154还可以在接收请求之前,比如在数据被创建或插入时,执行数据集的分类。数据分类引擎154还可以在每次数据被请求时执行分类,或者可以执行分类一次,并且使用该预分类的(pre-classified)数据来响应于请求。[0029]数据分类引擎154还可以产生与在分类期间产生的类的集合对应的类代表的集合。在一些实施方式中,每个类代表对应于所述类的集合中的一个类,并且包括唯一地识别相关联的类的键的集合。每个保存器(conservator)还可以包括关于相关联的类的其它信息,诸如,例如,指示相关联的类中所包括的数据条目的数目的基数。[0030]在一些实例中,数据分类引擎154可以把类代表的集合返回到发送原始请求的客户端103。在一些实施方式中,响应可以使用与用来在客户端103和查询处理引擎152中之间传送该原始查询的协议或机制相同的协议或机制被发送给客户端。响应还可以通过任何其它适当的协议或机制来传送。[0031]在一些实施方式中,类可以使用考虑到基于位置的数据的经度和纬度以及确定粒度的参数的算法来定义。每个基于地理的数据集可以由类来表示,并且可以进一步按照诸如时间等的其它标准来分割(broken)。在这种情况下,类的数目是有限的,并且受到粒度的限制。例如,(与车祸、火灾、等等相关的)事故数据(incidentdata)能够以这种方式分类。平均收入、税收、以及其它财务数据还可以被约束到具体国家。在一些情况下,数据可以按州分类(比如,在美国)或者按联邦国家分类(在欧盟),按乡镇、或按表示定义明确的网格的任何其它分类来分类。[0032]数据请求服务器150还可以包括数据检索引擎156。在一些实施方式中,数据检索引擎156可以从包括一个或多个类代表的客户端103接收请求。包括在该请求中的一个或多个类代表可以是响应于原始查询由数据分类引擎154发送给客户端的类代表的子集。响应于接收到该请求,数据检索引擎156可以处理一个或多个类代表以确定它们所关联的类。一旦数据检索引擎156确定了关联的类,数据检索引擎156就可以比如从数据库168中,检索与这些类相关联的数据条目。然后,该数据检索引擎可以在响应中将这些关联的数据条目发送给客户端103。在一些实施方式中,每个关联的数据条目可以在单独的消息中被发送给客户端。一个或多个关联的数据条目还可以在单一的消息中发送给客户端。在一些情况下,数据检索引擎156可以返回引用(reference)或指针(pointer)给客户端,该客户端可以使用所述引用或指针来检索一个或多个关联的数据条目。例如,数据检索引擎156可以返回结果集对象给客户端103。使用这个结果集对象,客户端103可以一次检索一个数据条目,可以一次检索整个数据集,或者可以以任何其它希望的方式检索数据。[0033]不管特定实施方式如何,“软件”都可以包括有形介质(视情况而定,可以为瞬时的或非瞬时的)上的计算机可读指令、固件、有线的和/或编程的硬件、或它们的任意组合,它们在被运行时可操作为执行至少这里所描述的过程和操作。实际上,每个软件组件可以完全地或部分地以任何适当的计算机语言编写或描述,所述计算机语言包括C、C++、Java?、VisualBasic、汇编语言、Perl?、任何适当版本的4GL、以及其它语言。虽然图1中示出的软件的各部分被显示为通过各种对象、方法、或其它过程实施各种特征和功能的单个模块,但是可替换地,所述软件可以根据情况包括多个子模块、第三方服务、组件、库、等等。相反地,各种组件的特征和功能可以根据情况被组合到单个组件中。[0034]数据分类系统133还包括存储器151或多个存储器151。存储器151可以包括任何类型的存储器或数据库模块,并且可以采用易失性和/或非易失性存储器的形式,所述易失性和/或非易失性存储器包括但不限于,磁介质、光学介质、随机访问存储器(RAM)、只读存储器(ROM)、可移动介质、或任何其它适当的本地或远程存储器组件。存储器151可以存储各种对象或数据,包括高速缓冲存储器、类、框架、应用、备份数据、作业、网页、网页模板、数据库表、存储静态和/或动态信息的储存库、以及与数据分类系统133的目的相关联的任何其它适当的信息,包括任何参数、变量、算法、指令、规则、约束、或对它们的引用。另外,存储器151可以包括任何其它适当的数据,诸如VPN应用、固件日志和策略、防火墙策略、安全或访问日志、打印或其它报表文件、以及其它数据。[0035]如图1中所示,存储器151包括或引用与提供关于运行的业务应用的多过程智能化视图(multipleprocessintelligenceview)相关联的数据和信息和/或与提供所述多过程智能化视图相关的数据和信息。如图所示,存储器151包括数据库168。数据库168可以是若干商业可用的数据库和非数据库产品中的一个或它们的组合。可接受的产品包括,但是不限于,SAP?HANADB、SAP?MaxDB、Sybase?ASl.:、Oracle?数据库、IBM?Informix?数据库、DB2、MySQL、MicrosoftSQLServer?、Ingres?、IVstgreSQL、Teradata、AmazonSimpleDB、以及Microsoft?Excel、以及其它适当的数据库和非数据库产品。而且,数据库168可以可操作为处理以任何结构化或其它查询语言,诸如,例如,SQL,指定的查询。在一些实例中,数据库168可以是高性能数据库管理系统(DBMS),其主要依赖于易失性电子存储器,诸如随机访问存储器(RAM),所述易失性电子存储器与用于数据的存储、检索、以及处理的磁、光、可移动的或其它适当的非电子存储器相反。在一些实施方式中,对电子存储器的依赖允许数据的近实时的聚集、复制、同步、以及处理。在一些实施方式中,持久层(persistencylayer)保证在电力或其它系统故障的情况下,内存数据库的副本被保持在非易失性磁、光、可移动、或其它适当的非电子存储器上,以便允许内存数据库的恢复。[0036]数据库168可以包括与将数据分类以限制对客户端的响应的大小相关的不同的数据条目。所示数据库168包括数据集170、与数据集170相关联的一个或多个类174、以及与一个或多个类174相关联的一个或多个类代表176。在其它实施方式中,数据库168可以包含执行特定实施方式所需的任何附加信息。[0037]在所示实施方式中,数据库168包括数据集170。在一些实施方式中,查询处理引擎152响应于从客户端103接收到查询而识别数据集170。数据集170可以对应于响应于所接收的查询的数据。在一些实施方式中,数据集170是包括在数据库168中的较大数据集的子集。数据集170可以包括表示数据集中的单个记录的一个或多个数据条目。在一些实施方式中,一个或多个数据条目包括数据库168中的一个或多个表中的行。一个或多个数据条目还可以对应于数据库168中的其它结构,诸如对象、存储的过程(storedprocedure)、触发器(trigger)、或任何其它数据或元数据构造。[0038]数据库168还可以包括类174的集合。在一些实施方式中,类174的集合由数据分类引擎154产生,以表示其数据分类操作的结果。如先前所述,类174的集合可以是不相交集合,从而所述类不重叠,并且可以提供数据集170的完整覆盖,从而数据集170中的每个数据条目都被类174的集合中的正好一个类覆盖。在一些实施方式中,类174可以作为指定类的集合中每个类的边界的附加行存储在数据库168中的表中。类174还可以存储为在数据分类期间由数据分类引擎154创建的临时表(temporarytable)。在一些实施方式中,对应于类174的临时表在与类相关联的查询仍然有效或在范围内(inscope)时可以存在,并且在查询不再有效时可以被删除或者被清除(purged)。[0039]在一些实施方式中,数据库168还可以包括类代表176的集合。类代表176可以在数据分类期间由数据分类引擎154产生。如先前所述,类代表176每一个可以对应于类174之一,并且可以响应于初始查询被返回给客户端。客户端可以随后通过从类代表176的集合中指定相应的类代表来检索与类174之一相关联的数据条目。在一些实施方式中,类代表176以类似于类174的方式被存储在数据库168中。类代表176以不同于类174的方式来存储。[0040]图1所示环境还包括客户端103或多个客户端103。客户端103可以是任何计算机设备,所述计算机设备可操作为使用有线或无线连接经由网络130连接到至少数据分类系统133或者与至少数据分类系统133通信。一般来说,客户端103包括电子计算机设备,所述电子计算机设备可操作为接收、发送、处理、以及存储与图1的环境100相关联的任何适当的数据。[0041]可以有与环境100相关联的或在环境100外部的任意数目的客户端103。例如,虽然所示环境100包括一个客户端103,但是环境100的替换的实施方式可以包括通信地耦接到数据分类系统133和/或网络130的多个客户端103,或者适于环境100的目的的任何其它数目的客户端。另外,在环境100的示出部分的外部还可以有能够经由网络130与环境100进行交互的一个或多个另外的客户端103。而且,术语“客户端(client)”和“用户(user)”可以视情况可交换地使用,而不脱离本公开的范围。而且,虽然按照被单一用户使用的方式描述了客户端103,本公开考虑到许多用户可以使用一台计算机,或者那一个用户可以使用多台计算机。[0042]所示客户端103意图涵盖任何计算机设备,诸如台式计算机、膝上型/笔记本计算机、无线数据端口、智能电话、个人数据助理(PDA)、平板计算设备、这些设备中的一个或多个处理器、或任何适当的处理设备。例如,客户端103可以包括计算机,该计算机包括输入设备,诸如键盘、触摸屏、或能够接受用户信息的其它设备,并且包括传达与数据分类系统133或客户端103本身的操作相关联的信息的输出设备,所述信息包括数字数据、可视信息、或图形用户界面(GUI)。在一些实施方式中,客户端103可以是使用来自数据分类系统133的数据用于有或没有人际交互的进一步分析的自动化系统。[0043]图2是示出使用数据分类允许客户端控制对数据查询的响应的特性(例如,关于响应的大小的上限)的在客户端和服务器之间的示例交互200的框图。该示图被水平划分为服务器部分202和客户端部分204。服务器部分202包括由服务器采取的动作,而客户端部分204包括由客户端采取的动作。此外,示图被垂直划分为类代表部分206和原始数据部分208。示图的这些部分指示哪些动作涉及来自数据集的原始数据条目以及哪些动作涉及与原始数据集已经被划分到其中的类相关联的类代表。[0044]圆圈210表示由服务器存储的完整数据集。与由客户端发送给服务器的查询212相关联的数据集214可以是查询数据集的子集。查询212可以针对完整数据集210运行以产生查询数据集214。如先前所述,查询数据集214可以通过针对完整数据集210运行查询212来识别。如相对于图1的示例所描述的,服务器可以从客户端接收查询212。在一些实施方式中,查询可以从完全不同的表中识别出数据条目,并将它们收集到单一查询数据集中。所述查询可以是由服务器202支持的查询语言中的任何一个或多个语句,所述查询语言包括但不限于,SQL、计算视图(Calculat1nView)(例如,CalcViews)、或任何其它适当的查询语言。[0045]查询数据集214然后被分类(箭头216)以产生类代表218的集合。如先前所讨论的,类代表218与覆盖了整个查询数据集214的类的不相交集相关联。类代表218的集合然后可以在响应(箭头220)中被发送给客户端,为客户端提供类代表222的集合。客户端然后可以发送选择请求(箭头224)到服务器,其中,该选择请求(箭头224)包括类代表222中的一个或多个。服务器然后可以针对查询集合214运行选择请求(箭头224)。如关于图1的示例所讨论的,服务器可以使用所接收的类代表运行算法以识别与所接收的类代表相关联的类。当服务器识别出所请求的类时,服务器能够识别并且在适当的响应(箭头226)中返回与那些类相关联的数据条目给客户端。客户端然后接收,并能够呈现,与在所述选择请求(箭头224)中识别出的一个或多个类代表对应的数据条目228的集合。[0046]图3是示出示例数据图(datagraph)300的示图。数据图300本身包括X轴302和Y轴304。X轴302和Y轴304表示与数据集中的数据条目相关联的值。虽然所示出的实施方式包括两个键(key)并因此是二维映射,但是一维(例如,线性)和多维映射也被本公开考虑到。[0047]所示出的实施方式包括许多数据点306。每个数据点306可以表示数据集中的一个数据条目,同时数据点在图上相对于X轴和Y轴的位置指示其相关联的键值。在多维映射中,数据点相对于多个轴的位置可以表示与这些轴相关联的不同键的值。例如,在三维映射中,每个数据点306将作为由图的三个轴形成的三维立方体中的一个点出现。[0048]数据图300可以包括一个或多个分区(partit1n),诸如由参考标号308、310、312标识的那些分区。在一些实施方式中,分区表示由图300表示的数据集已经被划分到其中的不同的类。在所示出的实施方式中,分类方案包括具有固定大小的分区的网格。每个分区包括具有落在一定范围内的X和Y值的数据条目。例如,分区308可以包括具有在2和3之间的Y值和在O和I之间的X值的数据条目,而分区310可以包括具有在O和I之间的X值和在O和I之间的Y值的数据条目。[0049]在一些实施方式中,图300显示了诸如相对于图1描述的分类操作的结果。在所示出的实施方式中,每个分区表示单一类。由分区表示的每个类还可以与标识该类的类代表相关联。例如,与分区308相关联的类可以与包括表示与该类相关联的X值和Y值的键O和2的类代表相关联。类代表还可以包括基数值或与基数值相关联,该基数值表示包括在该类中的数据条目的数目。在所示出的实施方式中,这个基数可以等于落在分区308中的数据点的数目。[0050]所示出的图300还包括空分区312。在一些实施方式中,数据分类操作可以导致包括没有数据条目的类。这样的类可以由具有基数O的空集来表示。[0051]现在参考图4,示图400示出了对应于数据类的类代表。示图400包括两个图402和406。图402提供与绘制在图406上的数据条目408相关联的示例类代表的可视表示。例如,显示为大实心数据点(largesoliddatapoint)的类代表404可以表示图406中的数据408的聚类(cluster)。在这样的实施方式中,聚类数据点408可以包括在同一类中,而类代表404可以用来指代这个类。虽然图402中的类代表被示出为圆圈,本公开考虑到表示为不同形状的不同形式的类代表。例如,在网格分类方案中,用于某个类的类代表可以绘制为占据了与该类相关联的整个网格方块的实心方块(solidsquare)。而且,在其它分类方案中,类代表可以被绘制为任何适当的形状。在多维分类方案中,类代表可以被绘制为包括与该分类方案中所包括的维度一样多的维度的形状。[0052]图5是示出与基于地理确定的数据类对应的类代表的示图500。在所示出的示图500中,类代表502代表包括与北美洲相关联的数据的类。例如,与感兴趣的北美洲企业相关联的或由其产生的销售数据可以包括在由类代表502代表的类中。类代表504可以代表包括与南美洲相关联的数据的类,而类代表506可以代表包括与非洲相关联的数据的类。在一些实施方式中,类代表502、504和506可以包括与它们代表的特定地理区域相关联的键。类代表502、504、以及506还可以包括数字或其它标识符,所述标识符存在于将数据链接到地理区域的底层数据(underlyingdata)中。在一些实施方式中,类代表502、504、以及506能够由接口用于允许用户放大或检查特定地理区域的更详细的数据。例如,希望查看与北美洲相关联的数据的用户可以点击呈现在用户界面上的地图上的那个区域,使得接口将相关联的类代表502发送给数据分类系统以检索相关联的数据。在一些实施方式中,用于不同分类(例如,网格单元)的最大大小可以被强制。[0053]图6是使用数据分类允许客户端控制对数据查询的响应的特性的示例方法600的流程图。为了表示清楚,以下描述在图1中示出的系统100的上下文中概括地描述方法600。然而,将会理解,方法600可以视情况而由例如任何其它适当的系统、环境、或系统和环境的组合来执行。[0054]在602,从客户端接收对数据集的请求,该请求包括指示结果集的特性的请求参数。在一些实施方式中,如相对于图1所描述的,可以通过网络从客户端接收请求。该请求还可以包括以诸如SQL语言、或任何其它适当的查询或数据定义语言定义所请求的数据集的查询。如先前所讨论的,请求参数可以包括客户端能够支持的响应的最大基数。请求参数还可以包括处理响应可以花费的最大时间。请求参数还可以包括客户端希望施加于结果集的任何另外的适当参数。在一些情况下,请求参数可以包括与请求客户端相关联的能力的集合,诸如,例如,与客户端相关联的存储器的数量、与客户端相关联的处理器速度、以及与客户端相关联的硬件简档、与客户端相关联的屏幕分辨率、或任何其它适当的能力。[0055]在604,至少部分地基于请求参数来识别与数据集相关联的类的集合。如相对于图1所讨论的,类的识别可以包括将数据集中的数据条目划分到静态、不相交类中,从而所述类覆盖整个数据集。在一些实施方式中,类的识别可以包括运行一个或多个算法以确定与数据集相关联的类的边界,并且将数据集内的数据条目映射到一个或多个类。在一些实例下,类的识别可以包括分析数据集中的数据以确定类结构。类的识别还可以包括检查客户端的能力并构建类,从而客户端能够处理它们。[0056]在606,类的集合与类代表的集合相关联,类的集合中的每个类代表与类代表的集合中的类代表相关联。在一些实施方式中,每个类代表可以包括唯一地标识相关联的类的键的集合,以及与类相关联的其它属性,诸如,例如,基数值。在508,类代表的集合被呈送给客户端。在一些实施方式中,这可以包括经由网络向客户端发送包括类代表的一个或多个消息。[0057]现在参考图7,流程图示出了使用类代表允许客户端从分类的数据集中查询数据条目的示例方法700。为了表示清楚,以下描述在图1中示出的系统100的上下文中概括描述了方法700。然而,将会理解,方法700可以视情况而由例如任何其它适当的系统、环境、或系统和环境的组合来执行。[0058]在702,从客户端接收包括类代表的集合中的一个或多个类代表的请求。在一些实施方式中,一个或多个类代表包括在方法500的508呈送给客户端的类代表。在704,从与一个或多个接收的类代表相关联的类的集合中识别一个或多个类。在一些实例中,这个识别包括应用被用来生成类代表的函数的反函数(inverseofafunct1n)来识别相关联的类。该识别还可以包括对将类代表映射到它们的相关联的类的数据库执行查找。在706,结果集被呈送给客户端,该结果集包括与识别出的一个或多个类相关联的数据集的一部分。[0059]前述附图以及相应的描述示出了示例的过程和计算机可实施的技术。但是系统100(或其软件或其它组件)考虑到使用、实施、或运行用于执行这些以及其它任务的任何适合的技术。将会理解,这些过程只是为了例示的目的,并且所描述的或类似的技术可以在任何适当的时间(包括并发地、单独地、或组合地)执行。此外,这些过程中的许多步骤可以同时、并发地、和/或以与所示不同次序的次序发生。而且,系统100可以使用具有另外步骤、更少步骤、和/或不同步骤的过程,只要该方法适当即可。[0060]换句话说,虽然本公开已经根据某些实施方式和一般关联的方法进行了描述,但是这些实施方式和方法的修改和改变对于本领域技术人员将是清楚的。因此,示例的实施方式的上述描述不定义或约束本公开。其它改变、替换、以及修改也是可能的,而不会脱离本公开的精神和范围。【权利要求】1.一种由一个或多个处理器执行的计算机实施的方法,该方法包括:从客户端接收对数据集的请求,该请求包括指示结果集的一个或多个特性的一个或多个请求参数;识别与所述数据集相关联的不相交类的集合,所述识别至少部分地基于所述一个或多个请求参数,所述类的集合包括整个数据集;将所述类的集合与类代表的集合相关联,所述类的集合中的每个类与类代表的集合中的类代表相关联;并且向客户端呈送所述类代表的集合。2.如权利要求1所述的方法,还包括:从在所呈送的类代表的集合中识别出一个或多个类代表的所述客户端接收请求;从与一个或多个识别出的类代表相关联的类的集合中识别一个或多个类;并且向所述客户端呈送结果集,该结果集包括与识别出的一个或多个类相关联的数据集的一部分。3.如权利要求1所述的方法,其中,所述一个或多个请求参数包括将向所述客户端呈送的结果集的最大基数。4.如权利要求1所述的方法,其中,所述一个或多个请求参数包括呈送所述结果集的最大时间。5.如权利要求1所述的方法,其中,所述一个或多个请求参数被包括在定义所请求的数据集的查询中。6.如权利要求1所述的方法,其中,识别与所述数据集相关联的所述类的集合包括将所述数据划分到包括多个部分的网格中,每个部分符合由一个或多个请求参数指示的、结果集的一个或多个特性。7.如权利要求1所述的方法,其中,识别与所述数据集相关联的所述类的集合包括将所述数据划分为多个组,每个组符合由一个或多个请求参数指示的、结果集的一个或多个特性,并且每个组至少部分地基于检查所请求的数据集中的数据来选择。8.一种计算机程序产品,其编码在有形的、非瞬时存储介质上,该产品包括用于使得一个或多个处理器执行以下操作的计算机可读指令,所述操作包括:从客户端接收对数据集的请求,该请求包括指示结果集的一个或多个特性的一个或多个请求参数;识别与所述数据集相关联的不相交类的集合,所述识别至少部分地基于所述一个或多个请求参数,所述类的集合包括整个数据集;将所述类的集合与类代表的集合相关联,所述类的集合中的每个类与类代表的集合中的类代表相关联;并且向客户端呈送所述类代表的集合。9.如权利要求8所述的计算机程序产品,所述操作还包括:从在所呈送的类代表的集合中识别出一个或多个类代表的所述客户端接收请求;从与一个或多个识别出的类代表相关联的类的集合中识别一个或多个类;并且向所述客户端呈送结果集,该结果集包括与识别出的一个或多个类相关联的数据集的一部分。10.如权利要求8所述的计算机程序产品,其中,所述一个或多个请求参数包括将向所述客户端呈送的结果集的最大基数。11.如权利要求8所述的计算机程序产品,其中,所述一个或多个请求参数包括呈送所述结果集的最大时间。12.如权利要求8所述的计算机程序产品,其中,所述一个或多个请求参数被包括在定义所请求的数据集的查询中。13.如权利要求8所述的计算机程序产品,其中,识别与所述数据集相关联的所述类的集合包括将所述数据划分到包括多个部分的网格中,每个部分符合由一个或多个请求参数指示的、结果集的一个或多个特性。14.如权利要求8所述的计算机程序产品,其中,识别与所述数据集相关联的所述类的集合包括将所述数据划分为多个组,每个组符合由一个或多个请求参数指示的、结果集的一个或多个特性,并且每个组至少部分地基于检查所请求的数据集中的数据来选择。15.—种系统,包括:存储器,用于存储数据;和一个或多个处理器,可操作的执行:从客户端接收对数据集的请求,该请求包括指示结果集的一个或多个特性的一个或多个请求参数;识别与所述数据集相关联的不相交类的集合,所述识别至少部分地基于一个或多个请求参数,所述类的集合包括整个数据集;将所述类的集合与类代表的集合相关联,所述类的集合中的每个类与类代表的集合中的类代表相关联;并且向所述客户端呈送所述类代表的集合。16.如权利要求15所述的系统,所述处理器进一步可操作为:从在所呈送的类代表的集合中识别出一个或多个类代表的所述客户端接收请求;从与一个或多个识别出的类代表相关联的类的集合中识别一个或多个类;并且向所述客户端呈送结果集,该结果集包括与所识别的一个或多个类相关联的数据集的一部分。17.如权利要求15所述的系统,其中,所述一个或多个请求参数包括将向所述客户端呈送的结果集的最大基数。18.如权利要求15所述的系统,其中,所述一个或多个请求参数包括呈送所述结果集的最大时间。19.如权利要求15所述的系统,其中,所述一个或多个请求参数被包括在定义所请求的数据集的查询中。20.如权利要求15所述的系统,其中,识别与所述数据集相关联的所述类的集合包括将所述数据划分到包括多个部分的网格中,每个部分符合由一个或多个请求参数指示的、结果集的一个或多个特性。【文档编号】G06F17/30GK104050213SQ201410090257【公开日】2014年9月17日申请日期:2014年3月12日优先权日:2013年3月13日【发明者】H.洛克,A.尼茨施克申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1