US 12,067,013 B2
Data aggregation in a hierarchy for query execution
Lengning Liu, Redmond, WA (US); William Mohabbati, Issaquah, WA (US); Joerg Derungs, Zurich (CH); Tanuja Machineni, Redmond, WA (US); Manu Medigesi Shivakumar, Bellevue, WA (US); and Siddhesh Ramesh Surve, Bellevue, WA (US)
Assigned to Microsoft Technology Licensing, LLC., Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Jun. 29, 2021, as Appl. No. 17/362,957.
Prior Publication US 2022/0414104 A1, Dec. 29, 2022
Int. Cl. G06F 16/245 (2019.01); G06F 16/242 (2019.01); G06F 16/2455 (2019.01); G06F 16/28 (2019.01)
CPC G06F 16/24556 (2019.01) [G06F 16/244 (2019.01); G06F 16/284 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A system comprising:
a processor; and
a non-transitory computer-readable storage medium storing instructions that are operative upon execution by the processor to:
receive a data query corresponding to data organized in a plurality of data entities as nodes in a data hierarchy, the data hierarchy having a plurality of dimensions;
perform a filter and change operation for resetting a value of one or more of the nodes from a rollup operation based on a user input before performing the rollup operation, the value of the one or more of the nodes being reset to zero using a monoid before performing the rollup operation;
perform a rollup and remove operation for removing the one or more of the nodes having the value reset to zero from the data hierarchy after performing the rollup operation;
perform a graph traversal of the plurality of data entities used in the data query, the graph traversal including the rollup operation, without a self-joining operation, between different nodes at different levels of the plurality of dimensions, the rollup operation comprising a first rollup between the different levels in the data hierarchy and a second rollup within each level of the data hierarchy between the different nodes across the plurality of data entities, the rollup operation aggregating data values of the nodes at the different levels;
output aggregated values for the different nodes at each level based on the rollup operation;
execute the data query using the aggregated values for the different nodes; and
produce an aggregated result based on the execution of the data query.