联接跨云资源的JavaScript对象表示法(JSON)查询的制作方法

未命名 09-24 阅读:64 评论:0

联接跨云资源的javascript对象表示法(json)查询


背景技术:

1.本公开总体上涉及数据处理以及数据库和文件访问。
2.内联接(以下简称“联接”)是关系代数中的操作,该操作用于基于特定列或对象的共同值跨关系数据库中的索引来合并结果。结果是基于针对如对数据库的联接查询所指定的关系数据库中的每个列值或对象的具体条目具有相同的值而被联接的。使用“与”逻辑运算符,通过合并来自成对联接操作中的每一个的联接结果,可以跨多于两个索引来组合联接。
附图说明
3.通过参考附图可以更好地理解本公开的实施例。
4.图1是用于联接跨云资源的json查询规则的示例系统的示意图。
5.图2是用于利用云资源优化联接过滤器来解析云资源查询的示例系统的示意图。
6.图3是针对云资源联接查询的旧式联接(legacy join)和优化联接的计算时间与叉积(cross product)大小的图表。
7.图4是用于评估云资源联接查询的示例操作的流程图。
8.图5是用于根据一阶谓词(first-order predicates)来评估云资源json查询的结果以生成成对联接集的示例操作的流程图。
9.图6描绘了具有云资源联接查询解析器的示例计算机系统。
10.描述
11.以下描述包括体现本公开的实施例的示例系统、方法、技术和程序流程。然而,要理解的是,可以在没有这些具体细节的情况下实践本公开。例如,在说明性示例中,本公开涉及联接跨云资源的javascript对象表示法(json)查询的结果。本公开的各方面可以取而代之被应用于联接跨云资源的针对其他文件格式的查询的结果。在其他实例中,为了不混淆本描述,没有详细示出众所周知的指令实例、协议、结构和技术。
12.概述
13.本文中公开的针对云资源的优化联接通过对来自每个云资源的查询结果进行动态索引、并且评估和合并查询结果的动态索引上的成对联接,来评估云资源联接查询。联接查询解析器解析云资源联接查询,以将对应于关于云资源对的一阶谓词的联接规则与对应于关于个体云资源的json文件的javascript对象表示法(“json”)规则隔离。信息检索系统解析json规则以生成对与云资源相对应的指纹的数据库的查询,并且检索对应的云资源指纹结果。优化联接过滤器包括动态索引器,动态索引器针对每个云资源对来生成对应于每个一阶谓词的索引,并且搜索引擎使用所述索引以针对每个一阶谓词找到成对的云资源联接结果。优化联接过滤器通过标识包括来自每个云资源的同时满足每个一阶谓词的指纹的结果来合并成对的云资源联接结果,以生成云资源联接查询结果。
14.示例图示
15.图1是用于联接跨云资源的json查询规则的示例系统的示意图。计算设备101将云
资源联接查询100传送给联接查询解析器103。联接查询解析器103解析云资源联接查询100,并且将其划分成联接规则140和查询个体云资源的json查询规则142。云资源信息检索系统105接收json查询规则142,并且生成对一个或多个云资源的云数据库查询106,云资源信息检索系统105将该云数据库查询106传送给云指纹数据库107。云指纹数据库107返回云资源查询结果,包括云资源x查询结果110和云资源y查询结果108。云资源信息检索系统105将云资源x查询结果110和云资源y查询结果108传送给联接过滤器109。联接过滤器109附加地接收联接规则140,并且将联接规则140应用于云资源x查询结果110和云资源y查询结果108,以生成联接查询结果112,联接过滤器109将联接查询结果112传送给计算设备101。
16.示例云资源联接查询120包括以下句法:
17.config where api.name=

clouda’as x
18.config where api.name=

cloudb’as y
19.filter$x.patha contains itema and_fn($y.pathb)《40and$x.joinvalue equals$y.joinvalue
20.示例云资源联接查询120是在云资源上的json文件中的对象上定义的json规则和在应用了json规则之后的经过滤的云资源上的联接的组合。第一行将变量x定义为具有api.name“clouda”的云资源,并且第二行将变量y定义为具有api.name“cloudb”的云资源。第三行指定了根据前两行被过滤的云资源clouda和cloudb中所有json对象对的联接规则(使用“filter...”句法),这些对象对被联接使得x中的路径包含item a,被应用于“x=y中的路径”的自定义函数_fn(x)小于40,并且x.joinvalue的值等于y.joinvalue。尽管针对两个云资源进行了描绘,但是示例云资源联接查询120可以包括跨任意数量的云资源的过滤器(即,联接规则)。可以根据联接规则使用联接的组合并且合并所得到的联接集来组合每个云资源的来自json规则的结果,如下面以各种方式描述的那样。
21.联接查询解析器103将云资源联接查询100解析成包含联接规则140和json查询规则142的格式化联接查询102。联接查询解析器103可以在云资源联接查询100的“filter...”段中提取json规则,并且可以将它们插入到云资源联接查询100的相应json规则段中。例如,提取json规则之后的示例联接规则122包括以下内容:
22.filter$x.joinvalue equals$y.joinvalue
23.示例json查询规则124和126包括以下内容:
24.config where api.name=

