IP Library Granted Patent US 12,242,441
Granted Patent B1
US 12,242,441 · App. 18/162,562 · Granted Mar 4, 2025

Data lineage tracking

Inventors: Tao Feng (Foster City, CA); Menglei Sun (Mountain View, CA); Zhuoying Wang (Santa Clara, CA)
Assignee: Databricks, Inc.
G06F16/215G06F11/0793G06F16/2246G06F16/2365
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,242,441
App. No.
18/162,562
Granted
Mar 4, 2025
Kind
B1
Abstract

The present application discloses a method, system, and computer system for managing lineage data for data entities. The method includes generating lineage data, wherein generating the lineage data, and storing and indexing, in a data structure, the lineage data in association with the selected data entity. The generating the lineage data includes selecting a selected data entity, obtaining a query tree that was used to generate the selected data entity, and determining lineage data for the selected data entity based at least in part on the query tree.

Claims (66)

1. A method comprising:

executing a job on one or more workers of a compute resource, wherein executing the one or more jobs further comprises invoking one or more data entities;

detecting that a data entity in the one or more data entities is corrupt in response to determination that execution of the job has failed;

identifying a lineage data identifier associated with the data entity based on a mapping of lineage data identifiers to data entity identifiers;

accessing lineage data that is stored in association with the identified lineage data identifier, the lineage data having been generated based on a query tree that was used to generate the data entity, and the lineage data identifying a set of data entities that rely on the data entity;

identifying, based on the lineage data, one or more upstream data entities from the data entity;

determining that the one or more upstream data entities from which the data entity depends from has been corrupted; and

providing an indication of the corruption in the one or more upstream data entities or the data entity to a client device.

2. The method of claim 1 , further comprising:

in response to determining that the data entity is impacted by the corruption in the one or more upstream data entities, causing a corrective action to be performed.

3. The method of claim 2 , wherein causing the corrective action to be performed comprises:

replacing the data entity.

4. The method of claim 2 , wherein causing the corrective action to be performed comprises:

recalculating the data entity based on an updated version of the one or more upstream data entities.

5. The method of claim 1 , wherein the data entity is a table or a column of a table.

6. The method of claim 1 , further comprising:

obtaining a query that was used to create the data entity;

parsing the query to generate the query tree;

generating the data lineage for the data entity based on the query tree; and

storing the data lineage in association with the data entity.

7. The method of claim 6 , wherein generating the lineage data comprises:

traversing the query tree and extracting a set of lineage data for one or more data entities that are created in the query tree.

8. A system comprising:

one or more computer processors; and

one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the system to perform operations comprising:

executing a job on one or more workers of a compute resource, wherein executing the one or more jobs further comprises invoking one or more data entities;

detecting that a data entity in the one or more data entities is corrupt in response to determination that execution of the job has failed;

identifying a lineage data identifier associated with the data entity based on a mapping of lineage data identifiers to data entity identifiers;

accessing lineage data that is stored in association with the identified lineage data identifier, the lineage data having been generated based on a query tree that was used to generate the data entity, and the lineage data identifying a set of data entities that rely on the data entity;

identifying, based on the lineage data, one or more upstream data entities from the data entity;

determining that the one or more upstream data entities from which the data entity depends from has been corrupted; and

providing an indication of the corruption in the one or more upstream data entities or the data entity to a client device.

9. The system of claim 8 , the operations further comprising:

in response to determining that the data entity is impacted by the corruption in the one or more upstream data entities, causing a corrective action to be performed.

10. The system of claim 9 , wherein causing the corrective action to be performed comprises:

replacing the data entity.

11. The system of claim 9 , wherein causing the corrective action to be performed comprises:

recalculating the data entity based on an updated version of the one or more upstream data entities.

12. The system of claim 8 , wherein the data entity is a table or a column of a table.

13. The system of claim 8 , the operations further comprising:

obtaining a query that was used to create the data entity;

parsing the query to generate the query tree;

generating the data lineage for the data entity based on the query tree; and

storing the data lineage in association with the data entity.

