Execution Engine for Generating Reports for Measuring Effectiveness of Advertising Campaigns
First Claim
1. A computer-implemented method comprising:
- maintaining a plurality of generators, each generator configured to generate a sub-plan including instructions to generate execution plans for one or more columns of reports comprising information of an advertising campaign;
receiving, by a report execution engine, a report definition specifying one or more columns that include one or more metrics for evaluating the advertising campaign;
sending the report definition to a first generator of the plurality of generators, the first generator configured to generate execution plan for at least a column of the report definition;
generating, by the first generator, a first sub-plan for processing at least a first column of the report definition by the generator, the first generator incapable of processing a set of remaining columns of the report definition;
sending information describing the remaining columns of the report definition to a second generator for processing;
receiving a second sub-plan from the second generator, the second sub-plan for processing the remaining columns of the report definition;
generating a combined execution plan comprising the first sub-plan and the second sub-plan and an operator combining the first sub-plan and the second sub-plan;
executing the combined execution plan to generate results based on the report definition; and
sending the generated results for presentation.
2 Assignments
0 Petitions
Accused Products
Abstract
A report execution engine processes reports for evaluating advertising campaigns. The report execution engine maintains a plurality of generators, each generator including instructions to generate execution plans for one or more columns of a report. The report execution engine uses different generators for generating sub-plans for processing columns of the report. A generator generates a sub-plan for processing a column of the report and invokes other generators for generating sub-plans for remaining columns of the report. The generator receives a sub-plan for the remaining columns of the report from another generator and generates a combined execution plan based on the sub-plans. An execution plan comprises a hierarchical structure of nodes, each node representing a portion of computation of the report. The report execution engine generates the report based on the execution plan and sends the results for presentation.
28 Citations
20 Claims
-
1. A computer-implemented method comprising:
-
maintaining a plurality of generators, each generator configured to generate a sub-plan including instructions to generate execution plans for one or more columns of reports comprising information of an advertising campaign; receiving, by a report execution engine, a report definition specifying one or more columns that include one or more metrics for evaluating the advertising campaign; sending the report definition to a first generator of the plurality of generators, the first generator configured to generate execution plan for at least a column of the report definition; generating, by the first generator, a first sub-plan for processing at least a first column of the report definition by the generator, the first generator incapable of processing a set of remaining columns of the report definition; sending information describing the remaining columns of the report definition to a second generator for processing; receiving a second sub-plan from the second generator, the second sub-plan for processing the remaining columns of the report definition; generating a combined execution plan comprising the first sub-plan and the second sub-plan and an operator combining the first sub-plan and the second sub-plan; executing the combined execution plan to generate results based on the report definition; and sending the generated results for presentation.
-
-
2. The computer-implemented method of claim 1, further comprising:
-
identifying the first generator, the identifying comprising, sending the report definition to each of a series of generators from the plurality of generators until a generator returns information indicating the generator includes instructions to generate execution plan for at least a column of the report definition; and using the generator as the first generator.
-
-
3. The computer-implemented method of claim 2, further comprising:
providing information identifying the remaining columns of the report definition to one or more of the remaining generators from the plurality of generators for identifying the second generator.
-
4. The computer-implemented method of claim 1, wherein processing the remaining columns of the report definition by the second generator comprises:
-
generating, by the second generator, a sub-plan for a second column of the report definition; and providing the remaining columns other than the first and the second column to a third generator for generating a third sub-plan.
-
-
5. The computer-implemented method of claim 4, further comprising:
-
receiving, from the third generator, a third sub-plan for processing the columns of the report definition other than the first column and the second column; and generating the second sub-plan by combining the sub-plan for processing the second column with the third sub-plan.
-
-
6. The computer-implemented method of claim 1, wherein the operator for combining the first sub-plan and the second sub-plan is one of:
- a concatenate operator, a join operator, a cross product operator, or a union operator.
-
7. The computer-implemented method of claim 1, further comprising:
selecting the operator for combining the first sub-plan with the second sub-plan based on the results returned by the first sub-plan and the second sub-plan, the results comprising a first result set generated by the first sub-plan and a second result set generated by the second sub-plan.
-
8. The computer-implemented method of claim 7, further comprising:
responsive to determining that the first result set is distinct from the second result set, selecting a concatenate operator for combining the first sub-plan and the second sub-plan.
-
9. The computer-implemented method of claim 7, further comprising:
responsive to determining that the first result set and the second result set comprise partial rows, selecting a join operator for combining the first sub-plan and the second sub-plan.
-
10. The computer-implemented method of claim 9, further comprising:
responsive to determining that the report requires empty values of columns from one of the result sets, selecting an outer join operator for combining the first sub-plan and the second sub-plan.
-
11. The computer-implemented method of claim 9, further comprising:
responsive to determining that the report requires full data for columns from both the result sets, selecting an inner join operator for combining the first sub-plan and the second sub-plan.
-
12. The computer-implemented method of claim 1, further comprising:
-
receiving a new report definition using a first metric defined by the new generator and a second metric defined by an existing generator; and generating an execution plan for the new report definition based on a sub-plan generated by the new generator and a sub-plan generated by the existing generator.
-
-
13. The computer-implemented method of claim 1, wherein the metrics associated with the advertising campaign comprise one or more of:
- information describing impressions of advertisements shown to users and information describing conversions.
-
14. The computer-implemented method of claim 1, wherein the report definition specifies a column comprising information identifying advertising campaigns.
-
15. The computer-implemented method of claim 1, further comprising:
-
introducing in the first sub-plan and the second sub-plan, additional columns not specified by the report definition; and using the additional columns to combine intermediate results generated by first sub-plan with intermediate results generated by the second sub-plan.
-
-
16. A non-transitory computer readable storage medium storing instructions for:
-
maintaining a plurality of generators, each generator configured to generate execution plans for one or more columns of reports comprising information of an advertising campaign; receiving, by a report execution engine, a report definition specifying one or more columns that include one or more metrics for evaluating the advertising campaign; sending the report definition to a first generator of the plurality of generators, the first generator configured to generate execution plan for at least a column of the report definition; generating, by the first generator, a first sub-plan for processing at least a first column of the report definition by the generator, the first generator incapable of processing a set of remaining columns of the report definition; sending information describing the remaining columns of the report definition to a second generator for processing; receiving a second sub-plan from the second generator, the second sub-plan for processing the remaining columns of the report definition; generating a combined execution plan comprising the first sub-plan and the second sub-plan and an operator combining the first sub-plan and the second sub-plan; executing the combined execution plan to generate results based on the report definition; and sending the generated results for presentation.
-
-
17. The non-transitory computer readable storage medium of claim 16, further comprising:
-
identifying the first generator, the identifying comprising, sending the report definition to each of series of generators from the plurality of generators until a generator returns information indicating the generator includes instructions to generate execution plan for at least a column of the report definition; and using the generator as the first generator.
-
-
18. The non-transitory computer readable storage medium of claim 16, further comprising, wherein processing the remaining columns of the report definition by the second generator comprises:
-
generating, by the second generator, a sub-plan for a second column of the report definition; and providing the remaining columns of the report definition to a third generator for generating a third sub-plan for columns of the report definition other than the first column and the second column.
-
-
19. The non-transitory computer readable storage medium of claim 16, further comprising:
selecting the operator for combining the first sub-plan with the second sub-plan based on the results returned by the first sub-plan and the second sub-plan, the results comprising a first result set generated by the first sub-plan and a second result set generated by the second sub-plan.
-
20. A computer-implemented system comprising:
-
a computer processor; and a non-transitory computer readable storage medium storing instructions for; maintaining a plurality of generators, each generator configured to generate execution plans for one or more columns of reports comprising information of an advertising campaign; receiving, by a report execution engine, a report definition specifying one or more columns that include one or more metrics for evaluating the advertising campaign; sending the report definition to a first generator of the plurality of generators, the first generator configured to generate execution plan for at least a column of the report definition; generating, by the first generator, a first sub-plan for processing at least a first column of the report definition by the generator, the first generator incapable of processing a set of remaining columns of the report definition; sending information describing the remaining columns of the report definition to a second generator for processing; receiving a second sub-plan from the second generator, the second sub-plan for processing the remaining columns of the report definition; generating a combined execution plan comprising the first sub-plan and the second sub-plan and an operator combining the first sub-plan and the second sub-plan; executing the combined execution plan to generate results based on the report definition; and sending the generated results for presentation.
-
Specification