cloudb’and json.rule=_fn(pathb)《40as y
25.config where api.name=

clouda’and json.rule=patha contains

itema’as x
26.在该实例中,联接查询解析器103通过检测示例云资源联接查询120的filter段中的“$...”句法来生成示例json查询规则124和126。随后,联接查询解析器103在示例云资源联接查询120中的对应的json规则中标识对应于x云资源和y云资源的段,将相应的云资源段添加到“config...”段,并且使用可以取决于所实现的查询格式的预定义句法规则来翻译句法。示例云资源联接查询120的“filter...”段中的json规则段由所得到的示例联接规则140中的相应云资源标识符(x和y)所替换。
27.云资源信息检索系统105接收json查询规则142,并且使用它们来生成云数据库查询106。云资源信息检索系统105可以包括json查询解析器,json查询解析器基于json查询
规则142中的逻辑规则来生成针对云资源的查询。json查询解析器103可以是由编译器-编译器生成的解析器,该编译器-编译器可以处置由上下文无关(context-free)的语法所定义的一阶逻辑规则。云资源信息检索系统105可以使用所生成的逻辑规则来标识与该逻辑规则相关的一个或多个云资源的集合。例如,云资源信息检索系统105可以使用针对每个云资源维持的简档和/或指纹来检测存在于逻辑规则中的标识了云资源的键/值对、指纹和/或其他元数据。在所给出的示例中,云资源信息检索系统105可以基于示例json查询规则142中指示的api名称来标识云资源“clouda”和“cloudb”。随后,云资源信息检索系统105使用所生成的逻辑规则来生成对所标识的云资源的查询,该查询在云指纹数据库107中使用针对所标识的云资源的查询格式。云资源信息检索系统105随后将包括所生成的查询的云数据库查询106传送给云指纹数据库107,云指纹数据库107将云资源x查询结果110和云资源y查询结果108返回给云资源信息检索系统105。
28.云指纹数据库107可以包括存储在已知云资源上的json文件中的对象的指纹。指纹可以包括针对每个相应云资源被频繁查询的对象的标识符。云指纹数据库107可以在它接收到查询时维持每个云资源的简档。简档可以指示被查询对象的频率和/或每个对象的其他特性、统计信息、标识符等。在时间段内(例如,在基于时间表(schedule)被检查之后)具有低查询频率的json对象可以从云指纹数据库107被移除。在一些实施例中,当云指纹数据库107接收到云数据库查询106时,查询结果中的一些可以返回空值。然而,云资源查询结果108和110可以包括如下对象:该对象包括返回了空值的查询中的键/值对。将云资源存储为指纹降低了存储成本,同时维持了云查询的联接功能性。
29.联接过滤器109接收联接规则140、云资源x查询结果110和云资源y查询结果108。联接过滤器109使用动态索引器、搜索引擎和联接结果合并器来生成联接查询结果112,联接查询结果112被传送给计算设备101。图2中更详细地描述了用于使用联接规则来联接云资源查询结果的操作。计算设备101可以包括用户接口,该用户接口允许用户生成云资源联接查询并且调整用于联接云资源查询的算法的参数。
30.图2是用于利用云资源优化联接过滤器来解析云资源查询的示例系统的示意图。云资源指纹生成器201接收云资源查询结果200,云资源指纹生成器201使用云资源查询结果200来生成更新的指纹202。云资源指纹生成器201将所生成的指纹202传送给云指纹数据库203以供随后存储。在分离但并行的流水线中,计算设备231将云资源联接查询240传送给云资源信息检索系统205。云资源信息检索系统205从云资源联接查询240中提取云资源查询206,并且云指纹数据库203接收云资源查询206。云指纹数据库203返回云资源指纹结果204。云资源信息检索系统205将从云资源联接查询240中提取的云资源指纹结果204和云资源联接规则208传送给云资源优化联接过滤器241,云资源优化联接过滤器241包括动态索引器207。动态索引器207生成被索引的云资源指纹210,该被索引的云资源指纹210由搜索引擎209来接收。搜索引擎209从被索引的云资源指纹210生成成对云资源联接集212。成对联接合并器211接收成对云资源联接集212,并且生成n-wise云资源联接结果214,该n-wise云资源联接结果214由计算设备231来接收。
31.云资源指纹生成器201可以解析云资源查询结果200,以标识对应于云资源查询结果200的云资源和json对象。云资源指纹生成器201可以针对与云资源查询结果200相对应的现有云指纹来查询云指纹数据库203,并且可以相应地更新这些指纹。例如,示例更新的
指纹220包括以下字段:
32.path=

