IP Library Granted Patent US 11,194,845
Granted Patent B2
US 11,194,845 · App. 16/389,389 · Granted Dec 7, 2021

Interactive lineage analyzer for data assets

Inventors: Tyler James-Buker Doyle (Seattle, WA); Graeme Riley Britz (Seattle, WA); Jonathan Joseph Bryak (Bothell, WA); Cassius David Butcher (Seattle, WA); Jun Ho Kim (Sammamish, WA); Jiyoung Oh (San Carlos, CA)
Assignee: Tableau Software, LLC
G06F16/289G06F16/245G06F16/26
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 11,194,845
App. No.
16/389,389
Granted
Dec 7, 2021
Kind
B2
Abstract

Embodiments are directed to managing a data model that includes data objects associated with layers of the data model may be provided. A lineage model that includes lineage objects that has one or more lineage objects associated with a layer may be provided. A lineage object associated with a layer may be activated. A first portion data objects may be determined based on the activated lineage object. An anchor object may be determined from the first portion of data objects. A search of the data model may be employed to provide dependency information based on a position of the anchor data object in the data model. A second portion of data objects may be determined based on the dependency information. A report that includes a list of the second portion of data objects, the dependency information, or the like, may be provided.

Claims (141)

1. A method for managing data using a computer that includes one or more processors, wherein each step of the method is performed by the one or more processors, comprising:

providing a data model that includes a plurality of data objects that are associated with one or more layers of the data model;

providing a lineage model that includes one or more lineage objects, wherein the one or more lineage objects are each associated with one of the one or more data model layers;

activating one of the one or more lineage objects based on an association with a data model layer;

determining a first portion of the plurality of data objects based on the data model and the activated lineage object, wherein the first portion of data objects and the activated lineage object are associated with a same layer;

determining an anchor object from the first portion of data objects based on one or more characteristics of the first portion of data objects;

employing a search of the data model to provide dependency information based on using a position of the anchor data object in the data model to perform further actions, including:

determining one or more attributes that are associated with the anchor data object;

searching the data model based on the one or more attributes and one or more other attributes that are associated with the plurality of data objects in the data model; and

providing the dependency information based on one or more associations or the one or more attributes and the one or more other attributes; and

determining a second portion of the plurality data objects based on the dependency information;

employing the geolocation information to select one or more features, including a time zone, spoken language, currency or calendar format, wherein the one or more selected features are presented in or more of a user interface, a report, an internal process, or a database; and

presenting a list of the second portion of data objects or the dependency information to a user, wherein the presentation includes the one or more selected features in the one or more of the user interface, the report, the internal process or the database.

2. The method of claim 1 , further comprising:

in response to a modification to one or more of the plurality of data objects, performing further actions, including:

determining the activated lineage object based on the one or more modified data objects;

determining the anchor data object based on the one or more modified data objects;

determining one or more users that are associated the modification based on the dependency information, wherein each user is associated with one or more data objects that are impacted by the modification; and

providing one or more notifications to each user based on each impacted data object associated with the user.

3. The method of claim 1 , further comprising:

instantiating a display engine to perform actions, including:

generating a graphical user interface (GUI) that includes a lineage panel and an object panel;

displaying, in the lineage panel, the lineage model and the one or more lineage objects;

displaying, in the object panel, the first portion of the data objects; and

determining another activated lineage object based on one or more inputs to the lineage panel; and

automatically determining another portion of the plurality of data objects based on the other activated lineage object, wherein the other portion of the data objects is displayed in the object panel.

4. The method of claim 1 , wherein determining the second portion of the data objects, further comprises, modifying the second portion of data objects based on one or more filters, wherein the one or more filters are displayed in the lineage panel.

5. The method of claim 1 , further comprising:

providing one or more data object classes based on the data model, wherein the one or more data object classes include one or more of databases, tables, data sources, workbooks, or sheets; and

associating each layer of the data model with one of the one or more data object classes, wherein each data object is associated with a data object class that corresponds with a data object class that is associated with the layer.

6. The method of claim 1 , wherein providing the dependency information, further comprises:

generating query information based on the data model and the anchor data object; and

employing the query information to execute a query that provides the dependency information.

7. A computer-readable non-transitory storage media that includes instructions for managing data, wherein execution of the instructions by one or more processors, performs actions, comprising:

providing a data model that includes a plurality of data objects that are associated with one or more layers of the data model;

providing a lineage model that includes one or more lineage objects, wherein the one or more lineage objects are each associated with one of the one or more data model layers;

activating one of the one or more lineage objects based on an association with a data model layer;

determining a first portion of the plurality of data objects based on the data model and the activated lineage object, wherein the first portion of data objects and the activated lineage object are associated with a same layer;

