Report Execution Engine Using Recursive Column Generators
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for generating reports on advertising campaign effectiveness are complex, expensive, and result in slow performance due to the need for expert knowledge in drafting database queries, making it difficult for advertisers to evaluate their campaigns efficiently.
Innovation Solution
A report execution engine that maintains multiple generators for creating execution plans for report columns, allowing for the recursive generation of sub-plans and combined execution plans to process report definitions, enabling efficient and rapid development of reports without requiring extensive modifications to existing code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If conventional techniques are used to generate reports, then reports can be generated, but the process is complex and expensive requiring expert knowledge
Solution Approach 1:
The system segments the report generation process into multiple independent query components, each handled by a separate query generator. Instead of requiring a single complex expert-crafted query, the system divides the query into smaller segments that can be independently generated and combined, reducing the complexity burden on any single component and making the overall process more accessible to non-experts.
Solution Approach 2:
The system introduces an intermediary layer (the query generation system with multiple specialized generators) that translates high-level report requirements into detailed SQL queries. This intermediary handles the complexity of query construction, allowing users to specify report needs without directly writing complex SQL, thus reducing the expertise required while maintaining query effectiveness.
2Manufacturing precision
If expert knowledge is used to draft complex queries, then accurate reports can be generated, but the process is slow and expensive
Solution Approach 1:
The query generation process is segmented into multiple parallel generators that work simultaneously on different aspects of the query. This parallelization maintains accuracy by having specialized generators for different query components while significantly improving speed by eliminating the sequential dependency of traditional expert-driven query drafting.
Solution Approach 2:
The system implements self-service query generation where the query generators automatically create optimized queries based on report requirements without requiring expert intervention. The generators autonomously handle query construction, optimization, and combination, maintaining high accuracy through built-in logic while dramatically improving productivity by eliminating manual expert processing time.
3Loss of information
If monolithic queries are used, then all report data can be retrieved, but performance is slow
Solution Approach 1:
The monolithic query is segmented into multiple smaller query components generated by different query generators. Each generator produces a focused query for a specific aspect of the report, which can be executed independently and in parallel. This segmentation maintains data completeness by ensuring all necessary data points are covered across the segments while improving speed through parallel execution and reduced query complexity.
Solution Approach 2:
Instead of retrieving all report data through a single comprehensive query, the system uses multiple partial queries that each retrieve specific subsets of data. This partial action approach allows for optimized, targeted data retrieval that is faster than a monolithic query while collectively providing complete report data when the partial results are combined.
Data Source
AI summary
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.


