CN109643312B - 托管查询服务 - Google Patents

托管查询服务 Download PDF

Info

Publication number
CN109643312B
CN109643312B CN201780053646.8A CN201780053646A CN109643312B CN 109643312 B CN109643312 B CN 109643312B CN 201780053646 A CN201780053646 A CN 201780053646A CN 109643312 B CN109643312 B CN 109643312B
Authority
CN
China
Prior art keywords
query
data
service
computing
computing resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780053646.8A
Other languages
English (en)
Other versions
CN109643312A (zh
Inventor
B·R·卡拉图鲁
方剑
武星
岳媛媛
P·B·葛文德
T·M·霍佳恩
J·D·丹顿
L·纳塔丽
R·S·帕塔科
A·R·辛哈
S·V·马鲁
A·坦加姆彦
蒋玉峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN109643312A publication Critical patent/CN109643312A/zh
Application granted granted Critical
Publication of CN109643312B publication Critical patent/CN109643312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24549Run-time optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Paper (AREA)
  • Orthopedics, Nursing, And Contraception (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

可以由托管查询服务接收和执行查询。可以接收指向单独地存储在远程数据存储中的数据集的查询。可以从被配置成执行查询的计算资源池供应计算资源以执行所述查询。可以将所述查询路由到所述供应的计算资源以执行所述查询。可以从所述计算资源获得结果并且提供给所述查询的提交者。

Description

托管查询服务
背景技术
用于查询大数据集的计算系统可能极难实施和维护。在很多情形下,例如,有必要首先创建和配置将要用于查询操作的基础设施(例如,服务器计算机、存储装置、联网装置等)。随后可能有必要执行提取、转换和加载(“ETL”)操作以从源系统获得数据并且将数据放在数据存储区中。安装、配置和维护执行查询操作的数据库管理系统(“DBMS”)也可能是复杂且耗时的。另外,很多DBMS并不适合以高性能方式查询极大的数据集。
在一些情形下,计算集群可以用来以高性能方式查询大数据集。例如,计算集群可以具有很多节点,每个节点执行用于对大数据集执行分布式查询的分布式查询框架。然而,此类计算集群和分布式查询框架也难以实施、配置和维护。另外,诸如这些的计算集群的不正确配置和/或使用可能会导致对处理器、存储设备、网络和可能地其他类型的计算资源的非最佳利用。
关于这些和其他考虑呈现本文中的公开。
附图说明
图1示出根据一些实施例的用于多个数据处理环境的集中式数据存储的逻辑框图。
图2是示出根据一些实施例的供应托管查询服务的提供商网络的逻辑框图。
图3是示出根据一些实施例的动态地生成数据目录的数据目录服务的逻辑框图,所述数据目录提供结构数据以用于访问存储在集中式数据存储中的数据。
图4是示出根据一些实施例的客户端与托管查询服务之间的交互的图。
图5是根据一些实施例的查询的托管执行的顺序图。
图6是根据一些实施例的利用资源规划器的查询的托管执行的顺序图。
图7是示出根据一些实施例的作为托管查询执行的一部分的处理查询的集群的逻辑框图。
图8是示出根据一些实施例的资源管理服务与资源池之间的交互的逻辑框图。
图9是示出根据一些实施例的用于实施托管查询执行的各种方法和技术的高级流程图。
图10是示出根据一些实施例的用于从计算资源池中选择计算资源来执行查询的各种方法和技术的高级流程图。
图11是示出根据一些实施例的用于相对于查询执行限制来监测查询的执行的各种方法和技术的高级流程图。
图12是示出根据一些实施例的用于存储远程数据存储中所存储的数据的模式的各种方法和技术的高级流程图。
图13是示出根据一些实施例的说明性操作环境的逻辑框图,所述说明性操作环境包括可以被配置成实施本文中所述的功能的方面的服务提供商网络。
图14是示出根据一些实施例的可以用于实施本文中公开的技术的方面的数据中心的配置的逻辑框图。
图15示出根据一些实施例的被配置成实施本文中描述的各种方法、技术和系统的示例系统。
虽然本文通过若干实施例和说明性附图以示例方式描述实施例,但本领域技术人员将认识到,实施例并不限于所述实施例或附图。应理解,附图以及其详细描述并不意图将实施例限于所公开的特定形式,而是相反,本发明将涵盖落在如所附权利要求限定的精神和范围内的所有修改、等效物和替代方案。本文中使用的标题只是为了编制目的,而并不意图用于限制说明书或权利要求的范围。如贯穿本申请所使用,字词“可以”是在许可意义上使用(即,表示具有潜在可能),而非命令意义(即,表示必须)。类似地,字词“包括/包含”是指包括但并不限于。
还将理解,尽管本文中可以使用术语“第一”、“第二”等来描述各种元件,但这些元件不应被这些术语限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不脱离本发明范围的情况下,第一接触件可以被称为第二接触件,并且类似地,第二接触件可以被称为第一接触件。第一接触件和第二接触件两者都是接触件,但它们不是同一接触件。
具体实施方式
本文中描述托管查询执行的各种实施例。通过实施这些技术,在各种实施例中,可以提供允许以高性能方式查询甚至大数据集的联网托管查询服务。另外,所公开的技术的一些实施例允许查询大数据集而无需管理诸如计算集群等基础设置、无需将待查询的数据加载到数据库或计算集群并且无需执行任何ETL工作。通过这种方式,可以以更有效的方式利用处理器、存储设备、网络带宽以及其他类型的计算资源。除了本文中明确地指明的那些之外的技术益处可以通过所公开的技术的实施来实现。
在一个实施例中,在服务提供商网络中执行托管查询服务。在一个实施例中,托管查询服务可以提供查询数据而无需管理基础设施且无需执行ETL操作的功能。例如,在一个实施例中,托管查询服务可以利用计算集群以便相对于远程数据来执行查询。在一个实施例中,诸如计算集群等计算资源可以实例化并且被配置成在托管查询服务处接收查询请求之前先处理查询。在一个实施例中,可供托管查询服务使用的经过实例化且配置的计算资源随后可以添加到计算资源池。
为了利用托管查询服务,在一个实施例中,用户可以将待查询的数据复制到由网络存储服务提供的位置。在一些实施例中,所述数据可以采用很多类型的格式进行存储。在各种实施例中,还提供用户接口(“UI”)以用于定义一个或多个表定义或者数据的其他模式信息。例如,在一个实施例中,表定义或其他模式可以由网络数据目录服务存储。在各种实施例中,数据目录服务可以使表定义可供托管查询服务所利用的计算集群使用。
在一些实施例中,也可以提供查询UI以从用户接收查询数据的请求。当接收到查询时,在一些实施例中,可以从计算资源池提供计算资源。在一些实施例中,可以随机地从所述池中选择计算资源或者基于一些因素进行选择,所述因素包括,但不限于,由同一请求者提交的先前查询、期望的查询性能、用户偏好以及其他因数。在一些实施例中,所选择的计算资源可以从集群池中移除并且分配到查询(或查询的提交者)。在一个实施例中,所述查询可以路由到所选择的计算资源以进行处理。在一些实施例中,查询的结果可以返回到查询UI并且呈现给用户或利用存储服务进行存储。
在至少一些实施例中,来自同一提交者的后续查询也可以路由到所选择的计算资源。如果确定所选择的计算资源不活动,那么在一个实施例中,所选择的计算集群可以被“擦除”,诸如通过从计算集群中的主机计算机所利用的存储器或盘中移除与查询的提交者相关联的数据。在一个实施例中,计算集群可以返回到活跃集群池(warm cluster pool)。
在各种实施例中,可以监测集群池中的计算集群的查询性能,并且可以调整分配到集群池的计算集群的数量和每个计算集群的大小(即,每个计算集群中的主机计算机的数量)。
图1示出根据一些实施例的托管查询执行。如上文所述,在各种实施例中,可以执行托管查询执行(例如,作为托管查询服务的一部分实施)以便客户端、用户或提交查询的其他实体不知道执行查询的方式。通过这种方式,在一些实施例中,托管查询执行可以提供公用接口,以用于访问和查询以不同格式存储的很多不同种类的数据。例如,如图1所示,在一个实施例中,托管查询执行110可以充当诸如查询102等查询的网络端点和接口,并且提供所生成的查询结果104。在一个实施例中,托管查询服务110的客户端无法与诸如供应的计算资源等处理资源直接地交互。多个不同客户端可以向同一网络端点提交查询,但所述查询可以分派到不同的计算资源并在其上执行。在各种实施例中,可以从客户端中隐藏负载平衡、热量管理、扩展其他查询执行考虑。
在一个实施例中,托管查询执行110可以从资源池130供应计算资源112。在一些实施例中,资源池130可以容纳被预先配置成执行不同类型的查询(或相同查询)的多个计算资源132。一旦获得计算资源,托管查询执行110便可以将查询114路由到供应的计算资源140。在一些实施例中,还可以将模式信息、查询执行参数和其他信息提供给供应的计算资源。在一些实施例中,供应的计算资源可以访问存储在一个或多个远程数据存储120中的数据122。在一些实施例中,不同数据可以采用不同格式存储且存储在不同数据存储中,以便可以在分布式和/或不同格式的数据上执行诸如联接操作等查询操作。随后可以将查询结果116提供到托管查询执行116(例如,经由数据存储或作为流式传输结果)。在各种实施例中,托管查询执行110可以将结果104提供回到客户端或其他请求者。
请注意,对托管查询执行的先前描述是逻辑说明并且因此不应被解释为限制数据存储、资源池计算资源或托管查询执行的实现方式。
本说明书开始于对实施托管查询服务的提供商网络的总体描述。随后论述托管查询服务、数据目录服务和资源管理器服务的各种示例,包括不同部件/模块,或者可以用作实施服务的一部分的部件/模块的布置。随后论述用于实施托管查询执行的许多不同方法和技术,其中一些在附图流程图中示出。最后,提供对可以在其上实施各种部件、模块、系统、装置和/或节点的示例计算系统的描述。贯穿本说明书提供各种示例。
图2是示出根据一些实施例的供应托管查询服务的提供商网络的逻辑框图。在一些实施例中,提供商网络200可以是专用或封闭系统,或者可以由诸如公司或公共部门组织等实体设立,以将可经由互联网和/或掐网络访问的一个或多个服务(诸如,各种类型的基于云的存储设备)提供到客户端250。提供商网络200可以在单个位置实施,或者可以包括许多数据中心,所述数据中心容纳实施和分配由提供商网络200供应的基础设施和存储服务所需的各种资源池,诸如物理和/或虚拟化计算机服务器、存储装置、联网设备等等的集合(例如,图15、图16和下文关于图17描述的计算系统2000)。在一些实施例中,提供商网络200可以实施各种计算资源或服务,诸如虚拟计算服务210、数据处理服务220(例如,关系型或非关系型(NoSQL)数据库查询引擎、映射化简处理、数据流处理,和/或其他大规模数据处理技术)、数据存储服务230(例如,对象存储服务、基于块的存储服务,或可以存储不同类型的数据以便集中式访问的数据存储服务)、其他服务240(任何其他类型的基于网络的服务(其可以包括未示出的各种其他类型的存储、处理、分析、通信、事件处置、可视化和安全服务)、托管查询服务270、数据目录服务280以及资源管理服务290。
在各种实施例中,图2所示的部件可以在计算机软件内直接实施,作为可由计算机硬件(例如,微处理器或计算机系统)直接或间接地执行的指令,或者使用这些技术的组合来实施。例如,图2的部件可以由包括多个计算节点(或简称节点)的系统实施,每个节点可以类似于图17中示出且下文描述的计算机系统实施例。在各种实施例中,给定的系统或服务部件(例如,数据存储服务230的部件)的功能可以由特定节点实施或者可以分布在若干个节点上。在一些实施例中,给定的节点可以实施不止一个服务系统部件(例如,不止一个数据存储部件)的功能。
在一些实施例中,虚拟计算服务210可以由提供商网络200实施。虚拟计算服务210可以供应实例并且根据客户端250操作的各种配置。虚拟计算实例可以例如包括具有指定计算能力(其可以通过指示CPU的类型和数量、主存储器大小等等来指定)和指定软件堆栈(例如,操作系统的特定版本,其可以在管理程序之上运行)的一个或多个服务器。在不同实施例中,多个不同类型的计算装置可以单独地或组合地使用以实施计算实例和提供商网络200的,包括通用或专用计算机服务器、存储装置、网络装置等等。在一些实施例中,实例客户端250或其他任何其他用户可以被配置成(和/或授权)将网络流量引导到计算实例。
计算实例可以操作或实施多种不同的平台,诸如因公服务器实例、JavaTM虚拟机(JVM)、通用或专用操作系统、支持各种解译或编译的编程语言(诸如Ruby、Perl、Python、C、C++等等)的平台,或者适合于执行客户端202应用程序的高性能计算平台,而例如不需要客户端250访问实例。应用程序(或由计算实例操作/实施的其他软件)可以由客户端指定,诸如定制和/或现用软件。
在其他实施例中,计算实例基于预期正常运行时间比例而具有不同类型或配置。特定计算实例的正常运行时间比例可以被定义为实例被激活的时间量与实例被保留的总时间量之比。在一些实现方式中,正常运行时间比例也可以被定义为利用率。如果客户端预期在实例被保留的时间的相对较小部分内(例如,为期一年的保留的30%至35%)使用计算实例,那么客户端可以决定将所述实例保留为低正常运行时间比例实例,并且根据相关联的定价政策支付打折扣的每小时使用费。如果客户端预期具有需要实例在部分时间内工作的稳态工作负载,那么客户端可以保留高正常运行时间比例实例并且可能支付甚至更低的每小时使用费,但在一些实施例中,根据定价政策,不管使用的实际小时数如何,都可能收取保留的整个持续时间的每小时费用。在一些实施例中也可以支持具有对应定价政策的中间正常运行时间比例实例的选项,其中预付成本和按小时成本落在对应高正常运行时间比例与低正常运行时间比例成本之间。
计算实例配置还可以包括具有通用或具体目的的计算实例,诸如,用于计算密集型应用程序(例如,大业务量web应用程序、广告投放、成批处理、视频编码、分布式分析学、高能物理学、基因组分析和计算流体动力学)的计算工作负载、图形密集型工作负载(例如,游戏流、3D应用程序流、服务器侧图形工作负载、渲染、财务建模和工程设计)、存储器密集型工作负载(例如,高性能数据库、分布式存储器高速缓存、存储器中分析、基因组拼接和分析),以及存储优化工作负载(例如,数据仓库和集群文件系统)。计算实例的大小,诸如特定数量的虚拟CPU核心、存储器、高速缓存、存储设备,以及任何其他性能特性。计算实例的配置还可以包括它们在特定数据中心、可用区域、地理位置等中的位置以及(在保留的计算实例的情况下)保留期限长度。如下文关于图3论述,计算实例的不同配置可以实施为在由资源管理服务290管理的不同资源池中相关联的计算资源,以用于执行路由到所述资源的工作,诸如路由以用于托管查询服务270选择资源的查询。
数据处理服务220可以是各种类型的数据处理服务,以执行不同功能(例如,查询或其他处理引擎,以执行诸如异常检测、机器学习、数据查找或任何其他类型的数据处理操作等功能)。例如,在至少一些实施例中,数据处理服务230可以包括映射化简服务,所述映射化简服务创建在存储在数据存储服务240中的一者中的数据上实施映射化简功能的处理节点的集群。各种其他分布式处理基础架构和技术可以由数据处理服务230实施(例如,网格计算、分片、分布式散列等)。应注意,在一些实施例中,数据处理操作可以作为数据存储服务230的一部分实施(例如,查询引擎处理针对指定数据的请求)。数据存储服务230可以是数据目录服务220的客户端,以便获得用于相对于存储在数据存储服务230中的数据集来执行各种处理操作的结构信息,如用于托管查询服务270的池中的供应资源。
数据目录服务280可以提供目录服务,所述目录服务摄取、定位和识别数据和代表提供商网络200中的客户端的存储在数据存储服务230中的数据模式。例如,以非关系型格式存储的数据集可以连同基于对象的数据存储中的容器或组一起被识别,所述基于对象的数据存储存储所述数据集以及代表提供商网络200的同一客户或客户端的其他数据对象。在至少一些实施例中,数据目录服务280可以指导以一个数据格式摄取的数据转换成另一数据格式。例如,数据可以被摄取到数据存储服务230中,作为单个文件或半结构化数据集(例如,JavaScript对象标记(JSON))。数据目录服务280可以识别单个文件或半结构化数据集的数据格式、结构或任何其他模式信息。在至少一些实施例中,作为后台操作的一部分,以另一数据格式存储的数据可以转换成不同数据格式(例如,以发现数据类型、列类型、名称、字段的分隔符,和/或用于构建半结构化数据表的任何其他信息,以便创建数据集的结构化版本)。数据目录服务280随后可以使数据的模式信息可用于其他服务、计算装置或资源,诸如被配置成相对于数据来处理查询的计算资源或集群,如下文关于图3至图7论述。
数据存储服务230可以实施不同类型的数据存储以用于代表客户端250存储、访问和管理数据,作为使客户端250能够在云或网络计算环境中操作数据存储系统的基于网络的服务。例如,数据存储服务230可以包括用于存储、查询和更新数据的各种类型的数据库存储服务(关系型和非关系型两者)。此类服务可以是高度可调整且可扩展的企业级数据库系统。查询可以指向分布在多个物理资源上的数据存储服务230中的数据库,并且数据库系统可以根据需要而放大或缩小。在不同实施例中,数据库系统可以利用各种类型和/或组织的数据库模式有效地工作。在一些实施例中,客户端/订户可以采用多种方式提交查询,例如,经由SQL接口交互式地提交到数据库系统。在其他实施例中,外部应用程序和程序可以使用开放式数据库连接(ODBC)和/或Java数据库连接(JDBC)驱动器接口将查询提交到数据库系统。
在一些实施例中,一个数据存储服务230可以实施为集中式数据存储,以便其他数据存储服务可以访问存储在集中式数据存储中的数据以用于处理和或存储在其他数据存储服务内。可以提供对各种对象或文件数据存储的存储和访问,以用于放入、更新和得到各种类型、大小或集合的数据对象或文件。此类数据存储服务230可以经由可编程接口(例如,API)或图形用户接口来访问。集中式数据存储可以提供用于将数据维持为数据量的一部分的基于虚拟块的存储设备,所述基于虚拟块的存储设备可以与基于局部块的存储装置(例如,硬盘驱动器、固态驱动器等)类似地安装或访问,并且可以利用诸如互联网小型计算机接口(iSCSI)等基于块的数据存储协议或接口来访问。
在至少一些实施例中,数据存储服务230中的一者可以是利用被实施为另一数据存储服务230的一部分的集中式数据存储的数据仓库服务。数据仓库服务可以根据它们的各种需要而向客户端供应多种不同的数据管理服务。在一些情况下,客户端可能希望存储和维护大量的数据,诸如销售记录营销、管理报告、业务流程管理、预算预测、财务报告、网站分析或者很多其他类型或种类的数据。客户端对数据的使用也可以影响用来存储数据的数据管理系统的配置。例如,对于某些类型的数据分析和其他操作,诸如从每一行内的列的小数字中聚集大数据集的那些操作,柱状数据库表可以提供更有效的性能。换句话说,来自数据库表的列信息可以存储到盘上的数据块中,而不是将列的整个行存储在每个数据库中(如在传统数据库方案中)。
如下文关于图3至图7更详细地论述,在各种实施例中,托管查询服务270可以代表客户端管理查询的执行,以便客户端可以在存储在一个或多个位置(例如,在不同数据存储服务中,诸如对象存储和数据库服务)的数据上执行查询,而无需将资源配置成执行所述查询。资源管理服务290可以管理计算资源池并将其提供用于比如托管查询服务270的不同服务,以便代表不同服务来执行工作,如上文关于图1论述。
一般来说,客户端250可以涵盖可配置成经由网络260将基于网络的请求提交到提供商网络200的任何类型的客户端,所述请求包括针对存储服务的请求(例如,创建、读取、写入、获得或修改数据存储服务240中的数据等的请求)或针对托管查询服务270的请求(例如,查询存储在数据存储服务230中的数据集中的数据的请求)。例如,给定的客户端250可以包括合适版本的web浏览器,或者可以包括插件模块或可作为由web浏览器提供的执行环境的扩展执行或在执行环境内执行的其他类型的代码模块。或者,客户端250可以涵盖应用程序,诸如数据库应用程序(或其用户界面)、媒体应用程序、办公应用程序,或者可以利用数据存储服务240中的存储资源来存储和/或访问数据以实施各种应用程序的任何其他应用程序。在一些实施例中,这样的应用程序可以包括足够的协议支持(例如,针对合适版本的超文本传输协议(HTTP)),以用于生成和处理基于网络的服务请求,而不必针对所有类型的基于网络的数据实施完整浏览器支持。也就是,客户端250可以是可以与提供商网络200直接交互的应用程序。在一些实施例中,客户端250可以根据以下项来生成基于网络的服务请求:表述性状态转移(REST)型基于网络的服务架构、基于文件或消息的基于网络的服务架构,或另一合适的基于网络的服务架构。
在一些实施例中,客户端250可以采用对其他应用程序透明的方式来向这些应用程序提供对提供商网络200的访问。例如,客户端250可以与操作系统或文件系统结合,以提供在数据存储服务240中的一者(例如,基于块的存储服务)上的存储。然而,所述操作系统或文件系统可以代表应用程序的不同存储接口,诸如文件、目录和/或文件夹的传统文件系统层级结构。在这样的实施例中,应用程序可能不需要修改便能利用存储系统服务模型。相反,连接到数据存储服务240的细节可以由客户端250与操作系统或文件系统代表在操作系统环境内执行的应用程序来协调。
客户端250可以经由网络260将基于网络的服务请求(例如,指向数据存储服务240中的数据的访问请求、作为数据处理服务230的一部分执行的操作、任务或工作的请求,或者与数据目录服务220交互的请求)传送到提供商网络200并且从中接收响应。在各种实施例中,网络260可以涵盖在客户端250与提供商网络200之间建立基于网络的通信所必要的联网硬件和协议的任何合适组合。例如,网络260可以通常涵盖共同地实施互联网的各种电信网络和服务提供商。通信260还可以包括专用网络,诸如局域网(LAN)或广域网(WAN),以及公用或专用无线网。例如,给定的客户端250和提供商网络200两者可以相应地供应在具有自己的内部网络的企业内。在这样的实施例中,网络260可以包括在给定的客户端250与互联网之间以及在互联网与提供商网络200之间建立网络链接所必要的硬件(例如,调制解调器、路由器、交换机、负载平衡器、代理服务器等)和软件(例如,协议堆栈、会计软件、防火墙/安全软件等)。应注意,在一些实施例中,客户端250可以使用专用网络而不是公用互联网与提供商网络200通信。
图3是示出根据一些实施例的托管查询服务的逻辑框图。如下文关于图4至图8论述,托管查询服务270可以利用提供商网络200中的各种其他服务的能力。例如,托管查询服务270可以利用资源管理服务290来供应和管理预先配置的资源池以执行查询、提供预先配置的查询的资源以及返回所利用的资源以供使用。例如,资源管理服务290可以实例化、配置和提供资源池350a和350n,所述资源池包括来自诸如虚拟计算服务210中的计算资源354和数据处理服务220中的计算资源356等一个或多个不同资源服务的池资源352a和352n。资源管理服务290可以发送针对特定资源池来创建、配置、标记(或以其他方式关联)资源352的请求、结束、重启、以其他方式操作资源352,以便代表其他基于网络的服务来执行工作。
在各种实施例中,一旦(例如,通过接收要利用的资源的标识符或其他指示符)提供来自池的资源,托管查询服务270就可以与虚拟计算服务210中的计算资源354或数据处理服务220中的资源356直接交互,以执行查询。在一些实施例中,托管查询服务270可以利用数据目录服务280,在一些实施例中,用于存储数据集模式352,如下文关于图4论述,以便随后在处理查询时使用,如下文关于图5至图7论述。例如,在一些实施例中,数据集模式可以识别作为表定义的一部分的表的字段或列数据类型,以便查询引擎(在计算资源上执行)能够理解所查询的数据。在一些实施例中,托管查询服务270还可以与数据存储服务230交互,以直接以数据集370位来源或检索查询结果380。
托管查询服务270可以实施托管查询接口310以处置来自不同客户端接口的请求,如下文关于图4论述。例如,不同类型的请求可以由托管查询接口310处置,诸如根据应用程序程序员接口(API)格式化的请求、标准查询协议或连接,或者被实施为托管查询服务的一部分的经由托管图形用户接口接收的请求。
托管查询服务270可以实施托管查询服务控制平面320,以管理服务资源的操作(例如,用于托管查询接口310的请求分派器、用于资源规划器330的资源规划器工作者,或用于查询跟踪器340的查询跟踪器监视器)。托管查询服务控制平面320可以将请求引导到适当的部件,如下文关于图5和图6论述。托管查询服务270可以实施认证和授权控制,以用于处置经由托管查询接口310接收的请求。例如,托管查询服务控制平面320可以验证客户端的身份或权限以访问在从客户端接收的查询中识别的数据集(例如,通过沿着访问凭证)。在至少一些实施例中,托管查询服务控制平面320可以维护(在内部数据存储中或作为外部数据存储中的数据集的一部分,诸如在数据存储服务230中的一者中)查询历史、最喜欢的查询或查询执行记录,以及其他托管查询服务历史数据。在一些实施例中,查询执行成本可以由托管查询服务控制平面320开账、计算或报告给账单服务(未示出)或其他系统,以用于将使用情况报告给托管查询服务。
在一些实施例中,托管查询服务270可以实施资源规划器330以从池中明智地选择可用的计算资源来执行查询。例如,资源规划器330可以评估、收集与查询执行相关联的数据统计(例如,由计算资源报告)并且在一些参数集(例如,成本、时间等)内确定用于执行查询的计算资源的估计数量或配置。例如,在一个实施例中,资源规划器330可以应用机器学习技术来生成查询估计模型,所述查询估计模型可以应用于接收的查询的特征以确定资源的数量/配置。在一个实施例中,资源规划器330随后可以提供或识别池中的可用于执行查询的资源中的哪些资源可以最好地适配所估计的数量/配置。
在各种实施例中,托管查询服务270可以实施查询跟踪器340以便在计算集群处管理查询的执行、跟踪查询的状态,并且从资源管理服务290获得用于执行查询的资源。例如,查询跟踪器340可以基于从在供应的计算资源(例如,计算集群,如下文关于图5至图7论述)上实施的不同托管查询服务代理接收的更新来维护数据库或其他跟踪信息集。
图4是示出根据一些实施例的客户端与托管查询服务之间的交互的图。客户端400可以是上文图2中的客户端250或者其他客户端(例如,作为提供商网络200的一部分或作为外部服务、系统或部件的一部分实施的其他服务系统或部件,诸如数据探索或可视化工具(例如,Tableau、Looker、MicroStrategy、Qliktech或Spotfire))。客户端400可以经由托管查询接口310将请求发送到托管查询服务270。托管查询接口310可以供应管理控制台440,所述管理控制台440可以提供用户接口以用于提交查询442(例如,图形或命令行用户接口)或记录用于执行查询的数据模式444。例如,管理控制台440可以被实施为基于网络的站点(例如,提供商网络200的互联网网站)的一部分,所述站点提供各种图形用户接口元素(例如,文本编辑窗口、下拉菜单、按钮、向导程序或工作流)以提交查询或记录数据模式。托管查询接口310可以实施可编程接口410(例如,各种应用程序编程接口(API)命令)以执行请求和各种其他示出的请求。在一些实施例中,托管查询接口310可以实施支持用于查询数据的标准通信协议的定制驱动器,诸如JDBC驱动器430或ODBC驱动器420。
客户端400可以将很多不同类型的请求提交到托管查询接口310。例如,在一个实施例中,客户端400可以提交创建、读取、修改或删除数据模式的请求450。例如,可以经由请求450提交新的表模式。在各种实施例中,请求450可以包括数据集(例如,表)的名称、数据集的位置(例如,诸如数据存储服务230等对象存储服务中的对象标识符、文件路径、统一资源定位符,或其他位置指示符)、列数、列名称、字段或列的数据类型(例如,字符串、整数、布尔型、时间戳、阵列、映射、定制数据类型或复合数据类型)、数据格式(例如,格式包括,但不限于,JSON、CSV、AVRO、ORC、PARQUET、制表符分界、逗号分隔,以及定制或标准串行符/解串行符)、数据集的分区(例如,根据时间、地理位置或其他维度),或者用于相对于数据集处理查询的任何其他模式信息。在至少一些实施例中,可以使用诸如Hive查询语言(HQL)等数据定义语言(DDL)来执行创建/读取/修改/删除数据集模式的请求。托管查询接口310可以相对于数据目录服务280执行相应API调用或其他请求452,以存储数据集的模式(例如,作为表模式402的一部分)。表模式402可以采用不同格式存储(例如,Apache Hive)。应注意,在其他实施例中,托管查询服务270可以实施它自己的元数据存储。
在各种实施例中,客户端400还可以将查询460和查询状态470请求发送到托管查询接口310,所述托管查询接口可以将那些请求460和470引导到托管查询服务控制平面320,如下文关于图5和图6论述。查询460可以根据诸如结构化查询语言(SQL)或HQL等各种类型的查询语言进行格式化。
客户端400还可以提交针对查询历史480或管理查询的其他帐户相关查询信息(例如,最喜欢或常用查询)的请求。在一些实施例中,客户端400可以通过发送执行保存的查询490的请求而以编程方式触发过去查询的执行,托管查询服务控制平面320可以查找和执行所述保存的查询。例如,执行保存的查询请求可以包括针对特定用户帐户或客户端存储或保存的指示或其他标识符。托管查询服务控制平面320随后可以访问用户查询存储以检索和执行所述查询(根据下文关于图5至图7论述的技术)。
图5是根据一些实施例的查询的托管执行的顺序图。可以在托管查询服务控制平面320处接收查询530,所述托管查询服务控制平面可以将查询提交532到查询跟踪器340,所述查询跟踪器指示用于执行的选定集群536。查询跟踪器340可以从资源管理服务290租赁集群534,所述资源管理服务290可以返回集群536。资源管理服务290和查询跟踪器340可以维护由查询跟踪器租赁且分配用于执行所接收的查询的资源的租赁状态信息。查询跟踪器340随后可以在供应的集群510处开始查询的执行538,从而将查询执行指令发送到托管查询代理512。
托管查询代理512可以从数据目录服务280得到数据集520的模式540,所述数据目录服务可以返回适当模式542(例如,实施用于应用“在读取时”处理查询的模式的技术)。供应的集群510随后可以生成查询执行规划并且根据查询规划相对于数据集520执行查询544。托管查询代理512可以将查询状态546发送到查询跟踪器340,所述查询跟踪器可以响应于得到查询状态546请求而报告查询状态548,从而发送指示查询状态550的响应550。供应的集群510可以将查询结果552存储在结果存储522中(其可以是数据存储服务230)。在一些实施例中,托管查询服务控制平面320可以从结果存储522接收得到查询结果554和得到查询结果556的请求,并且作为响应而提供查询结果558。
图6是根据一些实施例的利用资源规划器的查询的托管执行的顺序图。可以在托管查询服务控制平面320处接收查询630,所述托管查询服务控制平面可以将查询提交632到资源规划器340。资源规划器340可以分析所述查询以基于处理查询的历史数据和从资源管理服务290接收的可用集群634来确定用于处理所述查询的最佳集群。资源规划器340随后可以选择查询并将所述查询提交到查询跟踪器340,所述查询跟踪器指示用于执行的选定集群636。查询跟踪器340随后可以在供应的集群610处开始查询的执行638,从而将查询执行指令发送到托管查询代理612。
托管查询代理612可以从数据目录服务280得到数据集620的模式640,所述数据目录服务可以返回适当模式642。供应的集群610随后可以生成查询执行规划并且根据查询规划相对于数据集620执行查询644。托管查询代理612可以将查询状态646发送到查询跟踪器340,所述查询跟踪器可以响应于得到查询状态646请求而报告查询状态648,从而发送指示查询状态650的响应650。供应的集群610可以将查询结果652存储在结果存储622中(其可以是数据存储服务230)。在一些实施例中,托管查询服务控制平面320可以从结果存储622接收得到查询结果654和得到查询结果656的请求,并且作为响应而提供查询结果658。
在一些实施例中,可以在资源池中供应和配置不同类型的计算资源。单节点集群或多节点计算集群可以是由资源管理服务290在资源池中供应和配置的一种类型的计算资源的一个示例,以便针对托管查询服务270来服务查询。图7是示出根据一些实施例的作为托管查询执行的一部分的处理查询的集群的逻辑框图。集群710可以实施计算节点720,所述计算节点是领导节点(根据集群710实施的查询引擎724)。在一些实施例中,没有单个节点可以是领导节点,或者领导节点可以从处理一个查询循环到下一查询。托管查询代理722可以作为领导节点720的一部分实施,以便在供应的资源、集群710与托管查询服务270和资源管理服务290的其他部件之间提供接口。例如,托管查询代理722可以将另外的数据提供到托管查询服务270,诸如查询的状态708(例如,实施、执行I/O、执行聚集等)和度量706(例如,健康度量、资源利用度量、成本度量、持续时间、执行度量等)。在一些实施例中,托管查询代理722可以将集群/查询状态708和度量706提供到资源管理服务290(以便作出池管理决策,诸如修改事件、租赁请求等)。例如,托管查询代理722可以向资源管理服务290指示集群状态708,所述集群状态指示查询已经完成并且集群710准备好重新分配(或其他资源生命周期操作,如下文关于图10论述)。
领导节点720可以实施查询引擎724以执行查询,诸如可以经由托管查询代理722作为查询703接收的查询702。例如,托管查询代理可以实施用于查询跟踪器的可编程接口以提交查询(如上文在图5和图6中论述),并且随后生成适当的查询执行指令并发送到查询引擎724。查询引擎724可以针对接收的查询703生成查询执行规划。在至少一些实施例中,领导节点720可以从数据目录服务280或针对数据762的用于数据762的元数据存储(例如,数据字典、其他元数据存储、维护模式信息的其他数据处理服务,诸如数据库系统)获得用于数据集770的模式信息,以便将模式数据合并到查询规划的生成和查询的执行中。领导节点720可以生成查询执行指令740并发送到计算节点,所述计算节点访问数据存储760中的数据762并且将查询应用到所述数据。诸如节点730a、730b和730n的计算节点分别可以实施查询引擎732a、732b和732n,以执行查询指令、将查询应用到数据750并且将部分结果740返回到领导节点720,所述领导节点继而可以生成并发送查询结果704。查询引擎724和查询引擎732可以实施各种分布式查询或数据处理框架,诸如开源Presto分布式查询框架或Apache Spark框架。
图8是示出根据一些实施例的资源管理服务与资源池之间的交互的逻辑框图。资源管理服务290可以实施可编程接口(例如,API)或者允许其他基于网络的服务(或者客户端或提供商网络)提交针对由资源管理服务290管理的资源池中的预先配置资源的请求的其他接口。例如,可以(例如,从查询跟踪器340)接收针对集群830的请求以获得集群来执行查询。资源管理服务290可以为请求830确定适当的池、随机地(或根据下文关于图10论述的技术选择性地)确定用于服务请求的集群。资源管理服务290随后可以提供所识别的集群840(例如,通过指定位置、标识符或用于访问所识别的计算资源的其他信息)。资源管理服务可以更新集群的状态信息以指示集群被租赁或在其他方面不可用。资源管理服务290还可以接收从当前分配中释放集群850的请求。在一些实施例中,资源管理服务290随后可以更新集群和池的状态信息以使集群返回到池。
如在860处指示,资源管理服务290可以自动地(或响应于请求(未示出))委托或停用集群810的池。例如在一些实施例中,资源管理服务290可以执行为活跃集群池810选择计算集群820的数量和大小的技术。在一些实施例中,活跃集群池810中的计算集群820的数量和大小可以基于多种因素来确定,所述因素包括,但不限于,查询请求的历史和/或预期容量、用于实施计算集群820的计算资源的价格,和/或其他因素或考虑。
一旦已经确定计算集群820的数量和大小,就可以将计算集群820实例化,诸如通过使用按需计算服务,或者如上文在图2中论述的虚拟计算服务或数据处理服务。实例化的计算集群820随后可以被配置成在托管查询服务处接收查询之前处理查询。例如,但不限制,一个或多个分布式查询框架或其他查询处理引擎可以安装在计算集群820中的每一者中的计算节点上。如上文论述,在一个特定实现方式中,分布式查询框架可以是开源PRESTO分布式查询框架。在其他配置中可以利用其他分布式查询框架。另外,分布式处理框架或其他查询引擎也可以安装在每个计算集群820中的主机计算机上。如上文论述,可以采用与分布式查询框架类似的方式利用分布式处理框架。例如,在一个特定配置中,APACHE SPARK分布式处理框架也可以或替代地安装在计算集群820的主机计算机上。
在一些实施例中,将可供托管查询服务104使用的经过实例化且配置的计算资源820添加到活跃集群池810。在各种实施例中,可以作出关于是否需要调整活跃集群池中的计算集群820的数量或大小的判定。可以基于从集群池接收的度量890来监测活跃集群池810中的计算集群820的性能。随后可以调整分配到活跃集群池810的计算集群820的数量和活跃集群池810中的每个计算集群820的大小(即,每个计算集群820中的主机计算机的数量)。此类技术可以重复地执行,以便不断地优化活跃集群池810的计算集群820的数量和大小。
如在880处指示,在一些实施例中,资源管理服务可以通过致使集群执行操作(例如,重启)以便集群不再保留客户端数据并且准备好处理另一查询来擦除集群880。例如,资源管理服务290可以确定计算集群820是否不活动(例如,计算集群820在预定量的时间内没有接收到查询)。如果资源管理服务290确定计算集群820不活动,那么计算集群820可以与查询的提交者取消关联。所述计算集群随后可以被“擦除”,诸如通过从由计算集群820中的主机计算机利用的存储器(例如,主存储器或高速缓存)或大容量存储装置(例如,磁盘或固态存储装置)移除与查询的提交者相关联的数据。计算集群820随后可以返回到活跃集群池810,以用于处理其他查询。在一些实施例中,在某些情形下,不活动的一些集群可以不与某些用户取消关联。在这些情形下,用户可以具有可供他们使用的集群810的专用活跃池。
尽管已经在提供商网络利用多个不同服务来实施托管查询服务的背景描述和说明图2至图8,但图2至图8中示出和描述的各种部件可以容易应用于相对于存储在远程数据存储中和/或以不同格式存储的数据集来管理查询执行的其他托管查询执行技术、系统或装置。因此,图2至图8并不意图限制可以实施托管查询执行的系统的其他实施例。图9是示出根据一些实施例的用于实施托管查询执行的各种方法和技术的高级流程图。各种不同的系统和装置可以单独地或一起协作地实施下文描述的各种方法和技术。例如,数据处理服务和/或存储服务以及诸如上文关于图2至图8描述的数据目录服务和托管查询服务可以实施各种方法。或者,不同系统和装置的组合可以实施这些方法。因此,上述示例和或被引用为执行所示方法的任何其他系统或装置并不意图限制系统和装置的其他不同部件、模块、系统或配置。
如在910处指示,在各种实施例中,可以接收第一查询,所述第一查询指向单独地存储在远程数据存储中的数据集。例如,在一个实施例中,可以经由上文关于图4描述的各种类型的接口(可编程、用户控制台、驱动器等)来接收查询。查询可以根据不同查询语言或者包括结构化查询语言(SQL)和/Hive查询语言(HQL)的查询语言的规范进行格式化。在一些实施例中,所述查询可以包括执行提示,所述执行提示指定利用的查询执行引擎的类型、查询执行限制,或者用于配置查询的指令的其他参数或性质。
如在920处指示,可以从被配置成执行查询的计算资源池接收用于执行第一查询的计算资源。如上文论述,计算资源池可以是活跃的或以其他方式预先配置,以便它们准备好接收查询并且处理查询。计算资源可以使用不同的查询执行引擎进行配置,包括不同的分布式查询处理框架,诸如Presto或Spark。可以通过以下方式来供应计算资源:从所识别的池(例如,被配置成执行接收的查询的类型的计算资源池,诸如下文关于图10论述)随机地选择可用计算资源,或者可以基于对计算资源的性质的分析来确切地选择池的计算资源,或者可以选择已经代表第一查询的同一提交者(例如,同一客户端、同一用户、同一账户、同一凭证等)执行另一查询的计算资源。
如在930处指示,在各种实施例中,第一查询可以路由到供应的计算资源以相对于远程数据存储中的单独地存储的数据集来执行第一查询。例如,在一些实施例中,可以将请求格式化并发送到托管集群代理,从而指示要执行的查询、用于查询的执行的配置参数,或者用于发送查询的结果的位置或目的地。在至少一些实施例中,查询可以直接发送到查询引擎。
图10是示出根据一些实施例的用于从计算资源池中选择计算资源来执行查询的各种方法和技术的高级流程图。如在1010处指示,在各种实施例中,可以接收第一查询,所述第一查询指向存储在远程数据存储中的数据集。如在1020处指示,可以选择可以从被配置成执行查询的计算资源池选择计算资源。例如,可以确定用于执行查询的池,在一些实施例中,根据查询的类型(例如,读取查询、写入查询、模式变化或其他基于数据定义语言(DDL)的查询)。在一些实施例中,可用不同大小的计算资源,并且因此可以在最佳大小(或客户端指定的大小)上选择用于查询的计算资源。在一些实施例中,可以在不同池中的不同计算资源上实施不同类型的查询引擎。可以基于查询引擎的类型来选择资源(例如,读取查询可以导致选择基于存储的查询引擎,而写入查询可以导致选择存储器和磁盘可操作查询引擎)。在至少一些实施例中,所选择的资源可以来自被识别为用于执行所接收的查询的活跃集群池的资源池。在一些实施例中,选择用于执行查询的计算资源(例如,计算集群)可以基于多种因素,包括但不限于,由同一请求者提交的先前查询、期望的查询性能、用户偏好、将要查询的数据量、列统计、经验数据、用于执行查询的计算资源的价格、与集群106的性能相关的其他类型统计以及其他因素。在一些实施例中,可以再次选择计算资源以用于从同一提交者到所选择的计算资源接收的后续查询。
如在1030处指示,一旦被选择,便可以从计算资源池中移除所选择的计算集群(例如,来自活跃集群池的集群)。如在1040处指示,在各种实施例,被移除的计算资源可以与第一查询相关联(或者在一些实施例中,与第一查询的提交者相关联,以便来自提交者的后来请求可以分配到相同计算资源)。计算资源还可以在另一时间与用户相关联,诸如当用户登录管理控制台时。如在1050处指示,在各种实施例中,随后可以将第一查询路由到第一查询的相关联计算资源。如在1060处指示,在各种实施例中,可以提供在相关联计算资源处生成的查询的结果。例如,在一个实施例中,可以将结果发送到为查询结果指定的目的地或位置(例如,在客户端请求中)。所述结果可以流式传输回或聚集(例如,在数据存储中,比如数据存储服务230)并且经由接收请求的相同接口(例如,可编程、图形、驱动器、控制台等)提供作为一批(或多批,诸如标页数的结果)。
图11是示出根据一些实施例的用于相对于查询执行限制来监测查询的执行的各种方法和技术的高级流程图。如在1110处指示,在各种实施例中,可以针对与查询相关联的计算资源来监测查询执行度量。例如,在一个实施例中,查询执行度量可以包括利用或消耗度量(例如,消耗的I/O带宽、消耗的处理器容量、消耗的网络带宽)。在一个实施例中,查询执行度量可以是从利用或消耗度量得出的成本值(例如,就工作单位、货币单位、时间单位等而言)。
如在1120处指示,在一些实施例中,可以相对于查询执行限制来评估所监测的查询执行度量。例如,在一个实施例中,查询可以包括执行限制,作为提示、评论或查询陈述的其他“不可执行”部分,其可以指示应用于查询的限制。在一些实施例中,可以应用默认成本、单位、利用率或其他消耗限制,或者在其他实施例中,可以应用执行时间限制。在各种实施例中,如果超过查询执行限制,如由离开1120的肯定值指示,那么可以在计算资源处停止查询的执行。例如,可以提供部分结果或其他完成的工作作为查询结果(并且在一些实施例中,可以指示由于查询执行限制,所述结果是部分的或停止查询)。开源代理或部件可以执行监测和/或停止查询执行(例如,图7中的托管查询代理722),或者单独的监测部件(例如,在图3中的查询跟踪器340处)可以监测查询执行度量并且致使查询的执行停止。
图12是示出根据一些实施例的用于存储远程数据存储中所存储的数据的模式的各种方法和技术的高级流程图。如在1210处指示,在一些实施例中,可以记录存储在远程数据存储中的数据的位置。例如,在一个实施例中,可以提供指示访问数据所需的数据集位置、名称、访问控制或其他信息的文件路径、对象标识符、数据存储服务、网络地址或其他标识符。如在1220处指示,在一些实施例中,可以将表定义映射到数据中的字段,作为数据的模式的一部分。例如,可以将标准数据类型(诸如,整数、字符串、浮点数或字符)、定制或复合数据类型(诸如,日期、统一资源定位符(URL)、性别等)映射到表的不同列。
如在1230处指示,在各种实施例中,可以指定数据的格式,作为数据的模式的一部分。例如,在一个实施例中,可以在请求中指定如何存储数据的各种数据格式,包括但不限于,Avro、CSV、TSV、Parquet、ORC、JSON、Apache Web服务器日志、自定义定界符,并且包括用于数据格式的串行符/解串行符。如在1240处指示,可以指定数据的分区,作为数据的模式的一部分。例如,在一个实施例中,数据可以时间或另一维度而按分区存储在远程数据存储中如在1250处指示,在各种实施例中,可以将模式存储在元数据存储中。例如,执行上述技术的托管查询服务可以利用诸如数据记录UI 444等接口,以存储表定义或利用数据目录服务280的接口的其他模式。在一些实施例中,可以根据APACHE HIVE元数据存储来存储模式。然而,在其他实施例中,可以利用其他类型的格式或元数据存储。在一些实施例中,一旦存储在元数据存储中,所述模式便可以用于处理指向所记录的数据的查询。例如,在一个实施例中,数据目录服务280还可以使数据的表定义可用于由托管查询服务利用的计算集群。
在各种实施例中,本文中所述的方法可以由硬件和软件的任何组合实施。例如,在一个实施例中,所述方法可以由计算机系统(例如,图15中的计算机系统)实施,所述计算机系统包括执行程序指令的一个或多个处理器,所述指令存储在耦合到所述处理器的计算机可读存储介质上。程序指令可以被配置成实施本文中所述的功能(例如,各种服务器和实施本文中所述的基于网络的虚拟计算资源提供商的其他部件的功能)。如附图中示出并且本文中描述的各种方法表示方法的示例实施例。可以改变任何方法的顺序,并且可以添加、再排序、组合、忽略、修改等各种元件。
图13是示出根据一些实施例的说明性操作环境的逻辑框图,所述说明性操作环境包括可以实施本文中所述的功能的方面的服务提供商网络。如上文论述,服务提供商网络200可以永久地或根据需要提供计算资源,比如VM实例和存储设备。在其他类型的功能之中,由服务提供商网络200提供的计算资源可以用来实施上述各种服务。也如上文论述,由服务提供商网络200提供的计算资源可以包括各种类型的计算资源,诸如,比如VM实例的数据处理资源、数据存储资源、网络资源、数据通信资源、网络服务等等。
由服务提供商网络200提供的每一种类型的计算资源可以是通用的或者在多种具体配置下可用。例如,在多个不同配置下,数据处理资源可以用作物理计算机或VM实例。VM实例可以执行应用程序,包括web服务器、应用程序服务器、媒体服务器、数据库服务器、上述服务中的一些或全部,和/或其他类型的程序。VM实例还可以采用上述方式被配置到计算集群中。数据存储资源可以包括文件存储装置、块存储装置等等。服务提供商网络200还可以提供本文中未具体地提及的其他类型的计算资源。
在一些实施例中,由服务提供商网络提供的计算资源可以由一个或多个数据中心1304A至1304N(其在本文中单独地被称为“数据中心1304”或用复数形式“多个数据中心1304”)实施。数据中心1304是用来容纳和操作计算机系统和相关联部件的设施。数据中心1304通常包括冗余和备用电源、通信、冷却和安全系统。数据中心1304也可以位于地理上分开的位置。下文将关于图14描述可以用来实施本文中公开的技术的数据中心1304的一个说明性配置。
服务提供商网络200的客户和其他用户可以通过网络1302来访问由服务提供商网络200提供的计算资源,所述网络可以是广域通信网(“WAN”),诸如互联网、内联网或互联网服务提供商(“ISP”)网络,或者此类网络的组合。例如,但不限制,由服务提供商网络200的客户或其他用户操作的计算装置1300可以用来通过网络1302方位服务提供商网络200。应了解,可以利用局域网(“LAN”)、互联网或者本领域中已知的将数据中心1304连接到远程客户和其他用户的任何其他网络拓扑。还应了解,还可以利用此类网络的组合。
图14是示出根据各种实施例的可以用于实施本文中公开的技术的方面的数据中心的配置的逻辑框图。所述图是计算系统图,在一些实施例中,示出实施本文中公开的技术的方面以用于提供托管查询执行(诸如,托管查询执行服务270)的数据中心1304的配置。图14中示出的示例数据中心1304包括用于提供计算资源1404A至1404E的若干个服务器计算机1402A至1402F(其在本文中单独地被称为“服务器计算机1402”或用复数形式“多个服务器计算机1402”)。
服务器计算机1402可以是被适当地配置用于提供本文中描述的计算资源(在图14中示为计算资源1404A至1404E)的标准塔式、机架式或刀片式服务器部件。如上文所述,由提供商网络200提供的计算资源可以是诸如VM实例或硬件计算系统等数据处理资源、计算集群、数据存储资源、数据库资源、网络资源,以及其他资源。服务器1402中的一些还可以执行能够实例化和/或管理计算资源的资源管理器1406。在VM实例的情况下,例如,资源管理器1406可以是管理程序,或者另一类型的程序可以使得能够在单个服务器计算机1402上执行多个VM实例。数据中心1304中的服务器计算机1402还可以提供网络服务和其他类型的服务,其中一些在上文关于图2详细地描述。
图14中示出的数据中心1304还包括能够执行上述软件部件中的一些或全部的服务器计算机1402F。例如,但不限制,服务器计算机1402F可以执行用于提供提供商网络200的不同服务(诸如托管查询服务270、数据目录服务280、资源管理服务290以及其他服务1410(例如,上文论述))的各种部件,和/或上述其他软件部件。服务器计算机1402F还可以执行其他部件和/或存储用于提供本文中所述的功能中的一些或全部的数据。在这点上,应了解,在各种配置中,图14中示为在服务器计算机1402F执行的服务可以在数据中心1304中的很多其他物理或虚拟服务器上执行。
在图14所示的示例数据中心1304中,也使用适当的LAN 1406来将服务器计算机1402A至1402F互连。LAN 1406还连接到图13中示出的网络1302。应了解,本文中所述的配置和网络拓扑已经大大地简化,并且很多其他计算系统、软件部件、网络和网络装置可以用来将本文中公开的各种计算系统互连并提供上述功能。还可以使用适当的负载平衡装置或其他类型的网络基础设施部件来平衡数据中心1304A至1304N的每一者之间、每个数据中心1304中的服务器计算机1402A至1402F的每一者之间以及可能地数据中心1304的每一者中的计算资源之间的负载。应了解,参考图14描述的数据中心1304的配置仅仅是说明性的并且可以利用其他实现方式。
如本文中所述的托管查询执行的实施例可以在一个或多个计算机系统上执行,所述计算机系统可以与各种其他装置交互。图15示出一个这样的计算机系统。在不同实施例中,计算机系统2000可以是各种类型的装置中的任一种,包括但不限于,个人计算机系统、台式计算机、膝上型计算机、笔记本或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、摄像机、机顶盒、移动装置、消费装置、视频游戏控制台、手持式视频游戏装置、应用程序服务器、存储装置、外围装置,诸如开关、调制解调器、路由器或通常任何类型的计算装置、计算节点、计算机节点、计算系统、计算机系统或电子装置。
在所示实施例中,计算机系统2000包括经由输入/输出(I/O)接口2030耦合到系统存储器2020的一个或多个处理器2010。计算机系统2000还包括耦合到I/O接口2030的网络接口2040,以及一个或多个输入/输出装置2050,诸如光标控制装置2060、键盘2070和显示器2080。显示器2080可以包括标准计算机显示器和/或其他显示系统、技术或装置。在至少一些实现方式中,输入/输出装置2050还可以包括支持触摸或多点触摸的装置,诸如触控板或触摸板,借此用户经由触笔型装置和/或一根或多根手指来进行输入。在一些实施例中,预期可以使用计算机系统2000的单个实例来实现实施例,而在其他实施例中,此类系统或组成计算机系统2000的多个节点可以容纳实施例的不同部分或实例。例如,在一个实施例中,可以经由计算机系统2000的与实施其他元件的那些节点不同的一个或多个节点来实施一些元件。
在各种实施例中,计算机系统2000可以是包括一个处理器2010的单处理器系统,或者是包括若干个处理器2010(例如,两个、四个、八个或者另一合适数量)的多处理器系统。处理器2010可以是能够执行指令的任何合适的处理器。例如,在各种实施例中,处理器2010可以是实施多种指令集架构(ISA)中的任一者的通用或嵌入式处理器,所述指令集架构诸如x86、PowerPC、SPARC或MIPS ISA,或者任何其他合适的ISA。在多处理器系统中,每个处理器2010通常可以,但不一定,实施相同的ISA。
在一些实施例中,至少一个处理器2010可以是图形处理单元。图形处理单元或GPU可以被视作个人计算机、工作站、游戏控制台或者其他计算或电子装置的专用图形渲染装置。现代GPU在操纵和显示计算机图形方面可能非常有效,并且对于一定范围的复杂图形算法,它们的高度并行结构可以使得它们比典型GPU更有效。例如,图形处理器可以采用使得执行图元操作比用主机中央处理单元(CPU)直接画到屏幕快得多的方式来实施许多图元操作。在各种实施例中,图形渲染可以至少部分地由被配置用于在此类GPU中的一者上执行或在其中两者或更多者上并行执行的程序指令实施。GPU可以实施允许程序员调用GPU的功能的一个或多个应用程序程序员接口(API)。合适的GPU可以从供应商商购,诸如NVIDIA公司、ATI技术公司(AMD)以及其他供应商。
系统存储器2020可以存储可由处理器2010访问的指令和/或数据。在各种实施例中,系统存储器2020可以使用任何合适的存储器技术来实现,诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型存储器,或者任何其他类型的存储器。在所示实施例中,实施诸如上文所述的那些期望功能的程序指令和数据被示为存储在系统存储器2020内,分别作为程序指令2025和数据存储设备2035。在其他实施例中,可以在不同类型的计算机可访问介质上或在与系统存储器2020或计算机系统2000分开的类似介质上接收、发送或存储程序指令和/或数据。一般来说,非暂时性计算机可读存储介质可以包括经由I/O接口2030耦合到计算机系统2000的存储介质或存储器介质,诸如磁性或光学介质,例如磁盘或CD/DVD-ROM。经由计算机可读介质存储的程序指令和数据可以由传输介质或诸如电信号、电磁信号或数字信号的信号传输,所述信号可以经由诸如网络的通信介质和/或诸如可以经由网络接口2040实现的无线链路来传送。
在一个实施例中,I/O接口2030可以协调处理器2010、系统存储器2020以及装置中的任何外围装置之间的I/O流量,所述外围装置包括网络接口2040或其他外围接口,诸如输入/输出装置2050。在一些实施例中,I/O接口2030可以执行任何必要的协议、定时或其他数据转换,以便将来自一个部件(例如,系统存储器2020)的数据信号转换成适用于另一部件(例如,处理器2010)的格式。在一些实施例中,I/O接口2030可以包括支持通过各种类型的外围总线附接的装置,诸如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施例中,I/O接口2030的功能可以分到两个或更多个单独部件中,诸如北桥芯片和南桥芯片。另外,在一些实施例中,I/O接口2030的一些功能或全部功能(诸如,到系统存储器2020的接口)可以直接并入到处理器2010中。
网络接口2040可以允许在计算机系统2000与附接到网路的其他装置(诸如其他计算机系统)之间或者在计算机系统2000的节点之间交换数据。在各种实施例中,网络接口2040可以支持经由以下网络进行通信:有线或无线通用数据网络,例如,诸如任何合适类型的以太网;电信/电话网络,诸如模拟语音网络或数字光纤通信网络;存储区域网络,诸如光纤通道SAN;或者任何其他合适类型的网络和/或协议。
在一些实施例中,输入/输出装置2050可以包括一个或多个显示终端、键盘、按键、触控板、扫描装置、语音或光学识别装置,或者适合由一个或多个计算机系统2000输入或检索数据的任何其他装置。多个输入/输出装置2050可以存在于计算机系统2000中或者可以分布在计算机系统2000的各种节点上。在一些实施例中,类似的输入/输出装置可以与计算机系统2000分开,并且可以通过有线或无线连接诸如通过网络接口2040与计算机系统2000的一个或多个节点交互。
如图15所示,存储器2020可以包括程序指令2025,可以实施如本文中所述的各种方法和技术以及数据存储设备2035,所述数据存储设备包括可由程序指令2025访问的各种数据。在一个实施例中,程序指令2025可以包括如本文中所述且如附图所示的实施例的软件元素。数据存储设备2035可以包括可以用在实施例中的数据。在其他实施例中,可以包括其他或不同的软件元素和数据。
本领域的技术人员应了解,计算机系统2000仅仅是说明性的,并且不意图限制如本文中所述的技术的范围。具体地,计算机系统和装置可以包括能够执行专用功能的硬件或软件的任何组合,包括但不限于,计算机、个人计算机系统、台式计算机、膝上型计算机、笔记本或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、摄像机、机顶盒、移动装置、网络装置、互联网设备、PDA、无线电话、寻呼机、消费装置、视频游戏控制台、手持式视频游戏装置、应用程序服务器、存储装置、外围装置,诸如开关、调制解调器、路由器或通常任何类型的计算或电子装置。计算机系统2000还可以连接到未示出的其他装置,或者相反地可以作为独立系统操作。另外,在一些实施例中,由所示部件提供的功能可以在更少的部件中结合或者分布在附加的部件中。类似地,在一些实施例中,可以不提供所示部件中的一些的功能,和/或其他附加功能可供使用。
本领域的技术人员还将了解,尽管将各种项示为在使用时存储在存储器中或在存储设备上,但出于存储器管理和数据完整性目的,这些项或其部分可以在存储器与其他存储装置之间转移。或者,在其他实施例中,软件部件中的一些或全部可以在另一装置上的存储器中执行并且经由计算机间通信与所示计算机系统通信。系统部件或数据结构中的一些或全部还可以存储(例如,作为指令或结构化数据)在计算机可访问介质或便携制品上,以便由适当的驱动器读取,所述驱动器的各种示例在上文描述。在一些实施例中,存储在与计算机系统2000分开的非暂时性计算机可访问介质上的指令可以经由传输介质或者诸如电信号、电磁信号或数字信号等经由诸如网络和/或无线链路等通信介质传送的信号而传输到计算机系统2000。各种实施例还可以包括根据前述描述在计算机可访问介质上实现的接收、发送或存储指令和/或数据。因此,可以利用其他计算机系统配置来实践本发明。
应注意,本文中所述的分布式系统实施例中的任一者或者它们的部件中的任一者可以实施为一个或多个web服务。例如,数据仓库系统内的领导节点可以向客户端呈现数据存储服务和/或数据库服务作为基于网络的服务。在一些实施例中,基于网络的服务可以由被设计成支持通过网络的互操作机对机交互的软件和/或硬件系统实施。基于网络的服务可以具有采用诸如Web服务描述语言(WSDL)等机器可处理格式描述的接口。其他系统可以采用由基于网络的服务的接口的描述规定的方式与web服务交互。例如,基于网络的服务可以定义其他系统可以调用的各种操作,并且可以定义特定应用程序编程接口(API),当请求各种操作时其他系统可以预期符合所述API。
在各种实施例中,可以通过使用包括与基于网络的服务请求相关联的参数和/或数据来请求或调用基于网络的服务。这样的消息可以根据诸如可扩展标记语言(XML)等特定标记语言进行格式化,和/或可以使用诸如简单对象访问协议(SOAP)等协议进行封装。为了执行web服务请求,基于网络的服务可以组合包括所述请求的消息并且使用诸如超文本传输协议(HTTP)等基于互联网的应用层传输协议将所述消息传送到与web服务对应的可寻址端点(例如,统一资源定位符(URL))。
在一些实施例中,web服务可以使用表述性状态转移(“RESTful”)技术而不是基于消息的技术来实施。例如,可以通过HTTP方法内包括的诸如PUT、GET或DELETE等参数而不是封装在SOAP消息内的参数来调用根据RESTful技术实施的web服务。
如附图中示出并且本文中描述的各种方法表示方法的示例实施例。所述方法可以在软件、硬件或其组合中实施。可以改变方法的顺序,并且可以添加、再排序、组合、忽略、修改等各种元件。
可以做出各种修改和改变,如受益于本公开的本领域技术人员将显而易见。本发明意图涵盖所有此类修改和变化,并且因此,上述描述应被视作说明性的,而非限制性的。

Claims (20)

1.一种系统,包括:
存储器,所述存储器用于存储程序指令,所述程序指令如果被至少一个处理器执行则致使所述至少一个处理器执行一种方法以至少:
接收描述一个或多个远程数据存储中的一个或多个数据集的模式;
将所述模式与被配置成执行查询的计算资源池分开存储;
接收第一查询,所述第一查询指向所述一个或多个远程数据存储中的所述一个或多个数据集,其中所述一个或多个数据集与所述被配置成执行查询的计算资源池分开存储;
响应于接收到所述第一查询:
从所述被配置成执行查询的计算资源池供应一个或多个计算资源以执行所述第一查询;
将所述第一查询路由到所供应的计算资源以针对所述远程数据存储中的分开存储的一个或多个数据集执行所述第一查询,其中所供应的计算资源作为执行所述第一查询的一部分获得分开存储的描述所述一个或多个数据集的模式;以及
提供在所供应的计算资源处生成的所述第一查询的结果。
2.如权利要求1所述的系统,其中所述方法还包括:
接收所述数据集中的至少一个的模式;
将所述至少一个数据集的所述模式存储在元数据存储中;并且
其中所述供应的计算资源访问所述元数据存储中的所述模式,作为所述第一查询的执行的一部分。
3.如权利要求2所述的系统,其中经由相同的用户接口来接收所述第一查询和所述模式。
4.如权利要求3所述的系统,其中所述至少一个处理器被实施为基于网络的托管查询服务的一部分,其中所述数据集中的至少一个存储在基于网络的数据存储服务中,其中所述模式存储在基于网络的数据目录服务中,其中所供应的计算资源被实施为虚拟计算服务的一部分,并且其中所述托管查询服务、数据存储服务、数据目录服务和虚拟计算服务被供应作为同一提供商网络的一部分。
5.一种方法,包括:
接收描述一个或多个远程数据存储中的一个或多个数据集的模式;
将所述模式与被配置成执行查询的计算资源池分开存储;
接收第一查询,所述第一查询指向所述一个或多个远程数据存储中的所述一个或多个数据集,其中所述一个或多个数据集与所述被配置成执行查询的计算资源池分开存储;
响应于接收到所述第一查询:
从所述被配置成执行查询的计算资源池供应一个或多个计算资源以执行所述第一查询;以及
将所述第一查询路由到所供应的计算资源以针对所述远程数据存储中的分开存储的一个或多个数据集执行所述第一查询,其中所供应的计算资源作为执行所述第一查询的一部分获得分开存储的描述所述一个或多个数据集的模式。
6.如权利要求5所述的方法,其中所述供应所述一个或多个计算资源包括选择实施特定查询引擎的一个或多个计算资源以执行所述第一查询。
7.如权利要求6所述的方法,其中在所述第一查询中指示所述特定查询引擎。
8.如权利要求5所述的方法,其中所述数据集中的至少一个根据与所述数据集中的另一个不同的数据格式进行存储,其中所述至少一个数据集存储在与所述数据集中的所述另一个不同的远程数据存储中。
9.如权利要求5所述的方法,其还包括:
监测所述第一查询的一个或多个查询执行度量;
基于所述监测,确定所述第一查询度量超过查询执行限制;以及
停止在所述计算资源处的所述第一查询的执行。
10.如权利要求5所述的方法,其还包括:
接收所述数据集中的至少一个的模式;
将所述至少一个数据集的所述模式存储在元数据存储中;并且
其中所供应的计算资源访问所述元数据存储中的所述模式,作为所述第一查询的执行的一部分。
11.如权利要求5所述的方法,其中经由可编程接口来接收所述第一查询,并且其中所述方法还包括经由所述可编程接口来返回在所供应的计算资源处生成的所述第一查询的结果。
12.如权利要求5所述的方法,其中所述第一查询指示所述第一查询的结果目的地,并且其中所述方法还包括将在所供应的计算资源处生成的所述第一查询的结果发送到所述结果目的地。
13.如权利要求5所述的方法,其中在执行所述接收、所述供应和所述路由的基于网络的服务的服务端点处接收所述第一查询,其中从第一客户端接收所述第一查询,其中在所述服务端点处从访问与所述数据集不同的一个或多个数据集的多个其他客户端接收多个其他查询,并且其中所述基于网络的服务执行接收的所述其他查询的所述接收、所述供应和所述路由。
14.一种非暂时性计算机可读存储介质,其存储程序指令,所述程序指令在被一个或多个计算装置执行时致使所述一个或多个计算装置实施:
接收描述一个或多个远程数据存储中的一个或多个数据集的模式;
将所述模式与被配置成执行查询的计算资源池分开存储;
接收第一查询,所述第一查询指向所述一个或多个远程数据存储中的所述一个或多个数据集,其中所述一个或多个数据集与所述被配置成执行查询的计算资源池分开存储;
响应于接收到所述第一查询:
从所述被配置成执行查询的计算资源池中选择一个或多个计算资源以执行所述第一查询;
从所述计算资源池中移除所选择的计算资源;
使所移除的计算资源与所述第一查询相关联;以及
将所述第一查询路由到所供应的计算资源以针对所述远程数据存储中的分开存储的一个或多个数据集执行所述第一查询,其中所供应的计算资源作为执行所述第一查询的一部分获得分开存储的描述所述一个或多个数据集的模式。
15.如权利要求14所述的非暂时性计算机可读存储介质,其中所述程序指令致使所述一个或多个计算装置实施:
监测所述第一查询的一个或多个查询执行度量;
基于所述监测,确定所述第一查询度量超过查询执行限制;以及
停止在所述计算资源处的所述第一查询的执行。
16.如权利要求14所述的非暂时性计算机可读存储介质,其中根据结构化查询语言(SQL)将所述第一查询格式化。
17.如权利要求14所述的非暂时性计算机可读存储介质,其中经由可编程接口来接收所述第一查询,并且其中所述程序指令致使所述一个或多个计算装置进一步实施经由所述可编程接口来返回在所供应的计算资源处生成的所述第一查询的结果。
18.如权利要求14所述的非暂时性计算机可读存储介质,其中所述程序指令致使所述一个或多个计算装置进一步实施:
接收所述数据集中的至少一个的模式;
将所述至少一个数据集的所述模式存储在元数据存储中;并且
其中所供应的计算资源访问所述元数据存储中的所述模式,作为所述第一查询的执行的一部分。
19.如权利要求18所述的非暂时性计算机可读存储介质,其中经由相同的用户接口来接收所述第一查询和所述模式。
20.如权利要求19所述的非暂时性计算机可读存储介质,其中所述一个或多个计算装置被实施为基于网络的托管查询服务的一部分,其中所述数据集中的至少一个存储在基于网络的数据存储服务中,其中所述模式存储在基于网络的数据目录服务中,其中所供应的计算资源被实施为虚拟计算服务的一部分,并且其中所述托管查询服务、数据存储服务、数据目录服务和虚拟计算服务被供应作为同一提供商网络的一部分。
CN201780053646.8A 2016-09-01 2017-08-31 托管查询服务 Active CN109643312B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662382477P 2016-09-01 2016-09-01
US62/382,477 2016-09-01
US15/470,829 US10803060B2 (en) 2016-09-01 2017-03-27 Managed query service
US15/470,829 2017-03-27
PCT/US2017/049640 WO2018045185A1 (en) 2016-09-01 2017-08-31 Managed query service

Publications (2)

Publication Number Publication Date
CN109643312A CN109643312A (zh) 2019-04-16
CN109643312B true CN109643312B (zh) 2023-08-11

Family

ID=61242674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780053646.8A Active CN109643312B (zh) 2016-09-01 2017-08-31 托管查询服务

Country Status (7)

Country Link
US (9) US10762086B2 (zh)
EP (1) EP3507716A1 (zh)
JP (1) JP6750102B2 (zh)
CN (1) CN109643312B (zh)
AU (1) AU2017321715B2 (zh)
SG (1) SG11201901511QA (zh)
WO (1) WO2018045185A1 (zh)

Families Citing this family (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229983B2 (en) * 2012-11-30 2016-01-05 Amazon Technologies, Inc. System-wide query optimization
US11487771B2 (en) * 2014-06-25 2022-11-01 Microsoft Technology Licensing, Llc Per-node custom code engine for distributed query processing
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10681071B1 (en) 2016-08-02 2020-06-09 ThreatConnect, Inc. Enrichment and analysis of cybersecurity threat intelligence and orchestrating application of threat intelligence to selected network security events
US10762086B2 (en) * 2016-09-01 2020-09-01 Amazon Technologies, Inc. Tracking query execution status for selectively routing queries
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US10726009B2 (en) * 2016-09-26 2020-07-28 Splunk Inc. Query processing using query-resource usage and node utilization data
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US12013895B2 (en) 2016-09-26 2024-06-18 Splunk Inc. Processing data using containerized nodes in a containerized scalable environment
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US10326657B1 (en) 2016-09-30 2019-06-18 Juniper Networks, Inc. Multi vendor device support in network management systems
US10230585B1 (en) * 2016-09-30 2019-03-12 Juniper Networks, Inc. Multi vendor device support in network management systems
US10397130B2 (en) * 2016-11-11 2019-08-27 Vmware, Inc. Multi-cloud resource reservations
US11663205B2 (en) * 2017-05-04 2023-05-30 Salesforce, Inc. Technologies for asynchronous querying
US10956435B2 (en) * 2017-05-05 2021-03-23 Servicenow, Inc. Global search
US10678580B2 (en) * 2017-05-09 2020-06-09 Vmware, Inc. Methods and apparatus to publish internal commands as an application programming interface in a cloud infrastructure
US11372858B2 (en) * 2017-05-18 2022-06-28 Oracle International Corporation Estimated query performance
US11210133B1 (en) * 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US11989429B1 (en) 2017-06-12 2024-05-21 Pure Storage, Inc. Recommending changes to a storage system
US10713248B2 (en) * 2017-07-23 2020-07-14 AtScale, Inc. Query engine selection
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US10579431B2 (en) * 2017-08-12 2020-03-03 Facebook, Inc. Systems and methods for distributed management of computing resources
CN109428912B (zh) * 2017-08-24 2020-07-10 阿里巴巴集团控股有限公司 一种分布式系统资源分配方法、装置及系统
US11113413B2 (en) * 2017-08-25 2021-09-07 Immuta, Inc. Calculating differentially private queries using local sensitivity on time variant databases
US10313413B2 (en) * 2017-08-28 2019-06-04 Banjo, Inc. Detecting events from ingested communication signals
US11947489B2 (en) 2017-09-05 2024-04-02 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
US10778806B2 (en) * 2017-10-10 2020-09-15 Facebook, Inc. Shard sandboxing
US11017455B1 (en) * 2017-11-10 2021-05-25 Core Scientific, Inc. Dynamic computer marketplace system and method
US10456673B1 (en) * 2017-11-17 2019-10-29 Amazon Technologies, Inc. Resource selection for hosted game sessions
US10891290B2 (en) * 2017-12-22 2021-01-12 Teradata Us, Inc. Query plan searching and optimization
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage system
US11200402B2 (en) * 2018-01-26 2021-12-14 GICSOFT, Inc. Application execution based on object recognition
US11762706B1 (en) * 2018-02-01 2023-09-19 Vmware, Inc. Computing environment pooling
US10949252B1 (en) * 2018-02-13 2021-03-16 Amazon Technologies, Inc. Benchmarking machine learning models via performance feedback
CN110321214A (zh) * 2018-03-29 2019-10-11 阿里巴巴集团控股有限公司 一种数据查询方法、装置及设备
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
US11030204B2 (en) 2018-05-23 2021-06-08 Microsoft Technology Licensing, Llc Scale out data storage and query filtering using data pools
US20190361999A1 (en) * 2018-05-23 2019-11-28 Microsoft Technology Licensing, Llc Data analysis over the combination of relational and big data
US10922316B2 (en) 2018-06-13 2021-02-16 Amazon Technologies, Inc. Using computing resources to perform database queries according to a dynamically determined query size
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10824624B2 (en) * 2018-07-12 2020-11-03 Bank Of America Corporation System for analyzing, optimizing, and remediating a proposed data query prior to query implementation
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
CN109032803B (zh) 2018-08-01 2021-02-12 创新先进技术有限公司 数据处理方法和装置、客户端
US11356532B1 (en) * 2018-08-10 2022-06-07 Meta Platforms, Inc. Systems and methods for packaging web resources
US12013856B2 (en) * 2018-08-13 2024-06-18 Amazon Technologies, Inc. Burst performance of database queries according to query size
US10997250B2 (en) * 2018-09-24 2021-05-04 Salesforce.Com, Inc. Routing of cases using unstructured input and natural language processing
US10924398B2 (en) * 2018-09-25 2021-02-16 Ebay Inc. Time-series data monitoring with sharded server
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) * 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US20200125664A1 (en) * 2018-10-19 2020-04-23 Sap Se Network virtualization for web application traffic flows
CN111125207B (zh) * 2018-10-30 2021-03-12 亿度慧达教育科技(北京)有限公司 一种数据获取方法、装置、连接器及presto引擎
CN109408580B (zh) * 2018-10-31 2020-10-20 北京百分点信息科技有限公司 一种跨数据源的sql编译装置及方法
US10938821B2 (en) * 2018-10-31 2021-03-02 Dell Products L.P. Remote access controller support registration system
US11093620B2 (en) 2018-11-02 2021-08-17 ThreatConnect, Inc. Ahead of time application launching for cybersecurity threat intelligence of network security events
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
IT201800021343A1 (it) * 2018-12-28 2020-06-28 Telecom Italia Spa Sistema per fornire un servizio
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11307898B2 (en) 2019-02-26 2022-04-19 Sap Se Server resource balancing using a dynamic-sharing strategy
US11042402B2 (en) * 2019-02-26 2021-06-22 Sap Se Intelligent server task balancing based on server capacity
US11126466B2 (en) 2019-02-26 2021-09-21 Sap Se Server resource balancing using a fixed-sharing strategy
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11327970B1 (en) * 2019-03-25 2022-05-10 Amazon Technologies, Inc. Context dependent execution time prediction for redirecting queries
US11803798B2 (en) 2019-04-18 2023-10-31 Oracle International Corporation System and method for automatic generation of extract, transform, load (ETL) asserts
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
JP2022532974A (ja) * 2019-04-30 2022-07-21 オラクル・インターナショナル・コーポレイション 分析アプリケーション環境におけるSaaS/PaaSリソースの利用および割り当てのためのシステムおよび方法
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11308100B2 (en) * 2019-06-25 2022-04-19 Amazon Technologies, Inc. Dynamically assigning queries to secondary query processing resources
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US12019633B2 (en) * 2019-07-19 2024-06-25 International Business Machines Corporation Providing multi-tier query execution options in a serverless query environment
US11409626B2 (en) 2019-08-29 2022-08-09 Snowflake Inc. Decoupling internal and external tasks in a database environment
US11216446B2 (en) * 2019-08-29 2022-01-04 Snowflake Inc. Identifying software regressions based on query retry attempts in a database environment
US10915418B1 (en) * 2019-08-29 2021-02-09 Snowflake Inc. Automated query retry in a database environment
CN112540843B (zh) * 2019-09-20 2024-05-07 杭州海康威视数字技术股份有限公司 资源的分配方法、装置、存储设备及存储介质
US11442931B2 (en) * 2019-09-27 2022-09-13 Amazon Technologies, Inc. Enabling federated query access to Heterogeneous data sources
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11743155B2 (en) * 2019-11-14 2023-08-29 Trideum Corporation Systems and methods of monitoring and controlling remote assets
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
CN110928721B (zh) * 2020-01-22 2020-06-19 北京懿医云科技有限公司 任务执行方法与装置、电子设备、存储介质
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11048716B1 (en) * 2020-01-31 2021-06-29 Snowflake Inc. Managed virtual warehouses for tasks
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11863573B2 (en) * 2020-03-06 2024-01-02 ThreatConnect, Inc. Custom triggers for a network security event for cybersecurity threat intelligence
US10860609B1 (en) 2020-03-25 2020-12-08 Snowflake Inc. Distributed stop operator for query processing
US11520616B2 (en) * 2020-05-01 2022-12-06 International Business Machines Corporation Virtual server creation monitoring and resource allocation system
US11537616B1 (en) 2020-06-29 2022-12-27 Amazon Technologies, Inc. Predicting query performance for prioritizing query execution
US20220043822A1 (en) * 2020-08-04 2022-02-10 International Business Machines Corporation Shadow experiments for serverless multi-tenant cloud services
US11687833B2 (en) * 2020-08-27 2023-06-27 Google Llc Data management forecasting from distributed tracing
RU2751441C1 (ru) * 2020-09-11 2021-07-13 Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский государственный университет имени М.В.Ломоносова» (МГУ) Способ формирования вычислительного комплекса
US11740980B2 (en) 2020-09-22 2023-08-29 Robin Systems, Inc. Managing snapshot metadata following backup
US11586624B2 (en) * 2020-09-28 2023-02-21 Databricks, Inc. Integrated native vectorized engine for computation
US11743188B2 (en) 2020-10-01 2023-08-29 Robin Systems, Inc. Check-in monitoring for workflows
CN111930780B (zh) * 2020-10-12 2020-12-18 上海冰鉴信息科技有限公司 数据查询方法及系统
US11500830B2 (en) 2020-10-15 2022-11-15 International Business Machines Corporation Learning-based workload resource optimization for database management systems
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
US11750451B2 (en) * 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11762860B1 (en) 2020-12-10 2023-09-19 Amazon Technologies, Inc. Dynamic concurrency level management for database queries
US11782918B2 (en) * 2020-12-11 2023-10-10 International Business Machines Corporation Selecting access flow path in complex queries
US11880364B2 (en) * 2021-01-25 2024-01-23 Snowflake Inc. Predictive resource allocation for distributed query execution
US11138038B1 (en) * 2021-01-29 2021-10-05 Snowflake Inc. Adaptive freepool size prediction
US11755621B2 (en) 2021-05-10 2023-09-12 Argo AI, LLC Systems and methods for atomic publication of distributed writes to a distributed data warehouse
US11853324B2 (en) * 2021-05-10 2023-12-26 Argo AI, LLC Systems and methods for atomic publication of distributed writes to a distributed data warehouse
US11681698B2 (en) 2021-05-10 2023-06-20 Argo AI, LLC Systems and methods for atomic publication of distributed writes to a distributed data warehouse
CN113222449A (zh) * 2021-05-27 2021-08-06 湖北文理学院 标准化作业有效执行度评估方法及装置
CN115550354A (zh) * 2021-06-11 2022-12-30 腾讯云计算(北京)有限责任公司 一种数据处理方法、装置及计算机可读存储介质
US11985144B2 (en) 2021-06-25 2024-05-14 ThreatConnect, Inc. Browser extension for cybersecurity threat intelligence and response
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN115080622A (zh) * 2021-07-22 2022-09-20 支付宝(杭州)信息技术有限公司 一种数据处理方法和系统
CN113918561A (zh) * 2021-09-10 2022-01-11 上海跬智信息技术有限公司 基于云上分析场景的混合查询方法和系统、存储介质
US11954473B2 (en) 2021-09-20 2024-04-09 Microstrategy Incorporated Deployment architecture for multi-tenant cloud computing systems
US11995476B1 (en) 2021-09-22 2024-05-28 Amazon Technologies, Inc. Client-configurable retention periods for machine learning service-managed resources
US20230125765A1 (en) * 2021-10-21 2023-04-27 International Business Machines Corporation Container pool management
US11893038B2 (en) * 2021-10-21 2024-02-06 Treasure Data, Inc. Data type based visual profiling of large-scale database tables
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
US11829223B2 (en) 2021-12-13 2023-11-28 Dell Products L.P. Information handling system battery disposition automated using performance metrics
US11915207B2 (en) 2021-12-13 2024-02-27 Dell Products L.P. Modular information handling system with automated display removal
US11907042B2 (en) 2021-12-13 2024-02-20 Dell Products L.P. Reduction of high battery voltage by ratios using a main board for power supply of processing unit based on battery voltage changes over time
US11579663B1 (en) 2021-12-13 2023-02-14 Dell Products L.P. Modular information handling system with automated housing cover removal
US11861342B2 (en) 2022-01-28 2024-01-02 Microstrategy Incorporated Enhanced cloud-computing environment deployment
US20230267148A1 (en) * 2022-02-22 2023-08-24 Bank Of America Corporation Automated Query Analysis and Remediation Tool
US11924115B2 (en) * 2022-05-20 2024-03-05 Ipco 2012 Limited Systems and methods for use in balancing network resources
CN115277657B (zh) * 2022-05-30 2023-06-13 上海上讯信息技术股份有限公司 一种数据库协议运维的方法及设备
US11947555B1 (en) * 2022-09-30 2024-04-02 Amazon Technologies, Inc. Intelligent query routing across shards of scalable database tables

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859926B1 (en) * 2000-09-14 2005-02-22 International Business Machines Corporation Apparatus and method for workload management using class shares and tiers
US9208032B1 (en) * 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216109B1 (en) * 1994-10-11 2001-04-10 Peoplesoft, Inc. Iterative repair optimization with particular application to scheduling for integrated capacity and inventory planning
US6366915B1 (en) * 1998-11-04 2002-04-02 Micron Technology, Inc. Method and system for efficiently retrieving information from multiple databases
US6314447B1 (en) * 1999-10-04 2001-11-06 Sony Corporation System uses local registry and load balancing procedure for identifying processing capabilities of a remote device to perform a processing task
US6473750B1 (en) * 1999-10-15 2002-10-29 Microsoft Corporation Adaptive query execution in a distributed database system
US20030187841A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Method and structure for federated web service discovery search over multiple registries with result aggregation
US7243093B2 (en) * 2002-11-27 2007-07-10 International Business Machines Corporation Federated query management
JP2004287801A (ja) * 2003-03-20 2004-10-14 Sony Computer Entertainment Inc 情報処理システム、情報処理装置、分散情報処理方法及びコンピュータプログラム
US7406461B1 (en) * 2004-06-11 2008-07-29 Seisint, Inc. System and method for processing a request to perform an activity associated with a precompiled query
US7870565B2 (en) * 2005-06-30 2011-01-11 Intel Corporation Systems and methods for secure host resource management
US7634590B2 (en) * 2005-10-12 2009-12-15 Computer Associates Think, Inc. Resource pool monitor
US7613742B2 (en) 2006-05-02 2009-11-03 Mypoints.Com Inc. System and method for providing three-way failover for a transactional database
US7788544B2 (en) * 2006-05-03 2010-08-31 Computer Associates Think, Inc. Autonomous system state tolerance adjustment for autonomous management systems
US20080033964A1 (en) 2006-08-07 2008-02-07 Bea Systems, Inc. Failure recovery for distributed search
US10122593B2 (en) 2007-02-20 2018-11-06 Oracle America, Inc. Method and system for managing computing resources using an electronic leasing agent
US8782075B2 (en) * 2007-05-08 2014-07-15 Paraccel Llc Query handling in databases with replicated data
US8429096B1 (en) * 2008-03-31 2013-04-23 Amazon Technologies, Inc. Resource isolation through reinforcement learning
JP5238432B2 (ja) * 2008-09-26 2013-07-17 株式会社東芝 メタデータ収集装置、ならびにその方法およびプログラム
US8285710B2 (en) * 2008-10-09 2012-10-09 International Business Machines Corporation Automated query path reporting in distributed databases
US8145652B2 (en) * 2008-10-09 2012-03-27 International Business Machines Corporation Automated propagation of non-conflicting queries in distributed databases
US20100094891A1 (en) * 2008-10-13 2010-04-15 Bid Solve, Inc. Client-Server System for Multi-Resource Searching
US8819106B1 (en) * 2008-12-12 2014-08-26 Amazon Technologies, Inc. Managing distributed execution of programs
US8296419B1 (en) * 2009-03-31 2012-10-23 Amazon Technologies, Inc. Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US8429097B1 (en) 2009-08-12 2013-04-23 Amazon Technologies, Inc. Resource isolation using reinforcement learning and domain-specific constraints
US9495429B2 (en) 2010-07-09 2016-11-15 Daniel Paul Miranker Automatic synthesis and presentation of OLAP cubes from semantically enriched data sources
JP5417287B2 (ja) 2010-09-06 2014-02-12 株式会社日立製作所 計算機システム、及び、計算機システムの制御方法
EP2702522A4 (en) * 2011-04-29 2015-03-25 Hewlett Packard Development Co SYSTEMS AND METHOD FOR IN-STORAGE PROCESSING OF EVENTS
US9052941B1 (en) * 2011-05-27 2015-06-09 Amazon Technologies, Inc. Automated testing of online functionality providers
US8881142B1 (en) 2011-06-21 2014-11-04 Amazon Technologies, Inc. Determining and using probable instance lifetimes
US9275102B2 (en) 2011-07-20 2016-03-01 International Business Machines Corporation System load query governor
US8959223B2 (en) * 2011-09-29 2015-02-17 International Business Machines Corporation Automated high resiliency system pool
US9372827B2 (en) 2011-09-30 2016-06-21 Commvault Systems, Inc. Migration of an existing computing system to new hardware
JP5865668B2 (ja) * 2011-10-21 2016-02-17 クラリオン株式会社 情報端末、プログラムおよび検索方法
US9026864B2 (en) * 2012-02-29 2015-05-05 Red Hat, Inc. Offloading health-checking policy
US9294236B1 (en) 2012-03-27 2016-03-22 Amazon Technologies, Inc. Automated cloud resource trading system
US9240025B1 (en) 2012-03-27 2016-01-19 Amazon Technologies, Inc. Dynamic pricing of network-accessible resources for stateful applications
US8676622B1 (en) 2012-05-01 2014-03-18 Amazon Technologies, Inc. Job resource planner for cloud computing environments
US8775282B1 (en) * 2012-05-18 2014-07-08 Amazon Technologies, Inc. Capacity management of draining-state platforms providing network-accessible resources
US9203866B2 (en) 2012-09-07 2015-12-01 Oracle International Corporation Overage framework for cloud services
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9058219B2 (en) * 2012-11-02 2015-06-16 Amazon Technologies, Inc. Custom resources in a resource stack
US9449040B2 (en) * 2012-11-26 2016-09-20 Amazon Technologies, Inc. Block restore ordering in a streaming restore system
US9229983B2 (en) 2012-11-30 2016-01-05 Amazon Technologies, Inc. System-wide query optimization
US10552774B2 (en) * 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
US9342557B2 (en) 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US8977600B2 (en) 2013-05-24 2015-03-10 Software AG USA Inc. System and method for continuous analytics run against a combination of static and real-time data
US9384359B2 (en) 2013-08-01 2016-07-05 Palo Alto Research Center Incorporated Information firewall
US10198292B2 (en) 2013-11-27 2019-02-05 Actian Sub Iii, Inc. Scheduling database queries based on elapsed time of queries
US20150163223A1 (en) * 2013-12-09 2015-06-11 International Business Machines Corporation Managing Resources In A Distributed Computing Environment
US9576039B2 (en) * 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
US20170132042A1 (en) * 2014-04-23 2017-05-11 Hewlett Packard Enterprise Development Lp Selecting a platform configuration for a workload
EP3259681B1 (en) * 2015-02-17 2020-10-07 Telefonaktiebolaget LM Ericsson (publ) Method and device for deciding where to execute subqueries of an analytics continuous query
US9787709B2 (en) 2015-06-17 2017-10-10 Bank Of America Corporation Detecting and analyzing operational risk in a network environment
US20170142157A1 (en) * 2015-11-13 2017-05-18 International Business Machines Corporation Optimization of cloud compliance services based on events and trends
US9760477B1 (en) * 2016-04-12 2017-09-12 Linkedin Corporation Self-healing job executor pool
CN109075994B (zh) * 2016-04-28 2022-04-05 斯诺弗雷克公司 多集群仓库
US10153941B2 (en) * 2016-05-17 2018-12-11 Microsoft Technology Licensing, Llc Distributed operational control in computing systems
US10762086B2 (en) 2016-09-01 2020-09-01 Amazon Technologies, Inc. Tracking query execution status for selectively routing queries
US10545492B2 (en) * 2016-09-26 2020-01-28 Rockwell Automation Technologies, Inc. Selective online and offline access to searchable industrial automation data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859926B1 (en) * 2000-09-14 2005-02-22 International Business Machines Corporation Apparatus and method for workload management using class shares and tiers
US9208032B1 (en) * 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones

Also Published As

Publication number Publication date
WO2018045185A1 (en) 2018-03-08
US20210049175A1 (en) 2021-02-18
US11403297B2 (en) 2022-08-02
US11461329B2 (en) 2022-10-04
US20180060393A1 (en) 2018-03-01
SG11201901511QA (en) 2019-03-28
US10762086B2 (en) 2020-09-01
US11803546B2 (en) 2023-10-31
US11461330B2 (en) 2022-10-04
US10803060B2 (en) 2020-10-13
US20180060395A1 (en) 2018-03-01
EP3507716A1 (en) 2019-07-10
US10614066B2 (en) 2020-04-07
AU2017321715A1 (en) 2019-03-21
AU2017321715B2 (en) 2020-06-18
US20180060133A1 (en) 2018-03-01
US20180060400A1 (en) 2018-03-01
US20200233869A1 (en) 2020-07-23
JP2019534496A (ja) 2019-11-28
US20180060132A1 (en) 2018-03-01
CN109643312A (zh) 2019-04-16
JP6750102B2 (ja) 2020-09-02
US20210097080A1 (en) 2021-04-01
US20180060394A1 (en) 2018-03-01

Similar Documents

Publication Publication Date Title
CN109643312B (zh) 托管查询服务
US10936589B1 (en) Capability-based query planning for heterogenous processing nodes
US11711420B2 (en) Automated management of resource attributes across network-based services
US10447772B2 (en) Managed function execution for processing data streams in real time
US11836533B2 (en) Automated reconfiguration of real time data stream processing
US10970303B1 (en) Selecting resources hosted in different networks to perform queries according to available capacity
JP6732798B2 (ja) コンピュートクラスタ内のリソースインスタンスグループの自動スケーリング
US11055352B1 (en) Engine independent query plan optimization
JP2018088293A (ja) 単一テナント及び複数テナント環境を提供するデータベースシステム
US10909114B1 (en) Predicting partitions of a database table for processing a database query
US10102230B1 (en) Rate-limiting secondary index creation for an online table
US10182104B1 (en) Automatic propagation of resource attributes in a provider network according to propagation criteria
US9185008B1 (en) Operational reporting in a computing environment
US10944814B1 (en) Independent resource scheduling for distributed data processing programs
US10601881B1 (en) Idempotent processing of data streams
Zhen-Zhong Research of Information Retrieval in the Cloud Computing Environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant