IDENTIFYING COMPONENTS TO OBTAIN AND PROCESS DATA ACCORDING TO A QUERY
A query coordinator can receive and parse a query. Based on parsing the query, the query coordinator can identify one or more components of a first data processing system to obtain and process data according to the query. The query coordinator can define a query processing scheme based on identifying the one or more components and provide the query processing scheme to a second data processing system. Based on providing the query processing scheme, the query coordinator can obtain an output of the second data processing system. The query coordinator can identify a second query based on the output and provide the second query to the one or more components.
1 . A method, comprising:
receiving, at a query coordinator, a first query identifying a set of data to be processed and a manner of processing the set of data;
parsing at least one of the first query or metadata associated with the first query to identify one or more components of a first data processing system, of a plurality of data processing systems, to obtain and process at least a first portion of the set of data according to the first query, wherein the set of data is accessible by each of the plurality of data processing systems;
defining a query processing scheme indicating that the one or more components are identified to obtain and process the at least a first portion of the set of data according to the first query;
providing the query processing scheme to a second data processing system of the plurality of data processing systems;
receiving an output of the second data processing system based on providing the query processing scheme to the second data processing system;
generating a second query to be obtained and processed by the one or more components based on the query processing scheme; and
providing the second query to the one or more components.
2 . The method of claim 1 , further comprising:
identifying the set of data based on the first query; and
identifying the plurality of data processing systems based on the set of data being accessible by each of the plurality of data processing systems.
3 . The method of claim 1 , further comprising:
translating the first query to obtain a translated first query,
wherein defining the query processing scheme comprises:
defining the query processing scheme based on the translated first query.
4 . The method of claim 1 , wherein the query processing scheme further indicates that the second data processing system is identified to obtain and process at least a second portion of the set of data according to the first query.
5 . The method of claim 1 , further comprising:
obtaining first query results from the one or more components,
wherein the query processing scheme further indicates that the second data processing system is identified to obtain and process at least a second portion of the set of data according to the first query, wherein the second data processing system obtains and processes the at least a second portion of the set of data according to the first query to obtain second query results, wherein at least one of the first data processing system or the second data processing system performs a join of the first query results and the second query results.
6 . The method of claim 1 , wherein the output comprises one or more optimizations to the first query, wherein generating the second query comprises:
modifying the first query based on the one or more optimizations to the first query to identify the second query; or
generating the second query based on the one or more optimizations to the first query.
7 . The method of claim 1 , wherein the one or more components comprise at least one of an indexer or a search head.
8 . The method of claim 1 , wherein the one or more components comprise at least one of an indexer or a search head, wherein identifying the one or more components is based on component prioritization data, and wherein the component prioritization data indicates that a priority of at least one of the indexer or a component of the second data processing system is greater as compared to a priority of the search head.
9 . The method of claim 1 , further comprising:
identifying the one or more components based on at least one of a command, a function, or an expression of the first query.
10 . The method of claim 1 , further comprising:
identifying the one or more components based on a cost based optimization problem.
11 . The method of claim 1 , further comprising:
obtaining a catalog, wherein the catalog maps one or more first portions of a query according to a first query language interpretable by the first data processing system to one or more second portions of a query according to a second query language interpretable by the second data processing system; and
identifying the one or more components based on the catalog.
12 . The method of claim 1 , further comprising:
determining the first query corresponds to an index; and
identifying the one or more components based on determining the first query corresponds to the index.
13 . The method of claim 1 , further comprising:
identifying the one or more components based on at least one of:
a query processing time associated with the one or more components and the first query;
a query translation time associated with the first query;
a resource utilization associated with the first query; or
an amount of data associated with the first query.
14 . The method of claim 1 , further comprising:
determining one or more query parameters, wherein the one or more query parameters comprise at least one of:
a query processing time associated with the one or more components and the first query;
a query translation time associated with the first query;
a resource utilization associated with the first query; or
an amount of data associated with the first query; and
identifying the one or more components based on the one or more query parameters.
15 . The method of claim 1 , further comprising:
identifying the one or more components based on determining the first query comprises a filter that reduces the set of data by an amount that matches or exceeds a threshold.
16 . The method of claim 1 , further comprising:
identifying the one or more components based on identifying that the first query is associated with at least one of batch data or streaming data.
17 . The method of claim 1 , further comprising:
identifying the one or more components based on identifying that the first query is associated with one or more distributable commands.
18 . The method of claim 1 , wherein each of the plurality of data processing systems can access the set of data as provided by a same data source or as stored in a same data store.
19 . A query coordinator comprising:
a data store; and
one or more processors configured to:
receive a first query identifying a set of data to be processed and a manner of processing the set of data;
parse at least one of the first query or metadata associated with the first query to identify one or more components of a first data processing system, of a plurality of data processing systems, to obtain and process at least a first portion of the set of data according to the first query, wherein the set of data is accessible by each of the plurality of data processing systems;
define a query processing scheme indicating that the one or more components are identified to obtain and process the at least a first portion of the set of data according to the first query; and
provide the query processing scheme to a second data processing system of the plurality of data processing systems,
wherein a data processing system interface is configured to receive an output of the second data processing system based on providing the query processing scheme to the second data processing system, generate a second query to be obtained and processed by the one or more components based on the query processing scheme, and provide the second query to the one or more components.
20 . Non-transitory computer-readable media including computer-executable instructions that, when executed by a query coordinator, cause the query coordinator to:
receive a first query identifying a set of data to be processed and a manner of processing the set of data;
parse at least one of the first query or metadata associated with the first query to identify one or more components of a first data processing system, of a plurality of data processing systems, to obtain and process at least a first portion of the set of data according to the first query, wherein the set of data is accessible by each of the plurality of data processing systems;
define a query processing scheme indicating that the one or more components are identified to obtain and process the at least a first portion of the set of data according to the first query; and
provide the query processing scheme to a second data processing system of the plurality of data processing systems,
wherein a data processing system interface is configured to receive an output of the second data processing system based on providing the query processing scheme to the second data processing system, generate a second query to be obtained and processed by the one or more components based on the query processing scheme, and provide the second query to the one or more components.