| CPC G06F 16/24575 (2019.01) [G06F 9/5005 (2013.01); G06F 16/256 (2019.01); G06N 20/00 (2019.01)] | 20 Claims |

|
1. A computing device comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the computing device to:
receive, from a user device, a request to execute a query on at least one of a plurality of data warehouses;
identify an execution plan for the query by determining one or more sub-queries to be executed with respect to one or more of the plurality of data warehouses;
predict, based on the query and the execution plan, a processing complexity of the query;
identify a plurality of virtual warehouses, wherein each of the plurality of virtual warehouses comprises a respective set of computing resources configured to:
execute one or more queries with respect to at least a portion of the plurality of data warehouses;
collect results from the one or more queries; and
provide, to the user device, access to the collected results;
based on the processing complexity of the query and processing capabilities of the plurality of virtual warehouses, instantiate a new virtual warehouse different from the plurality of virtual warehouses; and
cause the new virtual warehouse to execute the query.
|