x.patha’33.frequency=.15
34.path=

x.pathb’35.frequency=0.03
36.云资源指纹生成器201可以接收云资源查询中针对x.patha和x.pathb的先前频率值,并且根据云资源查询结果200中对x.patha和x.pathb的查询来更新这些先前频率值。在一些实施例中,云指纹包括其他统计信息和/或特性,诸如指纹中的json对象的已知重要性、指纹的标识符等。云指纹数据库203可以通过与所存储的指纹相对应的json对象的云标识符和路径位置而被索引。
37.云资源联接查询240包括json规则和联接规则的组合,其中json规则包括用于查询云资源上的json对象的规则,并且联接规则包括用于组合跨云资源的json对象结果的规则。云资源信息检索系统205可以包括云资源联接查询解析器,云资源联接查询解析器可以从云资源联接查询240中提取json规则和联接规则,并且可以使用json规则以及由编译器-编译器使用上下文无关的语法生成的json查询解析器来进一步提取云资源查询206。云资源查询206可以包括云资源列表以及要针对其检索指纹的每个云资源中的对应路径。云资源信息检索系统205将由云指纹数据库203返回的云资源指纹结果204以及从云资源联接查询240生成的云资源联接规则208传送给动态索引器207。
38.云资源联接规则208包括一阶谓词,一阶谓词定义了针对云资源对而检索的指纹之间的联接规则。由云资源联接规则208表达的完全联接规则包括由一阶谓词表达的成对联接规则中的每一个的交集(intersection)。动态索引器207针对每个一阶谓词生成索引,搜索引擎209针对云资源指纹结果204中的对应指纹来评估一阶谓词中的每一个,并且成对联接合并器211在成对云资源联接集212中执行交集和重复数据删除(de-duplication)。云资源联接规则208中的示例一阶谓词包括以下内容:
39.fopccontains($.x.path1,$.y.path2)and fopcnotequals($.y.path1,$.z.path2)
40.该一阶谓词指定了云资源x和云资源y之间的联接规则,即x.path1处的json对象包含y.path2处的json对象。第二个一阶谓词指定了云资源y和云资源z之间的联接规则,即y.path1处的json对象不等于z.path2处的json对象,并且综合联接规则指定了满足这两个一阶谓词的跨云资源x、y和z的json对象的三元组。
41.动态索引器207针对云资源指纹结果204中的云资源对之间的每个一阶谓词生成索引。动态索引器207可以使用有助于高效查找文件格式的任何索引模式。例如,动态索引器207可以表示反向索引或者使用b+树来生成每个索引。索引的类型可以取决于云资源指纹结果204的统计信息,例如,每个云资源的不同指纹的数量、对应于指纹的json对象查询的频率或其他统计信息的相似性等。b+树可以被实现用于在云资源指纹结果204中具有更多不同指纹的云资源,而平衡树可以用于具有较少不同指纹的云资源。索引可以基于对应的云资源的一阶谓词来生成。例如,如果一阶谓词分别针对云资源x和y指定了x.path1和y.path2之间的相等性,则索引可以基于对象路径x.path1和y.path2来生成。索引可以在由云指纹数据库203处理云资源查询206中的查询时被动态地更新和维持,并且索引可以与图
2中描绘的其他操作并行地被维持。
42.搜索引擎209接收由动态索引器207生成的被索引的云资源指纹210,并且使用所生成的索引来应用与云资源联接规则208中的一阶谓词相对应的成对联接规则。例如,如果一阶谓词指定了云资源x中的x.path1等于云资源y中的y.path2,则搜索引擎209可以在被索引的云资源指纹210中搜索指纹,其中沿着云资源x中的x.path1的指纹与沿着云资源y中的y.path2的指纹匹配(该索引可以被构造成用于恰好这样的查找操作)。搜索引擎209将成对云资源联接集212传送给成对联接合并器211,该成对云资源联接集212包括满足被表达为一阶谓词的成对联接规则的json对象对。
43.成对联接合并器211合并成对云资源联接集212,以生成n-wise云资源联接结果214。成对联接合并器211在云资源联接规则208中表示的每个数据库中针对指纹的元组(tuple)进行搜索,使得元组中的一对指纹满足每一个对应的一阶谓词(即,该对指纹存在于针对每一个成对云资源联接集212的元组中)。成对联接合并器211可以固定成对云资源联接集212之一中的一对指纹,可以针对另一对指纹来扫描成对云资源联接集212中的第二个资源联接集,使得三个所得到的指纹同时满足相应云资源的所有联接规则,等等。该操作可以使用用于多个联接集的标准库/算法来优化。在合并之后,云资源优化联接过滤器241可以针对被存储在云资源上的与n-wise云资源联接结果214中的指纹相对应的对象来查询云资源。成对联接合并器211将所得到的n-wise云资源联接结果214(其中n是在所得到的联接集中存在的云资源的数量)传送给计算设备213,作为针对云资源联接查询240的返回。成对联接合并器211可以附加地或替代地将与对云资源的查询(该查询针对n-wise云资源联接结果214中指示的对象)相对应的查询结果传送给计算设备213。
44.图3是针对云资源联接查询的旧式联接和优化联接的计算时间与叉积大小的图表。叉积大小表示云资源联接查询中跨每个云资源的json文件中的项/值对的数量的乘积。例如,跨具有相应大小20、100和50的云资源x、y和z的云资源联接查询的叉积大小是20x100x50=100000。叉积表示使用旧式联接的搜索空间。如图表300中所看到的,本文中呈现的在首先将json规则应用于云资源之后使用动态索引的优化联接在25000的叉积大小之后胜过(outperform)旧式联接。相反地,在不首先应用json规则的情况下在整个叉积空间上执行蛮力搜索的旧式联接由于动态索引而具有较小的开销,并且因此在较低的叉积大小处胜过基于动态索引的联接,但是随着叉积大小增加而遭受影响(suffer)。阈值叉积大小25000是任意的,并且取决于旧式联接和优化联接的实现方式、云资源联接查询中的文件格式类型等,并且应当基于每个联接的经验性能来确定。
45.为了与较早的(一个或多个)图的一致性,参考联接查询解析器、信息检索系统和优化联接过滤器来描述示例操作。针对程序代码而选择的名称不是对权利要求的限制。程序的结构和组织可能由于平台、程序员/架构师偏好、编程语言等而变化。另外,代码单元(程序、模块、方法、函数等)的名称可能因相同原因而变化,并且可以是任意的。
46.图4是用于评估云资源联接查询的示例操作的流程图。在框401处,联接查询解析器在云资源联接查询中将json规则与联接规则分离。联接规则包括关于云资源对中的对象的一阶谓词。json规则包括用于查询包括json文件的云资源的规则。尽管被描述为json规则,但是这些规则可以是针对驻留在云资源上的任何文件格式的规则。
47.在框402处,优化联接过滤器确定联接规则的叉积大小是否高于优化阈值叉积大
小。叉积大小是每个云资源上的文件中的项-值对的数量的乘积,其跨云资源而倍增。这对应于蛮力联接算法的搜索空间的数量级(order of magnitude)。优化阈值被选择为如下叉积大小:在该叉积大小处,在框403、405、407、409、411、413和415处描绘的优化联接过滤算法胜过旧式(即,蛮力)联接过滤算法。该优化阈值可以根据经验来确定,并且可以取决于被查询的云资源和每个算法的实现方式。例如,优化阈值可以通过对具有变化的叉积大小和跨变化的云资源的相同云资源联接查询运行优化联接和旧式联接来确定。因此,优化阈值是如下叉积大小:在该叉积大小处,优化联接在跨针对该叉积大小的云资源联接查询的平均计算时间方面胜过旧式联接。如果叉积大小高于优化阈值,则操作前进至框403。否则,操作跳过至框417。
48.在框403处,信息检索系统开始迭代通过在云资源联接查询中被分离的json规则。在框405和407处描绘了在每个迭代处的操作。
49.在框405处,信息检索系统利用具有带有一阶逻辑的上下文无关的第一语法的json查询解析器来评估当前json规则,以生成云资源指纹查询。json查询解析器可以由编译器-编译器使用上下文无关的语法作为输入来生成。信息检索系统可以将从json查询解析器得到的json查询转换成特定于云指纹数据库的格式(例如,基于云指纹数据库的索引模式)。
50.在框407处,信息检索系统查询云指纹数据库,以检索对应于当前json查询的云资源指纹结果。该查询指示json查询中指示的对象的特性,诸如对应于json查询中的对象的路径。该查询可以基于云指纹数据库中使用的索引的类型被格式化。云指纹数据库可以被索引,使得它可以基于查询来高效地检索云资源指纹结果(例如,通过使用用于云指纹的json文件路径)。
51.在框409处,信息检索系统确定云资源查询中是否存在附加的json规则。如果存在附加的json规则,则操作返回至框403。否则,操作前进至框411。
52.在框411处,优化联接过滤器解析来自云资源联接查询的联接规则,以生成用于云资源对的一阶谓词。举例来说,联接规则可以具有如下形式:
53.filter x.path1 equal y.path2
54.并且所得到的一阶谓词可以具有如下形式:
55.fopcequals(x.path1,y.path2)
56.在这两个实例中,联接操作对应于联接具有相等的路径1(在云资源x中)和路径2(在云资源y中)的指纹(如“fopcequals”、即一阶谓词equals句法所指示的)。
57.在框413处,优化联接过滤器根据一阶谓词来评估云资源json查询的结果,以生成成对联接集。在图5中更详细地描述了在框413处的操作。
58.在框415处,优化联接过滤器合并成对联接集。优化联接过滤器确定云资源指纹结果中的指纹的元组,使得与成对联接集中的云资源对相对应的元组中的每个指纹对存在于该对集中。可以实现用于合并联接集的标准搜索技术(例如,合并结构语言查询(sql)内联接操作)。
59.如果确定了联接规则的叉积大小不高于优化阈值叉积大小,则在框417处,优化联接过滤器将旧式联接应用于云资源联接查询。旧式联接可以是对照云资源联接查询中的联接规则对存在于云资源联接查询中的云资源的叉积的蛮力搜索。也可以使用先前原生实现
的联接操作。
60.图5是用于根据一阶谓词来评估云资源json查询的结果以生成成对联接集的示例操作的流程图。在框503处,优化联接过滤器开始迭代通过要被应用于云资源的一阶谓词。每个迭代处的操作发生在框505和507处。
61.在框505处,优化联接过滤器针对对应于当前一阶谓词的云资源对生成动态索引。动态索引可以基于当前一阶谓词来生成(例如,通过当前一阶谓词中指示的文件路径)。举例来说,动态索引可以是反向索引,该反向索引包括云资源中的键/值对与对应的文档标识符之间的映射。对于分别具有路径x.vpcid和y.resourceid的两个云资源x和y,其中x.vpcid取集合{a,b}中的值。x的动态索引可以将a和b映射到文档标识符的集合,如下:
62.a-》{1,20,111,...}
63.b-》.{15,18,19}
64.y中的键/值对以类似的方式被映射,使得y中的具有值“a”的任何键/值对将具有列表{1,20,111,...}中的文档标识符,并且y中的具有值“b”的任何键/值对将具有列表{15,18,19}中的文档标识符。可以在计算联接集以及在更新云资源的指纹时维持和更新动态索引。
65.在框507处,优化联接过滤器使用动态索引来搜索对应云资源的云资源指纹结果,以生成成对云资源联接结果。优化联接过滤器可以解析当前一阶谓词以标识针对对应云资源的json查询的相应结果中的指纹,从而确定满足一阶谓词的指纹对,以添加到针对当前一阶谓词的成对联接结果。在上述示例中,联接过滤器$x.vpcid equals$y.resourceid的计算包括:针对列表{1,20,111,...}中的文档标识符来搜索y,并且确定y中的对应json文件路径是否使得y.resourceid=

a’。计算联接过滤器附加地包括:针对列表{15,18,19}中的文档标识符来搜索y,并且确定y中的对应json文件路径是否使得y.resourceid=

b’。来自联接过滤器的结果是针对在集合{a,b}中具有匹配的键/值对的json文件路径的在x和y中的相应文件路径。
66.在框509处,优化联接过滤器确定云资源查询中是否存在附加的json规则。如果存在附加的json规则,则操作返回至框503。否则,图5中的操作完成。
67.流程图被提供是为了帮助理解所述图示,而不是用来限制权利要求的范围。流程图描绘了可以在权利要求的范围内变化的示例操作。可以执行附加的操作;可以执行更少的操作;可以并行地执行操作;并且可以以不同的次序执行操作。例如,可以并行或同时地执行框403、405、407和409中描绘的操作。关于图4,取而代之,将旧式联接操作应用于云资源联接查询不是必要的。将理解的是,可以通过程序代码来实现流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合。程序代码可以被提供给通用计算机、专用计算机或其他可编程机器或装置的处理器。
68.如将领会的,本公开的各方面可以体现为系统、方法、或存储在一个或多个机器可读介质中的程序代码/指令。因此,各方面可以采取硬件、软件(包括固件、常驻软件、微代码等)或软件和硬件方面的组合的形式,这些方面在本文中可以统称为“电路”、“模块”或“系统”。可以根据平台(操作系统和/或硬件)、应用生态系统、接口、程序员偏好、编程语言、管理员偏好等中的任何一个来不同地组织示例图示中作为个体模块/单元呈现的功能性。
69.可以利用一个或多个机器可读介质的任何组合。机器可读介质可以是机器可读信
号介质或机器可读存储介质。机器可读存储介质可以是例如但不限于采用电子、磁性、光学、电磁、红外或半导体技术中的任何一种或其组合来存储程序代码的系统、装置或设备。机器可读存储介质的更具体的示例(非详尽列表)将包括以下各项:便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprop或闪速存储器)、便携式压缩盘只读存储器(cd-rom)、光学存储设备、磁性存储设备或前述各项的任何合适的组合。在本文档的上下文中,机器可读存储介质可以是可包含或存储程序以供指令执行系统、装置或设备使用或与之结合使用的任何有形介质。机器可读存储介质不是机器可读信号介质。
70.机器可读信号介质可以包括其中体现有机器可读程序代码的传播数据信号,例如,在基带中或作为载波的一部分。这种传播信号可以采取多种形式中的任何形式,包括但不限于电磁、光学或其任何合适的组合。机器可读信号介质可以是如下任何机器可读介质:其不是计算机可读存储介质,并且可以传送、传播或传输程序以供指令执行系统、装置或设备使用或与之结合使用。
71.机器可读介质上体现的程序代码可以使用任何适当的介质来传输,该介质包括但不限于无线、有线、光纤线缆、rf等、或前述各项的任何合适的组合。
72.程序代码/指令还可以存储在可引导机器以特定方式运行的机器可读介质中,使得存储在机器可读介质中的指令产生制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的指令。
73.图6描绘了具有云资源联接查询解析器的示例计算机系统。该计算机系统包括处理器601(可能包括多个处理器、多个核、多个节点和/或实现多线程等)。该计算机系统包括存储器607。存储器607可以是系统存储器,或者是机器可读介质的上面已经描述的可能实现中的任何一个或多个。该计算机系统还包括总线603和网络接口605。该系统还包括云资源联接查询解析器611。云资源联接查询解析器611可以解析云资源联接查询以隔离联接规则和json规则,解析json规则以生成对云指纹数据库的查询,从云指纹数据库中检索对应的查询结果,并且使用动态索引/搜索来联接来自云指纹数据库的查询结果。先前描述的功能性中的任何一个都可以部分地(或全部地)在硬件中和/或处理器601上实现。例如,该功能性可以用专用集成电路、在处理器601中实现的逻辑中、在外围设备或卡上的协处理器等中实现。此外,实现可以包括更少的组件或图6中未图示的附加组件(例如,视频卡、音频卡、附加网络接口、外围设备等)。处理器601和网络接口605耦合到总线603。尽管被图示为耦合到总线603,但是存储器607可以耦合到处理器601。
74.虽然关于各种实现方式和开发(exploitation)描述了本公开的各方面,但是将理解的是,这些方面是说明性的,并且权利要求的范围不限于它们。一般而言,如本文中所描述的用于解析云资源查询以隔离联接规则和json规则、然后随后在联接规则之前将json规则应用于云资源以优化联接操作的技术可以利用与任何一个或多个硬件系统一致的设施来实现。许多变型、修改、添加和改进是可能的。
75.可以针对本文中被描述为单个实例的组件、操作或结构提供多个实例。最后,各种组件、操作和数据存储之间的边界在某种程度上是任意的,并且在具体说明性配置的上下文中说明了特定操作。功能性的其他分配是可设想的并且可以落入本公开的范围内。一般而言,在示例配置中作为分离的组件而呈现的结构和功能性可以被实现为组合结构或组
件。类似地,呈现为单个组件的结构和功能性可以被实现为分离的组件。这些和其他变型、修改、添加和改进可以落入本公开的范围内。
76.术语
77.为了效率和易于解释,本描述使用了与云技术相关的简写术语。当提及“云资源”时,本描述指的是云服务提供商的资源。例如,云资源可以涵盖云服务提供商的服务器、虚拟机和存储设备。更一般地说,对于客户可访问的云服务提供商资源是由云服务提供商实体拥有/管理的可经由网络连接访问的资源。通常,访问是根据由云服务提供商提供的应用编程接口或软件开发工具包进行的。
78.本文中使用的“指纹”指代存储在云资源上的一个或多个键/值对的表示。指纹可以是例如存储在云资源上的json文件中的对象。指纹的范围关于大小/范围以及表示的选择而变化。指纹被用作用于比云资源上的个体键/值对更高效的存储的代理,并且允许在较小的搜索空间上进行更高效的联接操作。
79.在具有连词“和”的列表之前使用短语
“……
中的至少一个”不应当被视为排他性列表,并且不应当被解释为具有来自每个类别的一个项目的类别列表,除非另行具体声明。记载了“a、b和c中的至少一个”的条款(clause)可能被所列项目中的仅一个、所列项目中的多个、以及该列表中的项目中的一个或多个和未列出的另一个项目所违反(infringe)。
80.示例实施例
81.示例实施例包括以下内容。
82.实施例1:一种方法,包括:解析云资源联接查询以提取第一多个联接规则和第一多个云资源查询,其中第一多个联接规则包括用于第一多个云资源中的云资源对的第一多个一阶谓词,针对与第一多个云资源查询相关联的第一多个云资源的第一多个指纹来查询云指纹数据库,根据第一多个联接规则中的第一多个一阶谓词来联接第一多个指纹中的指纹以生成第一多个成对联接结果,以及合并第一多个成对联接结果。
83.实施例2:根据实施例1所述的方法,其中根据所述一阶谓词来联接第一多个指纹中的指纹包括:针对对应于第一多个一阶谓词的每个云资源对生成第一多个动态索引,以及针对满足第一多个一阶谓词中的至少一个的结果,使用所述多个动态索引来搜索对应于第一多个一阶谓词的每个云资源对。
84.实施例3:根据实施例1所述的方法,其中第一多个指纹包括对存储在第一多个云资源上的一个或多个对象的查询的特性。
85.实施例4:根据实施例3所述的方法,其中对存储在第一多个云资源上的一个或多个对象的查询的特性包括查询所述一个或多个对象的频率。
86.实施例5:根据实施例3所述的方法,进一步包括基于对第一多个云资源的最近查询来更新第一多个指纹。
87.实施例6:根据实施例1所述的方法,进一步包括针对在所合并的第一多个成对联接结果中指示的对象来查询第一多个云资源。
88.实施例7:根据实施例6所述的方法,进一步包括将所合并的第一多个成对联接结果和查询第一多个云资源的结果中的至少一个传送给通信地耦合到用户接口的计算设备。
89.实施例8:根据实施例1所述的方法,其中解析所述云资源联接查询至少部分地基于所述云资源联接查询的叉积大小高于阈值叉积大小的确定。
90.实施例9:一个或多个非暂时性机器可读介质,包括用于如下操作的程序代码:解析云资源联接查询以提取第一多个联接规则和第一多个云资源查询,其中第一多个联接规则包括用于第一多个云资源中的云资源对的第一多个一阶谓词,针对与第一多个云资源查询相关联的第一多个云资源的第一多个指纹来查询云指纹数据库,根据第一多个联接规则中的第一多个一阶谓词来联接第一多个指纹中的指纹以生成第一多个成对联接结果,以及合并第一多个成对联接结果。
91.实施例10:根据实施例9所述的非暂时性机器可读介质,其中用于根据所述一阶谓词来联接第一多个指纹中的指纹的程序代码包括用于如下操作的程序代码:针对对应于第一多个一阶谓词的每个云资源对生成第一多个动态索引,以及针对满足第一多个一阶谓词中的至少一个的结果,使用所述多个动态索引来搜索对应于第一多个一阶谓词的每个云资源对。
92.实施例11:根据实施例9所述的非暂时性机器可读介质,其中第一多个指纹包括对存储在第一多个云资源上的一个或多个对象的查询的特性。
93.实施例12:根据实施例11所述的非暂时性机器可读介质,其中对存储在第一多个云资源上的一个或多个对象的查询的特性包括查询所述一个或多个对象的频率。
94.实施例13:根据实施例11所述的非暂时性机器可读介质,进一步包括用于基于对第一多个云资源的最近查询来更新第一多个指纹的程序代码。
95.实施例14:根据实施例9所述的非暂时性机器可读介质,进一步包括用于针对在所合并的第一多个成对联接结果中指示的对象来查询第一多个云资源的程序代码。
96.实施例15:根据实施例14所述的非暂时性机器可读介质,进一步包括用于将所合并的第一多个成对联接结果和查询第一多个云资源的结果中的至少一个传送给通信地耦合到用户接口的计算设备的程序代码。
97.实施例16:根据实施例9所述的非暂时性机器可读介质,其中用于解析所述云资源联接查询的程序代码至少部分地基于所述云资源联接查询的叉积大小高于阈值叉积大小的确定。
98.实施例17:一种装置,包括处理器以及具有程序代码的机器可读介质,所述程序代码可由所述处理器执行以使得所述装置:解析云资源联接查询以提取第一多个联接规则和第一多个云资源查询,其中第一多个联接规则包括用于第一多个云资源中的云资源对的第一多个一阶谓词,针对与第一多个云资源查询相关联的第一多个云资源的第一多个指纹来查询云指纹数据库,根据第一多个联接规则中的第一多个一阶谓词来联接第一多个指纹中的指纹以生成第一多个成对联接结果,以及合并第一多个成对联接结果。
99.实施例18:根据实施例17所述的装置,其中可由所述处理器执行以使得所述装置根据所述一阶谓词来联接第一多个指纹中的指纹的程序代码包括如下程序代码,所述程序代码可由所述处理器执行以使得所述装置:针对对应于第一多个一阶谓词的每个云资源对生成第一多个动态索引,以及针对满足第一多个一阶谓词中的至少一个的结果,使用所述多个动态索引来搜索对应于第一多个一阶谓词的每个云资源对。
100.实施例19:根据实施例17所述的装置,其中第一多个指纹包括对存储在第一多个云资源上的一个或多个对象的查询的特性。
101.实施例20:根据实施例19所述的装置,其中对存储在第一多个云资源上的一个或
多个对象的查询的特性包括查询所述一个或多个对象的频率。

