使用贡献分析对数据的访问进行定价的制作方法

文档序号:6351134阅读:120来源:国知局
专利名称:使用贡献分析对数据的访问进行定价的制作方法
使用贡献分析对数据的访问进行定价
背景技术
数据消费系统将提供商的数据主存在联网环境中以使该数据可被该系统的用户访问。系统包括存储该数据的存储。存储是能够存储数据的存储系统(例如,数据库)。用户可经由例如网络来向存储提交查询。存储可解析该查询以确定要分析哪些数据来生成对用户查询的响应。所分析的数据可被称为贡献数据。在根据用户的查询分析了贡献数据后, 存储生成结果,该结果包括贡献数据的子集。存储然后经由例如网络向用户提供结果。可向用户收取访问存储在该存储中的数据的费用。然而,用于收取这种费用的常规定价模型具有其限制。一种常规定价模型是订阅定价模型。根据订阅定价模型,向用户收取订阅费用,这向用户授权在指定时间段(例如,一月、一年等)内访问数据。通过支付附加的期限订阅费通常可以在连续期限内续订订阅。然而,订阅定价模型一般不在访问大量数据的用户和访问较少量数据的用户之间进行区分。例如,在订阅定价模型下用户通常被授权不受限制地访问数据。另一种常规定价模型是按请求的定价模型。根据按请求的定价模型,针对用户向存储提交的每一请求向用户收取指定费用。然而,按请求的定价模型一般不在用户可提交的查询的各种类型或者响应于这些查询而被访问的数据类型之间进行区分。

发明内容
在此描述了用于使用贡献分析来定价对数据的访问等的各种方法。例如,用户可向存储数据的存储发出查询。可以以任何合适的格式来表示数据。例如,可将数据表示为具有属性的对象。根据这个示例,对象可以是可扩展标记语言(XML)文档中的元素、关系数据库中的行、列存储中的列等。存储可分析数据的子集以确定响应于查询而要提供给用户的结果。所分析的数据的子集被称为贡献数据。数据访问价格计算器执行贡献分析以确定要向访问结果的用户收取的价格。贡献分析考虑该数据包括在贡献数据中的行和/或列的数目、该数据包括在结果中的行和/或列的数目、在对贡献数据的存储分析期间所使用的函数或其任何组合。例如,数据访问价格计算器可以从接收自存储的指示符导出这种信息。在另一个示例中,数据访问价格计算器可以从结果本身导出该数据包括在结果中的行和/或列的数目。描述了对将数据存储在各表间的存储执行查询的一个不例方法。每一个表包括该数据的相应行和列。基于该查询接收结果。结果包括数据的子集。确定该数据在子集中的行的数目。基于所确定的该数据在子集中的行的数目来确定向发出查询以访问结果的用户收取的价格。描述了从存储处请求与查询有关的非内联查询计划的另一个示例方法。查询计划是响应于对存储的查询的执行而由该存储执行来生成结果的一组操作。非内联查询计划是其中不是所有函数都是内联的查询计划。函数是查询中所引用的子查询。如果一函数的定义被存储结合(即,内联)到查询中,则该函数被称为是内联的;然而,如果一函数在对存储执行查询时被该存储调用,则该函数被称为是非内联的。由此,为内联的函数是通过将该函数的定义结合到查询计划中而被包括在查询计划中的;而为非内联的函数是通过列出对该函数的函数调用而被包括在查询计划中的。在请求了非内联的查询计划之后,确定该查询计划包括针对查询而被执行的函数。确定该函数的函数价格。要向发出查询以访问对应于该查询的结果的用户收取的价格是基于该函数价格来确定的。描述了包括查询执行模块、结果行确定模块、和访问价格确定模块的示例系统。查询执行模块被配置来对将数据存储在各表间的存储执行查询。每一个表包括该数据的相应行和列。结果行确定模块被配置来确定该数据在响应于查询的执行而被接收的结果中的行的数目。结果包括数据的子集。访问价格确定模块被配置成基于所确定的数据在结果中的行的数目来确定要向发出查询以访问结果的用户收取的价格。描述了包括查询计划请求模块、函数确定模块、函数价格确定模块和访问价格确定模块的另一示例系统。查询计划请求模块被配置成请求与来自存储的查询有关的非内联查询计划。函数确定模块被配置成确定查询计划包括针对查询而被执行的函数。函数价格确定模块被配置成确定函数的函数价格。访问价格确定模块被配置成基于函数价格来确定要向发出查询以访问对应于该查询的结果的用户收取的价格。提供本发明内容以便以简化形式介绍将在以下的具体实施方式
中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,注意到本发明不限于在详细描述和/或本文的其它章节中所述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述, 其它实施例对于相关领域的技术人员将是显而易见的。