14. The system of claim 13 , wherein generating the lineage data comprises:

traversing the query tree and extracting a set of lineage data for one or more data entities that are created in the query tree.

15. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of one or more computing devices, cause the one or more computing devices to perform operations comprising:

executing a job on one or more workers of a compute resource, wherein executing the one or more jobs further comprises invoking one or more data entities;

detecting that a data entity in the one or more data entities is corrupt in response to determination that execution of the job has failed;

identifying a lineage data identifier associated with the data entity based on a mapping of lineage data identifiers to data entity identifiers;

accessing lineage data that is stored in association with the identified lineage data identifier, the lineage data having been generated based on a query tree that was used to generate the data entity, and the lineage data identifying a set of data entities that rely on the data entity;

identifying, based on the lineage data, one or more upstream data entities from the data entity;

determining that the one or more upstream data entities from which the data entity depends from has been corrupted; and

providing an indication of the corruption in the one or more upstream data entities or the data entity to a client device.

16. The non-transitory computer-readable medium of claim 15 , the operations further comprising:

in response to determining that the data entity is impacted by the corruption in the one or more upstream data entities, causing a corrective action to be performed.

17. The non-transitory computer-readable medium of claim 16 , wherein causing the corrective action to be performed comprises:

replacing the data entity.

18. The non-transitory computer-readable medium of claim 16 , wherein causing the corrective action to be performed comprises:

recalculating the data entity based on an updated version of the one or more upstream data entities.

19. The non-transitory computer-readable medium of claim 15 , wherein the data entity is a table or a column of a table.

20. The non-transitory computer-readable medium of claim 15 , the operations further comprising:

obtaining a query that was used to create the data entity;

parsing the query to generate the query tree;

generating the data lineage for the data entity based on the query tree by traversing the query tree and extracting a set of lineage data for one or more data entities that are created in the query tree; and

storing the data lineage in association with the data entity.

Assignments (2)
SECURITY INTEREST Recorded Jan 6, 2025
From: DATABRICKS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069825/0419 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2023
From: FENG, TAO; SUN, MENGLEI; WANG, ZHUOYING
To: DATABRICKS, INC.
Reel/Frame 064514/0865 →
Continuity (1)
Continuation 17862158 · Jul 11, 2022
References Cited (23)
US 20030218639A1 · Lee · 2003 [cited by examiner]
US 20090182706A1 · Olston · 2009 [cited by examiner]
US 20110137922A1 · Cushing · 2011 [cited by examiner]
US 20150254295A1 · Harding · 2015 [cited by examiner]
US 20160364434A1 · Spitz · 2016 [cited by examiner]
US 20170054736A1 · Krishnamurthy · 2017 [cited by examiner]
US 20170126702A1 · Krishnamurthy · 2017 [cited by examiner]
US 20180129699A1 · Gould · 2018 [cited by examiner]
US 20180181622A1 · Deshmukh · 2018 [cited by examiner]
US 20190026358A1 · Li · 2019 [cited by applicant]
US 20200142990A1 · Freedman · 2020 [cited by examiner]
US 20200210427A1 · Dugan · 2020 [cited by examiner]
US 20200334277A1 · Doyle · 2020 [cited by examiner]
US 20200409825A1 · Balasubramanian · 2020 [cited by examiner]
US 20200409831A1 · Balasubramanian · 2020 [cited by examiner]
US 20210334254A1 · Thompson · 2021 [cited by examiner]
US 20220253783A1 · Mookherjee · 2022 [cited by applicant]
US 20220342866A1 · Kotwal · 2022 [cited by examiner]
WO WO2015087034A1 · 2015 [cited by examiner]
WO WO2020264319A1 · 2020 [cited by examiner]
United States Office Action, U.S. Appl. No. 17/862,158, filed Oct. 2, 2023, 24 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 17/862,158, filed Feb. 6, 2024, 24 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 17/862,158, filed Jun. 28, 2024, 27 pages. [cited by applicant]
Cited By (1)
US 12,493,505