System and method for efficient date retrieval and processing
First Claim
1. A computer-implemented system for retrieval and processing of a data set from one or more data sources comprising:
- a query structure assembly module for defining a query structure based upon a plurality of query assembly rules and a desired data set, wherein the plurality of query assembly rules are being used by the query structure assembly module to evaluate the desired data set;
a syntax assembly module for defining at least one query language statement based upon the defined query structure;
a process optimization module for evaluating processing options based upon a database schema associated with the data source, the process optimization module including an intermediate data processing method module for evaluating a plurality of methods for generating intermediate data sets within the data source(s) to determine a method for generating intermediate data sets within the data source(s) for calculating the desired data result set; and
whereby at least one query language statement is assembled and run against the data source(s) to return the desired data result set.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method for efficient data retrieval and processing in an online analytical processing system, a reporting system, a business intelligence system, or a data mining system. The system provides for retrieval and processing of a data result set from a plurality of data sources. The system includes a query structure assembly module, a syntax assembly module, and a process optimization module. The query structure assembly module defines a query structure based upon query assembly rules and a desired data set (such as the set of data for a particular OLAP report). The syntax assembly module defines one or more query language statements based upon the defined query structure. The process optimization module evaluates processing options based upon a database schema associated with the data sources. One or more query language statements may be assembled by the system and run against the data sources to return the desired data result set. A method and medium having processor readable code therein are also described.
-
Citations
23 Claims
-
1. A computer-implemented system for retrieval and processing of a data set from one or more data sources comprising:
-
a query structure assembly module for defining a query structure based upon a plurality of query assembly rules and a desired data set, wherein the plurality of query assembly rules are being used by the query structure assembly module to evaluate the desired data set; a syntax assembly module for defining at least one query language statement based upon the defined query structure; a process optimization module for evaluating processing options based upon a database schema associated with the data source, the process optimization module including an intermediate data processing method module for evaluating a plurality of methods for generating intermediate data sets within the data source(s) to determine a method for generating intermediate data sets within the data source(s) for calculating the desired data result set; and whereby at least one query language statement is assembled and run against the data source(s) to return the desired data result set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-implemented method of generating a query language statement to be run against one or more data sources, comprising the steps of:
-
generating a query structure based upon a database schema associated with the data source, query assembly rules, and a desired data result set, the query assembly rules being used to evaluate the desired data set; generating query language syntax based upon the query structure for returning the desired data result set from the data source(s); evaluating a plurality of query assembly rules, syntax descriptions, or syntax patterns for process optimization; evaluating a plurality of methods for generating intermediate data sets; and returning a method for generating intermediate data sets. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A medium having a processor readable program code embodied therein for retrieving and processing data from one or more data sources comprising:
-
code for causing the processor to evaluate a plurality of sets of tables within the data source(s) for generating a desired data result set; code for causing the processor to evaluate at least one intermediate data set for reusability in generating the desired data result set; code for causing the processor to evaluate a plurality of methods for generating intermediate data sets for use in generating the desired data result set; code for causing the processor to evaluate a plurality of join paths used for joining tables to return the desired data result set; and code for causing the processor to assemble at least one query language statement based upon the query structure and the evaluations of the plurality of sets of tables, the at least one intermediate data set, the plurality of methods for generating intermediate data sets, and the plurality of join paths. - View Dependent Claims (18)
-
-
19. A computer-implemented system for constructing a structured query language statement to be run against at least one database, comprising:
-
a query structure assembly module for constructing a query structure based upon an evaluation of a desired data set by at least one query assembly rule; a syntax assembly module for defining at least one query language statement based upon the constructed query structure; and a process optimization module for evaluating the construction of the query structure and the defining of the at least one query language statement, the evaluation occurring during the construction of the query structure and/or during the defining of the at least one query statement, the process optimization module serving to evaluate a plurality of methods for generating intermediate data sets, and returning a method for generating intermediate data sets.
-
-
20. A computer-implemented system for retrieval and processing of a data set from one or more data sources comprising:
-
a query structure assembly module for defining a query structure based upon a plurality of query assembly rules and a desired data set, the query assembly rules being used by the query structure assembly module to evaluate the desired data set; a syntax assembly module for defining at least one query language statement based upon the defined query structure; a process optimization module for evaluating processing options based upon a database schema associated with the data source, the process optimization module including an intermediate data processing method module for evaluating a plurality of methods for generating intermediate data sets within the data source(s); whereby at least one query language statement is assembled and run against the data source(s) to return the desired data set; and wherein the intermediate data processing method module determines whether creation of a permanent table, temporary table, view, derived table, or sub-query is the most efficient method for handling intermediate data calculations.
-
-
21. A computer-implemented method of generating a query language statement to be run against one or more data sources, comprising the steps of:
-
generating a query structure based upon a database schema associated with the data source, query assembly rules, and a desired data result set, the query assembly rules being used to evaluate the desired data set; generating query language syntax based upon the query structure for returning the desired data result set from the data source(s); evaluating a plurality of query assembly rules, syntax descriptions, or syntax patterns for process optimization; evaluating a plurality of methods for generating intermediate data sets; and wherein the step of evaluating a plurality of methods for generating intermediate data sets comprises determining whether creation of a permanent table, temporary table, view, derived table, or sub-query is the most efficient method for handling intermediate data calculations, and returning the most efficient method for handling intermediate data calculations.
-
-
22. A medium having a processor readable program code embodied therein for retrieving and processing data from one or more data sources comprising:
-
code for causing the processor to evaluate a plurality of sets of tables within the data source(s) for generating a desired data result set; code for causing the processor to evaluate at least one intermediate data set for reusability in generating the desired data result set; code for causing the processor to evaluate a plurality of methods for generating intermediate data sets for use in generating the desired data result set; code for causing the processor to evaluate a plurality of join paths used for joining tables to return the desired data result set; code for causing the processor to assemble at least one query language statement based upon the query structure and the evaluations of the plurality of sets of tables, the at least one intermediate data set, the plurality of methods for generating intermediate data sets, and the plurality of join paths; and code for determining whether creation of a permanent table, temporary table, view, derived table, or sub-query is the most efficient method for handling intermediate data calculations.
-
-
23. A computer-implemented system for constructing a structured query language statement to be run against at least one database, comprising:
-
a query structure assembly module for constructing a query structure based upon an evaluation of a desired data set by at least one query assembly rule; a syntax assembly module for defining at least one query language statement based upon the constructed query structure; a process optimization module for evaluating the construction of the query structure and the defining of the at least one query language statement, the evaluation occurring during the construction of the query structure and/or during the defining of the at least one query statement, the process optimization module serving to evaluate a plurality of methods for generating intermediate data sets; and wherein the process optimization module'"'"'s evaluation of a plurality of methods for generating intermediate data sets comprises determining whether creation of a permanent table, temporary table, view, derived table, or sub-query is the most efficient method for handling intermediate data calculations, and returning the most efficient method for handing intermediate data calculations.
-
Specification