本文结合的并且组成本说明书的一部分的附图示出了本发明的各实施例,并且还与本描述一起用于解释所涉及的原理以及使相关领域的技术人员能够实现和使用所公开的技术。图I是根据一实施例的示例数据消费系统的框图。图2、4、6和8描绘了根据各实施例的用于使用贡献分析来定价对数据的访问的各方法的流程图。图3、5、7和9是根据各实施例的图I所示的数据访问价格计算器的示例实现的框图。图10描绘了其中可实现各实施例的示例计算机。通过下面的结合附图对本发明进行的详细说明,所公开的技术的特点和优点将变得更加显而易见,在附图中,类似的附图标记在整个说明书中标识对应的元素。在附图中, 相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指示。
具体实施例方式I.引言以下详细描述参考示出本发明的示例性实施例的附图。但是,本发明的范围不限于这些实施例,而是由所附权利要求书定义。因此,诸如所示实施例的修改版本之类的在附图所示之外的实施例仍然由本发明所包含。本说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指的是所述实施例可包括特定的特征、结构或特点,但是每一实施例不一定包括该特定的特征、结构或特点。此外,这些短语不一定指相同的实施例。此外,当结合实施例描述具体特征、结构或特性时,应当理解在相关领域的技术人员的知识范围内能够结合其他实施例来实现具体特征、 结构或特性,无论是否被显式地描述。II.使用贡献分析来定价对数据的访问各示例实施例能够使用贡献分析来定价对数据的访问。例如,用户可向存储数据的存储发出查询。可以以任何合适的格式来表示数据。例如,可将数据表示为具有属性的对象。根据这个示例,对象可以是可扩展标记语言(XML)文档中的元素、关系数据库中的行、 列存储中的列等。存储可分析数据的子集以确定响应于查询而要提供给用户的结果。所分析的数据的子集可称为贡献数据。数据访问价格计算器执行贡献分析以确定要向访问该结果的用户收取的价格。贡献分析考虑了数据包括在贡献数据中的行和/或列的数目、数据包括在结果中的行和/或列的数目、在对贡献数据的存储分析期间使用的函数或其任何组合。例如,数据访问价格计算器可以从接收自存储的指示符导出这种信息。在另一示例中, 数据访问价格计算器可以从结果本身导出数据包括在该结果中的行和/或列的数目。在此描述的用于使用贡献分析来定价对数据访问的技术可应用于已存储的过程, 但是各示例实施例的范围并不限于这个方面。已存储的过程(又称为,proc、sproc、StoPR0、 SP等)是预编译查询,该预编译查询能够被执行多次,而不需要每次都向存储发送该查询, 并且不需要每次都重新编译该查询。例如,使用已存储的过程(与其他类型的查询相反)可减少数据消费系统中的网络流量和/或处理器负担。已存储的过程是查询的一种示例类型。应该意识到,在此描述了可应用于任何合适类型的查询的技术。与用于定价对数据的访问的传统技术比较,此处描述的技术具有各种益处。例如, 可以使用在此描述的技术按较细粒度的级别(例如,以每一行、每一列或每一单元格为基础)销售数据。单元格对应于数据的单个行和单个列。在定价中可考虑结果中的列的数目和/或行的数目和/或数据类型。访问相对较大量数据的用户可被收取比访问相对较少量数据的用户更多的费用。例如,可以向提交了要对其分析大量贡献数据的查询的用户收取比提交了要对其分析较少量贡献数据的查询的用户更多的费用。可基于查询的类型、响应于查询而被分析的数据的类型等定价。可建立指定函数的价格,这些指定函数定义可在分析贡献数据期间执行的操作。指定函数的价格可以独立于针对这些函数而被分析的贡献数据的量。图I是根据一实施例的示例数据消费系统100的框图。一般而言,数据消费系统 100用于主存提供商的数据使得该数据可被系统的用户访问。根据示例实施例,数据消费系统100用于使用贡献分析来确定要向用户收取的访问数据的价格。以下讨论中提供了与用于使用贡献分析来定价对数据的访问的技术有关的其他细节。如图I所示,数据消费系统100包括多个用户系统102A-102M、网络104、数据访问价格计算器106和存储108。用户系统102A-102M与数据访问价格计算器106之间的通信是使用公知的网络通信协议通过网络104实施的。网络104可以是广域网(如因特网)、局域网(LAN)、另一类型的网络、或它们的组合。数据访问价格计算器106和存储108之间的通信是使用公知的查询语言来实施的,公知的查询语言为诸如结构化查询语言(SQL)、Java 持久查询语言(JPQL)等。用户系统102A-102M是处理系统,这些处理系统能够向数据访问价格计算器106 提供用于请求存储在存储108上(或者能以其他方式被存储108访问)的数据的查询。处理系统的示例是包括至少一个能够根据指令集操纵数据的处理器的系统。例如,处理系统可以是计算机、个人数字助理等。例如,用户可以使用部署在用户所拥有的或者能以其他方式被用户访问的用户系统102上的客户机(例如,Web浏览器、Web爬行器或其他类型的客户机)来启动对数据的查询。尽管图I中用户系统102A-102M被描绘为台式计算机,但是相关领域的技术人员将理解用户系统102A-102M可包括任何启用客户机的系统或设备,包括但不限于膝上型计算机、个人数字助理、蜂窝电话等等。数据访问价格计算器106是一种处理系统,该处理系统能够确定向发出查询以访问存储在存储108上(或者能以其他方式被存储108访问)的数据的用户收取的价格。在接收到用户的查询后,数据访问价格计算器106执行对存储108的查询。数据访问价格计算器106从存储108接收为基于该查询的结果。数据访问价格计算器106还可从存储108接收贡献分析指示符。贡献分析指示符包括便于贡献分析被数据访问价格计算器106执行的信息。例如,贡献分析指示符可指定数据包括在与用户查询有关的贡献数据中的行和/或列的数目、数据包括在结果中的行和/或列的数目、在贡献数据的分析期间使用的函数等。 数据访问价格计算器106分析结果和/或贡献分析指示符以确定要向访问结果的用户收取的价格。数据访问价格计算器106可将结果从发起查询的地方转发至用户系统102。存储108是将数据存储在各表间的存储设备或系统。每一个表包括数据的相应行和列。存储108可包括处理功能,但是各示例实施例的范围不限于这个方面。例如,存储 108可确定基于由数据访问价格计算器106执行的查询来确定要分析存储在存储108上(或能以其他方式被存储108访问)的哪些数据。根据这个示例,存储108可分析该数据以确定基于查询的结果。被分析的数据被称为贡献数据。存储108可生成贡献分析指示符,但是各示例实施例的范围不限于这个方面。贡献分析指示符指定数据包括在贡献数据中的行和 /或列的数目、该数据包括在结果中的行和/或列的数目、在贡献数据的分析期间使用的函数或其任何组合。存储108向数据分析价格计算器106提供结果和贡献分析指示符(如果可用的话),以供针对贡献分析而进一步进行处理。图2描绘了根据一实施例的用于使用贡献分析来定价对数据的访问的方法的流程图200。流程图200可以由例如图I所示的数据消费系统100的数据访问价格计算器106 来执行。为了说明的目的,根据一实施例,针对图3所示的数据访问价格计算器300描述了流程图200,该数据访问价格计算器300是数据访问价格计算器106的示例。如图3所示, 数据访问价格计算器300包括查询执行模块302、结果接收模块304、结果行确定模块306、 价格成分确定模块308、结果列确定模块310、关联确定模块312、基础价格确定模块314、额外费用价格确定模块316和访问价格确定模块318。基于有关流程图200的讨论,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。描述流程图200如下。如图2所示,流程图200的方法在步骤202处开始。在步骤202,对将数据存储在各表间的存储执行查询。每一个表包括数据的相应行和列。由存储所存储的数据可涉及各种主题。例如,第一表可包括与指定区域内待售的房屋有关的数据,第二表可包括与指定的电影流派有关的数据,第三表可包括与菜谱有关的数据,并以此类推。出于说明的目的,将针对请求位于洛杉矶的所有杂货店的列表的示例查询来讨论流程图200中的各步骤。在以下讨论中这个示例将被称为“杂货店示例”。在杂货店示例中执行的查询只是一个示例查询,并且应意识到,可以对存储执行任何合适的查询。在一示例实施例中,查询执行模块302 执行查询。在步骤204,接收基于查询的结果。结果包括数据的子集。根据杂货店示例,结果可包括所请求的位于洛杉矶的所有杂货店的列表。应意识到,这个结果中的杂货店的列表是存储所存储的数据的子集。例如,存储可存储其他数据,诸如与待售房屋有关的数据、与电影有关的数据、与菜谱有关的数据等。在一示例实现中,结果接收模块304接收结果。在步骤206,确定数据在子集中的行的数目。根据该杂货店示例,每一个行可表示在结果内所包括的杂货店的列表中的相应杂货店。在一示例实现中,结果行确定模块306 确定数据在子集中的行的数目。在步骤208,确定向发出查询以访问结果的用户收取的价格是否要基于该数据在该子集中的列的数目。根据杂货店示例,每一列可表示各杂货店的相应属性。例如,属性可包括操作小时、电话号码、地址、消费者评级等。向用户收取的价格可取决于结果所包括的属性的数目。在一示例实现中,价格成分确定模块308确定要向访问结果的用户收取的价格是否要基于该数据在子集中的列的数目。如果价格要基于该数据在子集中的列的数目, 则流程继续至步骤212。否则,流程继续至步骤210。在步骤210,向发出查询以访问结果的用户收取的价格是基于所确定的该数据在子集中的行的数目确定的。根据杂货店示例,价格基于包括在结果内的杂货店列表中的杂货店的数目。在一示例实现中,访问价格确定模块318基于所确定的该数据在子集中的行的数目来确定价格。在步骤210完成后,流程图200结束。在步骤212,确定数据在子集中的列的数目。根据杂货店示例,确定包括在结果中的杂货店的属性的数目。在一示例实现中,结果列确定模块310确定数据在子集中的列的数目。在步骤214,确定额外费用价格是否与该数据在子集中的列中的至少一个相关联。 根据杂货店示例,出于说明的目的,假设可以对包括在结果中的各杂货店的消费者评级来收取额外费用价格。在一示例实现中,关联确定模块312确定额外费用价格是否与该数据在子集中的各列中的至少一个相关联。如果格外费用价格与该数据在子集中的各列中的至少一个相关联,则流程继续至步骤218。否则,操作继续至步骤216。在步骤216,基于所确定的该数据在子集中的行的数目以及所确定的该数据在子集中的列的数目来确定向访问结果的用户收取的价格。根据杂货店示例,价格基于包括杂货店的数目以及结果中所包括的杂货店的属性的数目。在一示例实现中,访问价格确定模块318基于所确定的该数据在子集中的行的数目以及所确定的该数据在子集中的列的数目来确定价格。在步骤216完成后,流程图200结束。在步骤218,确定该数据在子集中的列的数目。例如,基础价格可以是与该数据在子集中的列的数目无关的固定价格。或者,基础价格可以与该数据在子集中的列的数目成比例。根据杂货店示例,为结果中所包括的杂货店的属性的数目确定基础价格。在一示例实现中,基础价格确定模块314确定基础价格。在步骤220,确定额外费用价格。在一示例实现中,额外费用价格确定模块316确定额外费用价格。在步骤222,基于所确定的该数据在子集中的行的数目、所确定的该数据在子集中的列的数目、基础价格以及与数据在子集中的列中的至少一个相关联的额外费用价格来确定向访问结果的用户收取的价格。根据杂货店示例,价格基于包括在结果中的杂货店的数目、包括在结果中的杂货店的属性的数目、基础价格以及额外费用价格。在一示例实现中, 访问价格确定模块318基于所确定的该数据在子集中的行的数目、所确定的该数据在子集中的列的数目、基础价格以及额外费用价格来确定价格。在步骤222完成后,流程图200结束。根据示例实施例,包括在存储的一些表中的行可以与比包括在该存储的其他表中的行更高的价格相关联。例如,第一表中的行可以与第一价格相关联;第二表中的行可以与第二价格相关联,并以此类推。可以在确定向用户收取的价格时考虑各行间的价格中的这些区别。在一些示例实施例中,可不执行流程图200的一个或多个步骤202、204、206、208、 210、212、214、216、218、220 和 / 或 222。而且,可执行除步骤 202、204、206、208、210、212、 214、216、218、220和/或222之外的或代替这些步骤的步骤。将意识到,数据访问价格计算器300可以不包括查询执行模块302、结果接收模块 304、结果行确定模块306、价格成分确定模块308、结果列确定模块310、关联确定模块312、 基础价格确定模块314、额外费用价格确定模块316和/或访问价格确定模块318中的一个或多个。此外,数据访问价格计算器300可以包括除查询执行模块302、结果接收模块304、 结果行确定模块306、价格成分确定模块308、结果列确定模块310、关联确定模块312、基础价格确定模块314、额外费用价格确定模块316和/或访问价格确定模块318之外的或代替这些模块的模块。根据一示例实施例,可以用图4的流程图400中示出的步骤来替换流程图200中的步骤208、210、212、214、216、218、220和/或222。根据一实施例,针对图5所示的数据访问价格计算器500描述了流程图400,该数据访问价格计算器400是数据访问价格计算器106的示例。如图5所示,数据访问价格计算器500包括第一列价格确定模块502、第二列价格确定模块504和访问价格确定模块318。基于有关流程图400的讨论,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。描述流程图400如下。如图4所示,流程图400的方法在步骤402处开始。在步骤402,确定该数据在子集中的第一列的第一价格。在一不例实现中,第一列价格确定模块502确定第一列的第一价格。在步骤404,确定该数据在子集中的第二列的第二价格。第二价格大于第一价格。 如以上在参考图2的杂货店示例中讨论的,消费者对杂货店的评级的价格可以被定价得比杂货店的电话号码要高。因此,数据的第一列的第一价格可以与杂货店的电话号码的价格相对应,数据的第二列的第二价格可以与消费者对杂货店的评级的价格相对应。在一示例实现中,第二列价格确定模块504确定第二列的第二价格。在步骤406,基于所确定的该数据在子集中的行的数目、第一价格以及第二价格来确定向访问结果的用户收取的价格。根据杂货店示例,该价格基于结果内的杂货店列表中所包括的杂货店的数目、杂货店的电话号码的价格以及消费者对杂货店的评级的价格。在一示例实现中,访问价格确定模块308基于所确定的该数据在子集中的行的数目、第一价格和第二价格来确定向用户收取的价格。在相应的图2和图4的流程图200和400中示出的方法考虑了包括在基于查询的结果中的数据的量。根据这些方法,可以对访问包括大量数据的结果向用户收取比访问包括较少量数据的结果更多的费用。然而,与一些查询有关的结果包括相对少量的(例如一行)数据,但是对这些查询的执行可能已涉及分析大量的贡献数据。在这种实例中,使用考虑贡献数据的量来确定向访问结果的用户收取的价格的定价模型可以是合乎需要的。图6描绘了根据一实施例的用于定价对数据的访问的方法的流程图600,该方法考虑了针对查询而被分析的贡献数据的量。出于说明的目的,根据一实施例,针对图7所示的数据访问价格计算器700描述了流程图600,数据访问价格计算器700是数据访问价格计算器106的示例。如图7所示,数据访问价格计算器700包括查询执行模块302、指示符接收模块702、贡献行确定模块704、贡献列确定模块706、结果接收模块304、结果行确定模块306、价格成分确定模块308和访问价格确定模块318。基于有关流程图600的讨论,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。描述流程图600如下。如图6所示,流程图600的方法在步骤202处开始。在步骤202,对将数据存储在各表间的存储执行查询。每一个表包括该数据的相应行和列。出于说明的目的,将针对请求洛杉矶得到最高评级的中国餐厅的示例查询来讨论流程图600的各步骤。在以下讨论中这个示例将被称为“餐厅示例”。在餐厅示例中执行的查询只是一个示例查询,并且应意识到,可以对存储执行任何合适的查询。在一示例实施例中,查询执行模块302执行查询。在步骤302,接收指示符,该指示符指定了该数据包括在针对查询的执行而被分析的第一数据子集中的行的数目。根据该餐厅示例,第一数据子集可包括洛杉矶所有中国餐厅的列表。例如,数据的包括在该数据的第一数据子集中的每一行可以表示相应的中国餐厅。洛杉矶所有中国餐厅的列表在这个示例中可以被称为贡献数据。在一示例实现中,指示符接收模块702接收指示符。根据一示例实施例,贡献行确定模块704基于该指示符来确定该数据包括在第一子集中的行的数目。根据另一示例实施例,指示符还指定数据包括在该数据的第一数据子集中的列的数目。根据这个实施例,贡献列确定模块706可以基于该指示符来确定该数据包括在第一子集中的列的数目。根据另一示例实施例,指示符包括从存储处接收的查询计划。查询计划是响应于对存储的查询的执行而由存储执行来生成结果的一组操作。例如,查询计划可以指定针对查询的执行而被存储分析的第一表中的行的第一数目、第二表中的行的第二数目等。根据这个实施例,该数据包括在第一子集中的行的数目是第一数目、第二数目等的和。在步骤604,接收基于查询的结果。该结果包括第二数据子集。第一子集比第二子集包括更多存储中所存储的数据。例如,第二数据子集可以是第一数据子集的子集。根据餐厅示例,结果包括洛杉矶得到最高评级的中国餐厅。应当意识到,洛杉矶得到最高评级的中国餐厅是贡献数据(即,在这个示例中为洛杉矶所有中国餐厅的列表)的子集。在一示例实现中,结果接收模块304接收结果。在步骤606,确定该数据在第二子集中的行的数目。根据餐厅示例,确定结果包括数据中表示洛杉矶得到最高评级的餐厅的单个行。在一示例实现中,结果行确定模块306 确定该数据在第二子集中的行的数目。在步骤608,确定向发出查询以访问结果的用户收取的价格是否基于该数据包括在第一子集中的列的数目。根据餐厅示例,贡献数据中的每一列可表示中国餐厅的相应属性。例如,属性可包括操作小时、电话号码、地址、消费者评级等。向用户收取的价格可取决于结果所包括的属性的数目。在一示例实现中,价格成分确定模块308确定向访问结果的用户收取的价格是否基于数据包括在第一子集中的列的数目。如果价格基于数据包括在第一子集中的列的数目,则流程继续至步骤612。否则,流程继续至步骤610。在步骤610,基于所确定的该数据在第二子集中的行的数目以及该数据包括在第一子集中的行的数目来确定向发出查询以访问结果的用户收取的价格。根据餐厅示例,该价格基于结果中所包括的中国餐厅的数目(即,在本示例中为一个)以及在贡献数据中所包括的中国餐厅的数目。在一示例实现中,访问价格确定模块318基于所确定的数据在第二子集中的行的数目以及数据在第一子集中的行的数目来确定该价格。在步骤610完成后, 流程图600结束。在步骤612,基于所确定的该数据在第二子集中的行的数目、该数据包括在第一子集中的行的数目以及该数据包括在第一子集中的列的数目来确定向发出查询以访问结果的用户收取的价格。根据餐厅示例,该价格基于结果中所包括的中国餐厅的数目(即,在本示例中为一个)、在贡献数据中所包括的中国餐厅的数目以及在贡献数据中所包括的中国餐厅的属性的数目。在一示例实现中,访问价格确定模块318基于所确定的该数据在第二子集中的行的数目、该数据包括在第一子集中的行的数目以及该数据包括在第一子集中的列的数目来确定价格。在步骤612完成后,流程图600结束。在某些实施例中,可不执行流程图600的一个或多个步骤602、604、606、608、610 和/或612。而且,可执行除步骤602、604、606、608、610和/或612之外或代替这些步骤的步骤。应意识到,数据访问价格计算器700可以不包括查询执行模块302、指示符接收模块702、贡献行确定模块704、贡献列确定模块706、结果接收模块304、结果行确定模块306、 价格成分确定模块308和/或访问价格确定模块318中的一个或多个。此外,数据访问价格计算器700可以包括查询执行模块302、指示符接收模块702、贡献行确定模块704、贡献列确定模块706、结果接收模块304、结果行确定模块306、价格成分确定模块308和/或访问价格确定模块318之外或代替这些模块的模块。图6的流程图600中示出的方法考虑了包括在贡献数据中的数据的量,该贡献数据是由存储出于确定结果的目的而针对查询分析的。根据这个方法,可以对访问为其分析了大量贡献数据的结果向用户收取比访问为其分析了较少量贡献数据的结果更多的费用。 然而,使用定价模型可以是合乎需要的,该定价模型为查询中引用的一些函数设置指定价格,该指定价格并不必须涉及为这些查询所分析的贡献数据的量。例如,基于函数的定价可以提供与贡献数据的量很大时考虑了贡献数据的量的定价有关的折扣。图8描绘了根据一实施例的用于定价对数据的访问的方法的流程图800,该方法考虑了针对查询而被执行的函数的函数价格。出于说明的目的,根据一实施例,针对图9所示的数据访问价格计算器900描述了流程图800,数据访问价格计算器900是数据访问价格计算器106的示例。如图9所示,数据访问价格计算器900包括查询计划请求模块902、函数确定模块904、函数价格确定模块906、访问价格确定模块318、指示符确定模块908和价格指示模块910。基于有关流程图800的讨论,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。描述流程图800如下。如图8所示,流程图800的方法在步骤802处开始。在步骤802,请求来自存储的与查询有关的非内联查询计划。在示例实现中,查询计划请求模块902请求非内联查询计划。查询计划是响应于对存储的查询的执行而由存储执行来生成结果的一组操作。非内联查询计划是其中不是所有函数都是内联的查询计划。功能是查询中所引用的子查询。如果一函数的定义被存储结合(即,内联)到查询中,则该函数被称为是内联的;然而,如果一函数在对存储执行查询时被该存储调用,则该函数被称为是非内联的。由此,为内联的函数是通过将该函数的定义结合到查询计划中而被包括在查询计划中的;而为非内联的函数是通过列出对该函数的函数调用而被包括在查询计划中的。出于说明的目的,假设查询通过“获得五英里内的兴趣点”来请求所有中国餐厅。 短语“获得五英里内的兴趣点”表示一函数,存储可以将该函数看成是内联的或非内联的。 如果存储将该函数看成是内联的,则存储可以修改查询以选择是中国餐厅的兴趣点,从各餐厅的X坐标中减去用户的X坐标以提供相应的X距离,从各餐厅的Y坐标中减去用户的 Y坐标以提供相应的Y距离,对各X距离求平方以提供相应的X距离的平方,对各Y距离求平方以提供相应的Y距离的平方,将每一 X距离的平方与相应的Y距离的平方相加并获取该和的平方根以提供相应的距离,以及将具有小于五英里的距离的中国餐厅作为结果来提供。另一方面,如果存储将该函数看作是非内联的,则存储可调用该函数来获得临时结果,该临时结果包括在用户位置的五英里之内的所有兴趣点。可以将临时结果描述成表格,因为表格包括数据的行和列。存储可以对临时结果运行查询的其他方面。根据这个示例,存储可以确定临时结果中所包括的兴趣点中的哪些是中国餐厅。在步骤804,确定查询计划包括针对查询而被执行的函数。例如,确定查询计划包括对该函数的函数调用。在示例实现中,函数确定模块904确定查询计划包括针对查询而被执行的函数。在步骤806,确定函数的函数价格。在示例实现中,函数价格确定模块906确定函数的函数价格。在步骤808,基于该函数价格来确定要向发出查询以访问对应于该查询的结果的用户收取的价格。在示例实现中,访问价格确定模块318基于该函数价格确定要向访问结果的用户收取的价格。在步骤810,确定是否要将指定了要向访问结果的用户收取的价格的价格指示符提供给用户。在示例实现中,指示符确定模块908确定是否要将价格指示符提供给用户。如果要将价格指示符提供给用户,则流程继续至步骤812。否则,流程800结束。在步骤812,将指定了要向访问结果的用户收取的价格的价格指示符提供给用户。 例如,在向用户提供对结果的访问之前,可以给予用户接受该价格的选项。在示例实现中, 价格指示模块910将价格指示符提供给用户。在步骤812完成后,流程图800结束。应当注意,存储可以使用为内联的函数或为非内联的函数来处理查询。提供非内联的查询计划并不影响存储使用为内联的函数来处理查询的能力。事实上,使用为内联的函数来处理查询可以比使用为非内联的函数来处理查询更高效,因为可以允许存储选择针对查询而被执行的操作的次序。例如,如果查询请求在用户位置五英里之内的所有中国餐厅,则存储可以确定在如下情况下可以更快速地生成结果先确定在用户位置五英里之内的所有兴趣点,然后确定这些兴趣点中的哪些是中国餐厅。或者,存储可以确定在如下情况下可以更快速地生成结果先确定所有的中国餐厅,然后确定这些中国餐厅中的哪些在用户位置的五英里之内。为内联的函数给予存储作出这种确定的能力。在某些示例实施例中,可以不执行流程图800的一个或多个步骤802、804、806、 808,810和/或812。此外,可以执行除步骤802、804、806、808、810和/或812以外的或代替这些步骤的步骤。应当意识到,数据访问价格计算器900可以不包括查询计划请求模块902、函数确定模块904、函数价格确定模块906、访问价格确定模块318、指示符确定模块908和/或价格指示模块910中的一个或多个。此外,数据访问价格计算器900可以包括除查询计划请求模块902、函数确定模块904、函数价格确定模块906、访问价格确定模块318、指示符确定模块908和/或价格指示模块910之外或代替这些模块的模块。可以以硬件、软件、固件或其任何组合来实现查询执行模块302、结果接收模块 304、结果行确定模块306、价格成分确定模块308、结果列确定模块310、关联确定模块312、 基础价格确定模块314、额外费用价格确定模块316、访问价格确定模块318、第一列价格确定模块502、第二列价格确定模块504、指示符接收模块702、贡献行确定模块704、贡献列确定模块706、查询计划请求模块902、函数确定模块904、函数价格确定模块906、指示符确定模块908和价格指示模块910。可以将查询执行模块302、结果接收模块304、结果行确定模块306、价格成分确定模块308、结果列确定模块310、关联确定模块312、基础价格确定模块314、额外费用价格确定模块316、访问价格确定模块318、第一列价格确定模块502、第二列价格确定模块504、指示符接收模块702、贡献行确定模块704、贡献列确定模块706、查询计划请求模块902、函数确定模块904、函数价格确定模块906、指示符确定模块908和/或价格指示模块910实现成被配置为在一个或多个处理器中执行的计算机程序代码。在另一示例中,可以将查询执行模块302、结果接收模块304、结果行确定模块 306、价格成分确定模块308、结果列确定模块310、关联确定模块312、基础价格确定模块 314、额外费用价格确定模块316、访问价格确定模块318、第一列价格确定模块502、第二列价格确定模块504、指示符接收模块702、贡献行确定模块704、贡献列确定模块706、查询计划请求模块902、函数确定模块904、函数价格确定模块906、指示符确定模块908和/或价格指示模块910实现成硬件逻辑/电子电路。图10描绘其中可实现各实施例的示例计算机1000。可以使用计算机1000 (包括计算机1000的一个或多个特征和/或替换特征)来实现图I所示的用户系统102A - 102M、 数据访问价格计算器106或存储108中的任何一个或多个。计算机1000可以是例如常规个人计算机、移动计算机或工作站形式的通用计算设备,或者计算机1000可以是专用计算设备。此处所提供的对计算机1000的描述只是为了说明,并不是限制性的。实施例也可以在相关领域的技术人员所知的其它类型的计算机系统中实现。
如图10所示,计算机1000包括处理单元1002、系统存储器1004和总线1006,总线1006将包括系统存储器1004在内的各种系统组件耦合到处理单元1002。总线1006表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种总线体系结构中的任何一种的处理器或局部总线。系统存储器1004包括只读存储器(ROM) 1008和随机存取存储器(RAM) 1010。基本输入/输出系统1012 (BIOS)储存在ROM 1008中。计算机1000还具有一个或多个以下驱动器用于读写硬盘的硬盘驱动器1014、用于读或写可移动磁盘1016的磁盘驱动器1018、以及用于读或写诸如⑶R0M、DVD ROM或其他光介质之类的可移动光盘1020的光盘驱动器1022。硬盘驱动器1014、磁盘驱动器1016, 以及光驱动器1020分别通过硬盘驱动器接口 1006、磁盘驱动器接口 1024,以及光学驱动器接口 1026连接到总线1028。驱动器以及它们相关联的计算机可读存储介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器 (RAM),只读存储器(ROM)等等之类的其他类型的计算机可读存储介质来储存数据。数个程序模块可被储存在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统 1030、一个或多个应用程序1032、其他程序模块1034以及程序数据1036。应用程序1032 或程序模块1034可以包括例如用于实现如此所描述的如下内容的计算机程序逻辑查询执行模块302、结果接收模块304、结果行确定模块306、价格成分确定模块308、结果列确定模块310、关联确定模块312、基础价格确定模块314、额外费用价格确定模块316、访问价格确定模块318、第一列价格确定模块502、第二列价格确定模块504、指示符接收模块702、贡献行确定模块704、贡献列确定模块706、查询计划请求模块902、函数确定模块904、函数价格确定模块906、指示符确定模块908、价格指示模块910、流程图200 (包括流程图200的任何步骤)、流程图400 (包括流程图400的任何步骤)、流程图600 (包括流程图600的任何步骤)和/或流程图800 (包括流程图800的任何步骤)。用户可以通过诸如键盘1038和定点设备1040之类的输入设备向计算机1000中输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、 扫描仪等。这些及其他输入设备常常通过耦合到总线1002的串行端口接口 1042连接到处理单元1006,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。显示设备1044 (例如监视器)也通过诸如视频适配器1046之类的接口连接到总线 1006。除了显示设备1044之外,计算机1000还可包括其他外围输出设备(未示出),如扬声器和打印机。计算机1000通过网络接口或适配器1050、调制解调器1052、或用于通过网络建立通信的其他装置连接到网络1048 (例如,因特网)。调制解调器1052 (可以是内置的或外置的)通过串行端口接口 1042连接到总线1006。如此处所用的,术语“计算机程序介质”以及“计算机可读介质”用于泛指介质,诸如与硬盘驱动器1014相关联的硬盘、可移动磁盘1018、可移动光盘1022,以及其他介质,诸如闪存卡、数字视频盘、随机读取存储器(RAM)、只读存储器(ROM)等。如上文所指示的,计算机程序和模块(包括应用程序1032及其他程序模块1034)可被储存在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口 1050或串行端口接口 1042来接收。这些计算机程序在由应用程序执行或加载时使得计算机1000 能够实现此处所讨论的实施例的特征。相应地,这样的计算机程序表示计算机1000的控制器。示例实施例还涉及包括存储在任何计算机可用介质上的软件(例如计算机可读指令)的计算机程序产品。这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。实施例可使用现在已知或将来知晓的任何计算机可使用或计算机可读介质。计算机可读介质的例子包括但不限于存储设备,诸如RAM、硬盘、软盘、CD ROM,DVD ROM,Zip盘、磁带、磁存储设备、光存储设备、基于MEMS的存储设备、基于纳米技术的存储设备,等等。III.结语虽然以上描述了不同的实施例,但应当理解的是它们只是作为示例而非限制。对于相关领域的技术人员显而易见的是,可以对其做出各种改变而不背离本发明的精神和范围。因此,本发明的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。
权利要求
1.一种对联网环境中的数据的访问进行定价的方法,包括对将数据存储在多个表间的存储执行查询,每一个表包括所述数据的相应行和列;基于所述查询接收结果,所述结果包括所述数据的子集;确定所述数据在所述子集中的行的数目;以及基于所确定的所述数据在所述子集中的行的数目来确定向发出所述查询以访问所述结果的用户收取的价格。
2.如权利要求I所述的方法,其特征在于,还包括确定所述数据在所述子集中的列的数目;其中,基于所确定的所述数据在所述子集中的行的数目来确定向访问所述结果的所述用户收取的价格包括基于所确定的所述数据在所述子集中行的数目以及所确定的所述数据在所述子集中的列的数目来确定向访问所述结果的所述用户收取的价格。
3.如权利要求2所述的方法,其特征在于,还包括接收指示符,所述指示符指定所述数据包括在针对所述查询的执行而被分析的所述数据的第二子集中的行的数目和列的数目;其中,所述第二子集比所述第一子集包括存储在所述存储中的所述数据中的更多数据;以及其中,基于所确定的所述数据在所述子集中的行的数目来确定向访问所述结果的用户收取的价格包括基于所确定的所述数据在所述第一子集中的行的数目、所确定的所述数据在所述第一子集中的列的数目以及所述数据包括在所述第二子集中的行的数目和列的数目来确定向访问所述结果的所述用户收取的价格。
4.如权利要求3所述的方法,其特征在于,还包括确定所述数据在所述第一子集中的列的数目的基础价格;以及确定除所述基础价格以外还要收取的与所述数据在所述第一子集中的列中的至少一个相关联的额外费用价格;其中,基于所确定的所述数据在所述子集中的行的数目来确定向访问所述结果的用户收取的价格包括基于所确定的所述数据在所述第一子集中的行的数目、所确定的所述数据在所述第一子集中的列的数目、所述数据包括在所述第二子集中的行的数目和列的数目、所述基础价格以及所述额外费用价格来确定向访问所述结果的所述用户收取的价格。
5.如权利要求I所述的方法,其特征在于,还包括确定所述数据在所述子集中的第一列的第一价格;以及确定所述数据在所述子集中的第二列的第二价格;其中,所述第二价格大于所述第一价格;以及其中,基于所确定的所述数据在所述子集中的行的数目来确定向访问所述结果的用户收取的价格包括基于所确定的所述数据在所述子集中的行的数目、所述第一价格以及所述第二价格来确定向访问所述结果的所述用户收取的价格。
6.如权利要求I所述的方法,其特征在于,还包括接收指示符,所述指示符指定所述数据包括在针对所述查询的执行而被分析的所述数据的第二数据子集中的行的数目;其中,所述第二子集比所述第一子集包括存储在所述存储中的所述数据中的更多数据;以及其中,基于所确定的所述数据在所述子集中的行的数目来确定向访问所述结果的用户收取的价格包括基于所确定的所述数据在所述第一子集中的行的数目以及所述数据包括在所述第二子集中的行的数目来确定向访问所述结果的所述用户收取的价格。
7.如权利要求I所述的方法,其特征在于,还包括将指定了向访问所述结果的所述用户收取的价格的价格指示符提供给所述用户。
8.如权利要求I所述的方法,其特征在于,对所述存储执行查询包括对所述存储执行已存储过程;以及其中,基于所述查询接收结果包括基于所述已存储过程接收所述结果。
9.一种计算机程序产品,包括具有存储于其上的控制逻辑的计算机可读介质,所述控制逻辑包括被安排为实现权利要求1-8中的任一项的方法步骤的计算机可读程序装置。
10.一种数据访问价格计算器,包括查询计划请求模块,所述查询计划请求模块被配置成请求来自存储的与查询有关的非内联查询计划;函数确定模块,所述函数确定模块被配置成确定所述查询计划包括针对所述查询而被执行的函数;函数价格确定模块,所述函数价格确定模块被配置成确定所述函数的函数价格;以及访问价格确定模块,所述访问价格确定模块被配置成基于所述函数价格来确定要向发出所述查询以访问对应于所述查询的结果的用户收取的价格。
11.如权利要求10所述的数据访问价格计算器,其特征在于,还包括查询执行模块,所述查询执行模块被配置成对所述存储执行所述查询,所述存储将数据存储在多个表间,每一个表包括所述数据的相应行和列;结果接收模块,所述结果接收模块被配置成基于所述查询接收所述结果,所述结果包括所述数据的子集;以及结果行确定模块,所述结果行确定模块被配置成确定所述数据在所述子集中的行的数目;其中所述访问价格确定模块被配置成还基于所述数据在所述子集中的行的数目来确定所述价格。
12.如权利要求11所述的数据访问价格计算器,其特征在于,还包括结果列确定模块,所述结果列确定模块被配置成确定所述数据在所述子集中的列的数目;其中所述访问价格确定模块被配置成还基于所述数据在所述子集中的列的数目来确定所述价格。
13.如权利要求12所述的数据访问价格计算器,其特征在于,还包括基础价格确定模块,所述基础价格确定模块被配置成确定所述数据在所述子集中的列的数目的基础价格;以及额外费用价格确定模块,所述额外费用价格确定模块被配置成确定除所述基础价格以外还要收取的与所述数据在所述子集中的列中的至少一个相关联的额外费用价格;其中所述访问价格确定模块被配置成还基于所述基础价格和所述额外费用价格来确定所述价格。
14.如权利要求10所述的数据访问价格计算器,其特征在于,还包括价格指示模块,所述价格指示模块被配置成将指定了向访问所述结果的所述用户收取的价格的价格指示符提供给所述用户。
15.如权利要求10所述的数据访问价格计算器,其特征在于,所述查询是已存储过程。
全文摘要
在此描述了用于使用贡献分析对数据的访问进行定价的技术。用户可向存储数据的存储发出查询。存储可分析数据的子集以确定响应于查询而提供给用户的结果。该子集称为贡献数据。数据访问价格计算器执行贡献分析以确定要向访问结果的用户收取的价格。贡献分析考虑了数据在贡献数据中的行和/或列的数目、数据在结果中的行和/或列的数目、在对贡献数据的存储分析期间使用的函数或其任何组合。数据访问价格计算器可以从这种信息中导出指示符,该指示符是从存储和/或在某一程度下是从结果本身接收的。
文档编号G06F17/00GK102612688SQ201080051892
公开日2012年7月25日 申请日期2010年10月29日 优先权日2009年11月17日
发明者L·诺维克, M·克斯拉维 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1