Data Lineage Tool Recursive SQL Query Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data lineage systems face challenges in generating lineages in a recursive manner, requiring the entire collection of SQL queries and needing lineages for dependent tables in advance, which is technically infeasible and reduces usability and applicability in production scenarios.
Innovation Solution
A data lineage tool that utilizes the text of an SQL query to identify dependent tables and create data lineages on-the-fly, allowing for recursive building of data lineages without requiring the entire collection of SQL queries, and selectively building lineages for dependent tables without existing data lineages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data lineage systems generate lineages in a recursive manner requiring the entire collection of SQL queries and lineages for dependent tables in advance, then completeness of data lineage is improved, but device complexity and ease of operation deteriorate
Solution Approach 1:
The system performs preliminary actions by maintaining a cache of previously generated data lineages and query dependencies. When a lineage request is received, the system first checks the cache for existing lineages of dependent tables, avoiding recursive generation for already-computed dependencies. This preliminary caching approach enables complete lineage generation without requiring the entire collection of SQL queries to be processed from scratch each time.
Solution Approach 2:
The system creates copies of data lineage information and stores them in a cache structure. Instead of generating complete lineages recursively each time, the system copies and reuses previously generated lineage data for dependent tables. This copying mechanism reduces computational complexity while maintaining lineage completeness, as the cache stores reusable lineage information that can be quickly retrieved and combined.
2Reliability
If data lineage systems generate lineages in a recursive manner requiring the entire collection of SQL queries, then completeness of data lineage is improved, but productivity and ease of operation deteriorate
Solution Approach 1:
The system performs preliminary computation of data lineages and stores results in a cache. When lineage information is needed, the system retrieves pre-computed lineages from the cache rather than regenerating them recursively. This preliminary action significantly improves productivity by avoiding redundant computation while ensuring complete lineage information is available.
Solution Approach 2:
The system implements partial action by generating and caching only the specific data lineages that are actually requested or have been determined to be useful, rather than pre-computing and storing lineages for the entire collection of SQL queries. The cache stores lineage information selectively based on actual usage patterns, improving productivity by avoiding unnecessary computation while maintaining completeness for requested lineages.
3Reliability
If data lineage systems require lineages for dependent tables in advance, then completeness of data lineage is improved, but ease of operation and adaptability deteriorate
Solution Approach 1:
The system implements self-service by automatically checking the cache for existing lineage information and dynamically generating lineages only when necessary. Instead of requiring users to pre-specify all dependent tables or manage lineage generation manually, the system autonomously determines which lineages are needed, checks the cache, and generates or retrieves appropriate lineage information. This self-service approach improves ease of operation while maintaining complete lineage data.
Solution Approach 2:
The system uses feedback mechanisms by tracking which lineage information has been generated and stored in the cache, and using this information to optimize future lineage generation. The cache acts as a feedback structure that records what lineage data is available, allowing the system to quickly determine what needs to be generated versus what can be retrieved, improving both usability and operational efficiency.
Data Source
AI summary
Various embodiments are generally directed to techniques for building data lineages for queries, such as SQL queries. Some embodiments are particularly directed to a lineage tool that is able to construct data lineages in a recursive manner that uses the text of a query to identify dependent tables. In several embodiments, the data lineage tool may parse SQL queries to identify columns and dependent tables, including analyzing interdependent queries used to populate dependent tables and proceeding until the true source of data is identified. In several embodiments, the data lineage tool may utilize the relationships and dependencies to build element and table level lineages.


