System and method for querying hybrid multi data sources
First Claim
1. A method of processing a data source query, the method comprising:
- receiving the data source query at a hybrid multi data source running on a computer server;
creating a list of data sources, each data source in the list of data sources having a data source type selected from a group consisting of a relational data base, a nosql database, a flat file, an XML file, a representational state transfer (REST) web service, and a Simple Object Access Protocol (SOAP) web service;
removing data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources and data source type hints included in the data source query;
removing data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources and data source rules identifying preferred data source types based on features of the data source query;
forming one or more query plans for processing the data source query, each query plan corresponding to a data source in the list of data sources after the removings;
evaluating each of the query plans;
selecting a first query plan from the query plans based on results of the evaluating; and
performing the first query plan.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method of querying hybrid multi data sources includes receiving a query at a hybrid multi data source running on a computer server, creating a list of data sources, filtering the list of data sources based on data source hints included in the query, filtering the list of data sources based on data source rules, forming one or more query plans for processing the query, evaluating each of the query plans, selecting a first query plan from the query plans based on results of the evaluating, and performing the first query plan. Each query plan corresponds to a data source in the filtered list of data sources. In some examples, the first query plan has a lowest cost of each of the query plans. In some examples, the first query plan is based on probabilities associated with the cost of each of the query plans.
39 Citations
18 Claims
-
1. A method of processing a data source query, the method comprising:
-
receiving the data source query at a hybrid multi data source running on a computer server; creating a list of data sources, each data source in the list of data sources having a data source type selected from a group consisting of a relational data base, a nosql database, a flat file, an XML file, a representational state transfer (REST) web service, and a Simple Object Access Protocol (SOAP) web service; removing data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources and data source type hints included in the data source query; removing data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources and data source rules identifying preferred data source types based on features of the data source query; forming one or more query plans for processing the data source query, each query plan corresponding to a data source in the list of data sources after the removings; evaluating each of the query plans; selecting a first query plan from the query plans based on results of the evaluating; and performing the first query plan. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An application server comprising:
-
memory; and one or more processors coupled to the memory; wherein the application server hosts a hybrid multi data source comprising; a hint resolver; a rule evaluator coupled to the hint resolver; and a federated query engine coupled to the hint resolver and the rule evaluator; wherein; the hybrid multi data source is configured to; receive a query; and create a list of data sources coupled to the hybrid multi data source, each data source in the list of data sources having a data source type selected from a group consisting of a relational data base, a nosql database, a flat file, an XML file, a representational state transfer (REST) web service, and a Simple Object Access Protocol (SOAP) web service; the hint resolver is configured to; receive the list of data sources from the hybrid multi data source; and remove data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources and data source type hints included in the query; the rule evaluator is configured to; receive the list of data sources after the removings from the hybrid multi data source or the hint resolver; receive the query from the hybrid multi data source; and remove data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources after the removings and data source rules identifying preferred data source types based on features of the data source query; the federated query engine is configured to; receive the filtered list of data sources from the hint resolver or the rule evaluator; receive the query from the hybrid multi data source; form one or more query plans for processing the query, each query plan corresponding to a data source in the filtered list of data sources; evaluate each of the query plans to determine a respective estimated cost to perform each of the query plans; select a query plan from the query plans based on each respective estimated cost; and perform the selected query plan. - View Dependent Claims (14, 15)
-
-
16. A non-transitory machine-readable medium comprising a first plurality of machine-readable instructions which when executed by one or more processors associated with an application server are adapted to cause the one or more processors to perform a method comprising:
-
receiving a data query at a hybrid multi data source running on the application server; creating a list of data sources coupled to the hybrid multi data source, each data source in the list of data sources having a data source type selected from a group consisting of a relational data base, a nosql database, a flat file, an XML file, a representational state transfer (REST) web service, and a Simple Object Access Protocol (SOAP) web service; removing data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources and data source type hints included in the data query; removing data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources and data source rules identifying preferred data source types based on features of the data query; forming one or more query plans for processing the data query, each query plan corresponding to a data source in the list of data sources after the removings; evaluating each of the query plans to determine a respective estimated query complexity for each of the query plans; selecting a query plan from the query plans based on each respective estimated query complexity; and performing the selected query plan. - View Dependent Claims (17, 18)
-
Specification