determining an anchor object from the first portion of data objects based on one or more characteristics of the first portion of data objects;

employing a search of the data model to provide dependency information based on using a position of the anchor data object in the data model to perform further actions, including:

determining one or more attributes that are associated with the anchor data object;

searching the data model based on the one or more attributes and one or more other attributes that are associated with the plurality of data objects in the data model; and

providing the dependency information based on one or more associations or the one or more attributes and the one or more other attributes; and

determining a second portion of the plurality data objects based on the dependency information;

employing the geolocation information to select one or more features, including a time zone, spoken language, currency or calendar format, wherein the one or more selected features are presented in or more of a user interface, a report, an internal process, or a database; and

presenting a list of the second portion of data objects or the dependency information to a user, wherein the presentation includes the one or more selected features in the one or more of the user interface, the report, the internal process or the database.

8. The computer-readable non-transitory storage media of claim 7 , further comprising:

in response to a modification to one or more of the plurality of data objects, performing further actions, including:

determining the activated lineage object based on the one or more modified data objects;

determining the anchor data object based on the one or more modified data objects;

determining one or more users that are associated the modification based on the dependency information, wherein each user is associated with one or more data objects that are impacted by the modification; and

providing one or more notifications to each user based on each impacted data object associated with the user.

9. The computer-readable non-transitory storage media of claim 7 , further comprising:

instantiating a display engine to perform actions, including:

generating a graphical user interface (GUI) that includes a lineage panel and an object panel;

displaying, in the lineage panel, the lineage model and the one or more lineage objects;

displaying, in the object panel, the first portion of the data objects; and

determining another activated lineage object based on one or more inputs to the lineage panel; and

automatically determining another portion of the plurality of data objects based on the other activated lineage object, wherein the other portion of the data objects is displayed in the object panel.

10. The computer-readable non-transitory storage media of claim 7 , wherein determining the second portion of the data objects, further comprises, modifying the second portion of data objects based on one or more filters, wherein the one or more filters are displayed in the lineage panel.

11. The computer-readable non-transitory storage media of claim 7 , further comprising:

providing one or more data object classes based on the data model, wherein the one or more data object classes include one or more of databases, tables, data sources, workbooks, or sheets; and

associating each layer of the data model with one of the one or more data object classes, wherein each data object is associated with a data object class that corresponds with a data object class that is associated with the layer.

12. The computer-readable non-transitory storage media of claim 7 , wherein providing the dependency information, further comprises:

generating query information based on the data model and the anchor data object; and

employing the query information to execute a query that provides the dependency information.

13. A system for managing data:

a network computer, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that perform actions, including:

providing a data model that includes a plurality of data objects that are associated with one or more layers of the data model;

providing a lineage model that includes one or more lineage objects, wherein the one or more lineage objects are each associated with one of the one or more data model layers;

activating one of the one or more lineage objects based on an association with a data model layer;

determining a first portion of the plurality of data objects based on the data model and the activated lineage object, wherein the first portion of data objects and the activated lineage object are associated with a same layer;

determining an anchor object from the first portion of data objects based on one or more characteristics of the first portion of data objects;

employing a search of the data model to provide dependency information based on using a position of the anchor data object in the data model to perform further actions, including:

determining one or more attributes that are associated with the anchor data object;

searching the data model based on the one or more attributes and one or more other attributes that are associated with the plurality of data objects in the data model; and

providing the dependency information based on one or more associations or the one or more attributes and the one or more other attributes; and

determining a second portion of the plurality data objects based on the dependency information;

employing the geolocation information to select one or more features, including a time zone, spoken language, currency or calendar format, wherein the one or more selected features are presented in or more of a user interface, a report, an internal process, or a database; and

presenting a list of the second portion of data objects or the dependency information to a user, wherein the presentation includes the one or more selected features in the one or more of the user interface, the report, the internal process or the database; and

a client computer, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that perform actions, including:

receiving the list.

14. The system of claim 13 , wherein the one or more processors of the network computer execute instructions that perform actions, further comprising:

in response to a modification to one or more of the plurality of data objects, performing further actions, including:

determining the activated lineage object based on the one or more modified data objects;

determining the anchor data object based on the one or more modified data objects;

determining one or more users that are associated the modification based on the dependency information, wherein each user is associated with one or more data objects that are impacted by the modification; and

providing one or more notifications to each user based on each impacted data object associated with the user.

15. The system of claim 13 , wherein the one or more processors of the network computer execute instructions that perform actions, further comprising:

instantiating a display engine to perform actions, including:

generating a graphical user interface (GUI) that includes a lineage panel and an object panel;

displaying, in the lineage panel, the lineage model and the one or more lineage objects;

