Server-Side Cross-Model Filtering for Data Queries
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face inefficiencies in processing queries that filter across unlinked data models, consuming substantial client resources and network bandwidth due to the need for explicit association and data fetching between dimensions.
Innovation Solution
Implementing a system architecture where associations between dimensions of different data models are established, allowing the majority of query execution to occur on the backend, thereby reducing client resource usage and optimizing network bandwidth by generating calculated dimensions and performing joins on these dimensions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the client fetches tuples from the first data model and queries the second data model based on each fetched tuple, then the query can filter across unlinked data models, but the client processing resources and network bandwidth are consumed substantially
Solution Approach 1:
The server acts as an intermediary that receives the filter condition from the client, translates it into a query against the first data model, fetches the relevant tuples, and then uses these tuples to query the second data model. This intermediary approach allows cross-model filtering while moving the heavy lifting to the server, reducing client resource consumption.
Solution Approach 2:
Instead of the client performing the filtering operation by fetching and processing data locally, the inversion occurs where the server performs the filtering operation. The client sends the filter condition to the server, and the server handles the complex cross-model query execution, reversing the traditional client-side processing paradigm.
2Adaptability or versatility
If the client fetches tuples from the first data model and queries the second data model based on each fetched tuple, then the query can filter across unlinked data models, but the network bandwidth is consumed substantially
Solution Approach 1:
The server serves as an intermediary that manages the data retrieval process. It receives the filter condition, translates it into appropriate queries against the first data model, and only transfers the necessary filtered tuples to the server for further processing against the second data model. This reduces the overall network bandwidth consumption compared to client-side processing.
Solution Approach 2:
The server performs preliminary filtering action by first querying the first data model with the provided filter condition and obtaining only the relevant tuples before proceeding to query the second data model. This preliminary action reduces the amount of data that needs to be transferred and processed over the network.
3Productivity
If associations between dimensions of different data models are established, then query execution can occur on the backend, but the system complexity increases
Solution Approach 1:
The server implements a universal query processing mechanism that can handle filters across any combination of data models and dimensions. The system maintains a flexible association framework that allows dimensions from different data models to be linked, enabling the server to execute complex queries efficiently without requiring separate specialized processing for each scenario.
Data Source
AI summary
A system includes reception of a filter on a first dimension of a first data model, determination of an association between a second dimension of the first data model and a first dimension of a second data model, generation of a calculated dimension based on the second dimension, the rows of the calculated dimension being identical to the rows of the first dimension, application of the filter to the rows of the calculated dimension to generate filtered rows of the calculated dimension, execution of an inner join between the filtered rows of the calculated dimension and a fact table of the second data model to generate a result table including one or more measure values of the second data model, and generation of a visualization including the result table.


