CPC G06F 16/283 (2019.01) [G06F 16/24534 (2019.01); G06F 16/2457 (2019.01); G06F 16/248 (2019.01); G06F 16/256 (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 execution plan for the query, a processing complexity of the query, wherein the processing complexity of the query indicates a quantity of computing resources required to execute the query;
determine, based on the processing complexity of the query and for each of a plurality of virtual warehouses, a plurality of predicted processing times, wherein each predicted processing time of the plurality of predicted processing times predicts how long a given virtual warehouse of the plurality of virtual warehouses will take to execute the query;
select, based on the plurality of predicted processing times, a first virtual warehouse, of the plurality of virtual warehouses, to execute the query, wherein each of the plurality of virtual warehouses comprises a respective set of computing resources; and
cause the first virtual warehouse to execute the query.
|