displaying, in the object panel, the first portion of the data objects; and

determining another activated lineage object based on one or more inputs to the lineage panel; and

automatically determining another portion of the plurality of data objects based on the other activated lineage object, wherein the other portion of the data objects is displayed in the object panel.

16. The system of claim 13 , wherein determining the second portion of the data objects, further comprises, modifying the second portion of data objects based on one or more filters, wherein the one or more filters are displayed in the lineage panel.

17. The system of claim 13 , wherein the one or more processors of the network computer execute instructions that perform actions, further comprising:

providing one or more data object classes based on the data model, wherein the one or more data object classes include one or more of databases, tables, data sources, workbooks, or sheets; and

associating each layer of the data model with one of the one or more data object classes, wherein each data object is associated with a data object class that corresponds with a data object class that is associated with the layer.

18. The system of claim 13 , wherein providing the dependency information, further comprises:

generating query information based on the data model and the anchor data object; and

employing the query information to execute a query that provides the dependency information.

19. A network computer for managing data, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that perform actions, including:

providing a data model that includes a plurality of data objects that are associated with one or more layers of the data model;

providing a lineage model that includes one or more lineage objects, wherein the one or more lineage objects are each associated with one of the one or more data model layers;

activating one of the one or more lineage objects based on an association with a data model layer;

determining a first portion of the plurality of data objects based on the data model and the activated lineage object, wherein the first portion of data objects and the activated lineage object are associated with a same layer;

determining an anchor object from the first portion of data objects based on one or more characteristics of the first portion of data objects;

employing a search of the data model to provide dependency information based on using a position of the anchor data object in the data model to perform further actions, including:

determining one or more attributes that are associated with the anchor data object;

searching the data model based on the one or more attributes and one or more other attributes that are associated with the plurality of data objects in the data model; and

providing the dependency information based on one or more associations or the one or more attributes and the one or more other attributes; and

determining a second portion of the plurality data objects based on the dependency information; and

employing the geolocation information to select one or more features, including a time zone, spoken language, currency or calendar format, wherein the one or more selected features are presented in or more of a user interface, a report, an internal process, or a database; and

presenting a list of the second portion of data objects or the dependency information to a user, wherein the presentation includes the one or more selected features in the one or more of the user interface, the report, the internal process or the database.

20. The network computer of claim 19 , wherein the one or more processors execute instructions that perform actions, further comprising:

in response to a modification to one or more of the plurality of data objects, performing further actions, including:

determining the activated lineage object based on the one or more modified data objects;

determining the anchor data object based on the one or more modified data objects;

determining one or more users that are associated the modification based on the dependency information, wherein each user is associated with one or more data objects that are impacted by the modification; and

providing one or more notifications to each user based on each impacted data object associated with the user.

21. The network computer of claim 19 , wherein the one or more processors execute instructions that perform actions, further comprising:

instantiating a display engine to perform actions, including:

generating a graphical user interface (GUI) that includes a lineage panel and an object panel;

displaying, in the lineage panel, the lineage model and the one or more lineage objects;

displaying, in the object panel, the first portion of the data objects; and

determining another activated lineage object based on one or more inputs to the lineage panel; and

automatically determining another portion of the plurality of data objects based on the other activated lineage object, wherein the other portion of the data objects is displayed in the object panel.

22. The network computer of claim 19 , wherein determining the second portion of the data objects, further comprises, modifying the second portion of data objects based on one or more filters, wherein the one or more filters are displayed in the lineage panel.

23. The network computer of claim 19 , wherein the one or more processors execute instructions that perform actions, further comprising:

providing one or more data object classes based on the data model, wherein the one or more data object classes include one or more of databases, tables, data sources, workbooks, or sheets; and

associating each layer of the data model with one of the one or more data object classes, wherein each data object is associated with a data object class that corresponds with a data object class that is associated with the layer.

24. The network computer of claim 19 , wherein providing the dependency information, further comprises:

generating query information based on the data model and the anchor data object; and

employing the query information to execute a query that provides the dependency information.

Assignments (2)
CHANGE OF NAME Recorded Feb 22, 2021
From: TABLEAU SOFTWARE, INC.
To: TABLEAU SOFTWARE, LLC
Reel/Frame 055361/0073 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2019
From: DOYLE, TYLER JAMES-BUKER; BRITZ, GRAEME RILEY; BRYAK, JONATHAN JOSEPH; BUTCHER, CASSIUS DAVID; KIM, JUN HO; OH, JIYOUNG
To: TABLEAU SOFTWARE, INC.
Reel/Frame 048940/0357 →
Continuity (1)
Related Publication 20200334277A1 · Oct 22, 2020