Data Lineage Tool Recursive SQL Query Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecompleteness of data lineageVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improvecompleteness of data lineageVSAvoidlineage generation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #16Partial or excessive action

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

Engineering Contradiction:
Improvecompleteness of data lineageVSAvoidusability
Core Design Contradiction:
ReliabilityVSEase of operation

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20240256537A1Techniques for building data lineages for queries
Publication Date: 2024.08.01 CAPITAL ONE SERVICES LLC
  • US20240256537A1 patent drawing
  • US20240256537A1 patent drawing
  • US20240256537A1 patent drawing

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.