技术特征:
1.一种方法,包括:解析云资源联接查询以提取第一多个联接规则和第一多个云资源查询,其中第一多个联接规则包括用于第一多个云资源中的云资源对的第一多个一阶谓词;针对与第一多个云资源查询相关联的第一多个云资源的第一多个指纹来查询云指纹数据库;根据第一多个联接规则中的第一多个一阶谓词来联接第一多个指纹中的指纹以生成第一多个成对联接结果;以及合并第一多个成对联接结果。2.根据权利要求1所述的方法,其中根据所述一阶谓词来联接第一多个指纹中的指纹包括:针对对应于第一多个一阶谓词的每个云资源对生成第一多个动态索引;以及针对满足第一多个一阶谓词中的至少一个的结果,使用所述多个动态索引来搜索对应于第一多个一阶谓词的每个云资源对。3.根据权利要求1所述的方法,其中第一多个指纹包括对存储在第一多个云资源上的一个或多个对象的查询的特性。4.根据权利要求3所述的方法,其中对存储在第一多个云资源上的一个或多个对象的查询的特性包括查询所述一个或多个对象的频率。5.根据权利要求3所述的方法,进一步包括基于对第一多个云资源的最近查询来更新第一多个指纹。6.根据权利要求1所述的方法,进一步包括针对在所合并的第一多个成对联接结果中指示的对象来查询第一多个云资源。7.根据权利要求6所述的方法,进一步包括将所合并的第一多个成对联接结果和查询第一多个云资源的结果中的至少一个传送给通信地耦合到用户接口的计算设备。8.根据权利要求1所述的方法,其中解析所述云资源联接查询至少部分地基于所述云资源联接查询的叉积大小高于阈值叉积大小的确定。9.一个或多个非暂时性机器可读介质,包括用于实行根据权利要求1-8中任一项所述的方法的程序代码。10.一种装置,包括处理器以及具有程序代码的机器可读介质,所述程序代码可由所述处理器执行以使得所述装置实行根据权利要求1-8中任一项所述的方法。

技术总结
解析跨云资源的联接操作的云资源联接查询,以提取联接规则以及对云资源联接查询中的每个云资源的查询。基于联接规则中指示的云资源对,动态地索引来自个体云查询的结果。搜索引擎使用所述动态索引应用联接规则中的一阶谓词来生成对应于所述查询的成对联接结果。云资源联接查询的结果包括合并之后的成对联接结果。结果。结果。


技术研发人员:C
受保护的技术使用者:帕洛阿尔托网络公司
技术研发日:2022.01.20
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