Querying multidimensional data with independent fact and dimension pipelines combined at query time
First Claim
Patent Images
1. A method comprising:
- at a first computing device, receiving a query, the query including grouping information and filtering information;
at the first computing device, producing, in response to the query, a result set from fact data, the fact data including keyed values and being stored at the first computing device, wherein the first computing device is optimized for the fact data, and wherein producing the result set includes;
receiving, from a second computing device, a key for accessing a value of the fact data, the key being identified from dimension data and based at least in part on the filtering information, the dimension data being stored at the second computing device, wherein the second computing device is optimized for the dimension data;
aggregating, from the fact data and based at least in part on the grouping information, a plurality of query results; and
filtering the aggregated query results using the key received from the second computing device; and
generating the result set based on the filtered query results.
2 Assignments
0 Petitions
Accused Products
Abstract
Separate subsystems are dedicated to handle fact and dimension data storage and retrieval in an optimized manner. Each subsystem acquires, processes, and stores its data separately in a manner appropriate to the characteristics of that data. A query engine combines the data from each subsystem at query time. When a user queries the system, the query engine interacts with each of the subsystems to fetch the data needed to generate a single result set.
46 Citations
17 Claims
-
1. A method comprising:
-
at a first computing device, receiving a query, the query including grouping information and filtering information; at the first computing device, producing, in response to the query, a result set from fact data, the fact data including keyed values and being stored at the first computing device, wherein the first computing device is optimized for the fact data, and wherein producing the result set includes; receiving, from a second computing device, a key for accessing a value of the fact data, the key being identified from dimension data and based at least in part on the filtering information, the dimension data being stored at the second computing device, wherein the second computing device is optimized for the dimension data; aggregating, from the fact data and based at least in part on the grouping information, a plurality of query results; and filtering the aggregated query results using the key received from the second computing device; and generating the result set based on the filtered query results. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
one or more computing devices configured to perform operations comprising; receiving a query, the query including grouping information and filtering information; and responsive to the query, producing, using a fact subsystem and a dimension subsystem, a result set, the result set being produced from fact data and dimension data, the fact data including one or more keyed values, the dimension data including definitions of one or more keys of the fact data, wherein; the dimension subsystem is optimized for the dimension data and is configured to perform first operations comprising; storing the dimension data; and identifying, from the dimension data and based at least in part on the filtering information, a key for accessing the fact data; the fact subsystem is optimized for the fact data and is configured to perform second operations comprising; storing the fact data; aggregating, from the fact data and based at least in part on the grouping information, a plurality of query results; and filtering the aggregated query results using the key identified by the dimension subsystem; and the result set includes the filtered query results. - View Dependent Claims (8, 9, 10, 11, 12)
-
13. A non-transitory computer-readable storage medium having instructions stored thereon, the instructions operable to cause one or more computing devices to perform operations comprising:
-
receiving a query, the query including grouping information and filtering information; and responsive to the query, producing, using a fact subsystem and a dimension subsystem, a result set, the result set being produced from fact data and dimension data, the fact data including one or more keyed values, the dimension data including definitions of one or more keys of the fact data, wherein; the dimension subsystem is optimized for the dimension data and is configured to perform first operations comprising; storing the dimension data; and identifying, from the dimension data and based at least in part on the filtering information, a key for accessing the fact data; the fact subsystem is optimized for the fact data and is configured to perform second operations comprising; storing the fact data; aggregating, from the fact data and based at least in part on the grouping information, a plurality of query results; and filtering the aggregated query results using the key identified by the dimension subsystem; and the result set includes the filtered query results. - View Dependent Claims (14, 15, 16, 17)
-
Specification