IP Library Granted Patent US 11,429,668
Granted Patent B2
US 11,429,668 · App. 17/122,846 · Granted Aug 30, 2022

Methods and systems for multidimensional analysis of interconnected data sets stored in a graph database

Inventors: Matthew Shore (Belmont, CA); Huned Botee (San Francisco, CA); Joe Kuo (Redwood City, CA); Suresh Balasubramhanya (Fremont, CA)
Assignee: Workday, Inc.
G06F16/9024G06F16/283
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,429,668
App. No.
17/122,846
Granted
Aug 30, 2022
Kind
B2
Abstract

Multidimensional databases are well-suited for viewing data at different levels of detail. Graph databases are well-suited for modeling data sets with complex relationships. A novel platform for analysis and planning is enabled by linking multidimensional and graph databases. Graphs are data structures stored in graph databases. Graphs use nodes and edges to model data elements, some of which are derived. A graph is traversed to derive new data elements. To perform analysis on the graph data elements, graph traversal paths are stored as tuples in a fact table. This fact table is in turn loaded into the multidimensional database by mapping the fact table's attribute columns to dimensions of the multidimensional database.

Claims (44)

1. A method, comprising:

providing, using a processor, a hypercube linked to a graph;

obtaining hierarchical data, comprising:

compiling nodes, edges, and measure formulae into an executable program for traversing the graph, comprising:

marking a subset of nodes;

determining whether a given node is a marked node of the subset of nodes; and

in response to a determination that the given node is a marked node of the subset of nodes:

preparing a tuple by linking the given node to a node of the subset of nodes upstream of the given node;

computing measure data along the tuple; and

storing the measure data against the tuple;

providing a logical fact table mapping data between the graph and the linked hypercube using the tuple;

combining the hierarchical data and the logical fact table to obtain an instantiation of the hypercube;

providing a dependency analysis across the graph and hypercube measures; and

preparing a plan that provides a set of all graph and hypercube data at a certain point in time based on a scenario that contains user changes.

2. The method of claim 1 , wherein a link between the graph and the hypercube involves mapping specific members of each of the dimensions of the hypercube to corresponding nodes of the subset of nodes in the graph.

3. The method of claim 2 , wherein the mapping provides a many-to-one relationship between nodes of the subset of nodes in the graph and a corresponding member of the hypercube.

4. The method of claim 1 , wherein the providing of the dependency analysis across the graph and the hypercube comprises propagating changes that are entered by a user in a context of a scenario.

5. The method of claim 1 , wherein the method further comprises:

retrieving a base value for a measure either from the graph or from the hypercube, as specified by a user query;

applying a sequential list of changes in dependency order after filtering them based on a subset of changes that are upstream of a current node;

computing an incremental value at the current node based on an application of the subset of changes; and

displaying a final value to the user.

6. A computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

providing, using a processor, a hypercube linked to a graph;

obtaining hierarchical data, comprising:

compiling nodes, edges, and measure formulae into an executable program for traversing the graph, comprising:

marking a subset of nodes;

determining whether a given node is a marked node of the subset of nodes; and

in response to a determination that the given node is a marked node of the subset of nodes:

preparing a tuple by linking the given node to a node of the subset of nodes upstream of the given node;

computing measure data along the tuple; and

storing the measure data against the tuple;

providing a logical fact table mapping data between the graph and the linked hypercube using the tuple;

combining the hierarchical data and the logical fact table to obtain an instantiation of the hypercube;

providing a dependency analysis across the graph and hypercube measures; and

preparing a plan that provides a set of all graph and hypercube data at a certain point in time based on a scenario that contains user changes.

7. The computer program product of claim 6 , wherein a link between the graph and the hypercube involves mapping specific members of each of the dimensions of the hypercube to corresponding nodes of the subset of nodes in the graph.

8. The computer program product of claim 7 , wherein the mapping provides a many-to-one relationship between nodes of the subset of nodes in the graph and a corresponding member of the hypercube.

9. The computer program product of claim 6 , wherein the providing of the dependency analysis across the graph and the hypercube comprises propagating changes that are entered by a user in a context of a scenario.

10. The computer program product of claim 6 , further comprising computer instructions for:

retrieving a base value for a measure either from the graph or from the hypercube, as specified by a user query;

applying a sequential list of changes in dependency order after filtering them based on a subset of changes that are upstream of a current node;

computing an incremental value at the current node based on an application of the subset of changes; and

displaying a final value to the user.

Continuity (3)
Continuation 15062110 · Mar 5, 2016
Provisional Application 62128805 · Mar 5, 2015
Related Publication 20210173870A1 · Jun 10, 2021