# US 12,111,809 B2 · System and method for generating a multi dimensional data cube for analytics using a map-reduce program

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,111,809 B2
- Document ID: US12111809B2
- Status: Granted
- Kind: B2
- Application number: 17/712,946
- Filed: 2022-04-04
- Published: 2022-07-21
- Granted: 2024-10-08
- Earliest claimed: 2017-06-01
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Midda Dharmika Srinivasulu; Ambuj Saxena; Amrita Patil
- Web page: https://patentgrep.com/patent/US12111809B2

## CPC

- G06F 16/2264: {Multidimensional index structures}
- G06F 12/0875: with dedicated cache, e.g. instruction or stack
- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 16/148: {File search processing}
- G06F 16/172: Caching, prefetching or hoarding of files
- G06F 16/182: Distributed file systems
- G06F 16/283: {Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP}
- G06F 2212/601: Reconfiguration of cache memory
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In accordance with an embodiment, described herein is a system and method for generating a data cube for analytics. A map-reduce program running in a data processing cluster can read each line of a source data, and generate a key-value pair for each of a plurality of data combinations in that line of data. Values paired with the same key can be aggregated to generate one or more frequency values or one or more aggregate values, for representing the result of a query on the source data. Each query result can be stored in an output file, and can be encapsulated into a data cube cached in a distributed file system of the data processing cluster. The data cube can map a query from a client application to an output file, and can return a pre-computed result in the output file from the data cube to the client application.

## Claims

### Claim 1

A system for generating a multidimensional data cube, comprising:
a computer comprising one or more microprocessors;
a data processing cluster executing on the one or more microprocessors and operable to:
receive, from one or more data sources, a source data comprising a plurality of columns of data;
combine each of a plurality of categorical columns within the source data with each of a plurality of numerical columns within the source data, to generate a plurality of data column combinations from the source data;
generate a plurality of key-value pairs corresponding to the plurality of data column combinations and row values in the source data;
collect values paired with a same key to determine one or more aggregate numerical values or frequency values within the source data;
generate a plurality of output files, including for each of the plurality of data column combinations generated for the source data, an output file that stores a pre-computed result of a query on the source data represented by the aggregate numerical values or the frequency values;
store the plurality of output files into a data cube, wherein the data cube stores the pre-computed results for the possible queries on the plurality of columns of the source data;
generate a mapping string for each of the plurality of output files in the data cube and indicative of a column of the source data; and
upon receiving another query from a client application, utilizing a generated mapping string to map the received the another query to one of the plurality of output files in order to provide, in response to the another query, a pre-computed result stored at the one of the plurality of output files.

### Claim 2 (depends on 1)

The system of claim 1, wherein a map-reduce program is used to aggregate values for a same key to generate a frequency value or one or more aggregate values.

### Claim 3 (depends on 1)

The system of claim 1, wherein the data cube that encapsulates the plurality of output files is stored as files in a distributed fie system.

### Claim 4 (depends on 1)

The system of claim 1, further comprising a file indexer that includes a plurality of mapping strings, wherein each mapping string is associated with one of the plurality of output files in the data cube, wherein the file indexer maps the query to an output file that includes the pre-computed result for the query from the client application.

### Claim 5 (depends on 1)

The system of claim 1, wherein the client application comprises a data analytics application and wherein the system response is used in generating a visualization for display at the client.

### Claim 6 (depends on 1)

The system of claim 1, wherein the one or more data sources comprise one or more of a flat file, spreadsheet, database, or other type of data source.

### Claim 7 (depends on 1)

The system of claim 1, wherein the system is provided in a cloud environment.

### Claim 8

A method for generating a multidimensional data cube, comprising:
receiving, from one or more data sources, a source data comprising a plurality of columns of data;
combining each of a plurality of categorical columns within the source data with each of a plurality of numerical columns within the source data, to generate a plurality of data column combinations from the source data;
generating a plurality of key-value pairs corresponding to the plurality of data column combinations and row values in the source data;
collecting values paired with a same key to determine one or more aggregate numerical values or frequency values within the source data;
generating a plurality of output files, including for each of the plurality of data column combinations generated for the source data, an output file that stores a pre-computed result of a query on the source data represented by the aggregate numerical values or the frequency values;
storing the plurality of output files into a data cube, wherein the data cube stores the pre-computed results for the possible queries on the plurality of columns of the source data; and
generating a mapping string for each of the plurality of output files in the data cube and indicative of a column of the source data; and
upon receiving another query from a client application, utilizing a generated mapping string to map the received the another query to one of the plurality of output files in order to provide, in response to the another query, a pre-computed result stored at the one of the plurality of output files.

### Claim 9 (depends on 8)

The method of claim 8, wherein a map-reduce program is used to aggregate values for a same key to generate a frequency value or one or more aggregate values.

### Claim 10 (depends on 8)

The method of claim 8, wherein the data cube that encapsulates the plurality of output files is stored as files in a distributed fie system.

### Claim 11 (depends on 8)

The method of claim 8, further comprising a file indexer that includes a plurality of mapping strings, wherein each mapping string is associated with one of the plurality of output files in the data cube, wherein the file indexer maps the query to an output file that includes the pre-computed result for the query from the client application.

### Claim 12 (depends on 8)

The method of claim 8, wherein the client application comprises a data analytics application and wherein the system response is used in generating a visualization for display at the client.

### Claim 13 (depends on 8)

The method of claim 8, wherein the one or more data sources comprise one or more of a flat file, spreadsheet, database, or other type of data source.

### Claim 14 (depends on 8)

The method of claim 8, wherein the method is performed in a cloud environment.

### Claim 15

A non-transitory computer readable storage medium, including instructions stored thereon which when read and executed by one or more computers cause the one or more computers to perform a method comprising:
receiving, from one or more data sources, a source data comprising a plurality of columns of data;
combining each of a plurality of categorical columns within the source data with each of a plurality of numerical columns within the source data, to generate a plurality of data column combinations from the source data;
generating a plurality of key-value pairs corresponding to the plurality of data column combinations and row values in the source data;
collecting values paired with a same key to determine one or more aggregate numerical values or frequency values within the source data;
generating a plurality of output files, including for each of the plurality of data column combinations generated for the source data, an output file that stores a pre-computed result of a query on the source data represented by the aggregate numerical values or the frequency values;
storing the plurality of output files into a data cube, wherein the data cube stores the pre-computed results for the possible queries on the plurality of columns of the source data; and
generating a mapping string for each of the plurality of output files in the data cube and indicative of a column of the source data; and
upon receiving another query from a client application, utilizing a generated mapping string to map the received the another query to one of the plurality of output files in order to provide, in response to the another query, a pre-computed result stored at the one of the plurality of output files.

### Claim 16 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein a map-reduce program is used to aggregate values for a same key to generate a frequency value or one or more aggregate values.

### Claim 17 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein the data cube that encapsulates the plurality of output files is stored as files in a distributed fie system.

### Claim 18 (depends on 15)

The non-transitory computer readable storage medium of claim 15, further comprising a file indexer that includes a plurality of mapping strings, wherein each mapping string is associated with one of the plurality of output files in the data cube, wherein the file indexer maps the query to an output file that includes the pre-computed result for the query from the client application.

### Claim 19 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein the client application comprises a data analytics application and wherein the system response is used in generating a visualization for display at the client.

### Claim 20 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein the method is performed in a cloud environment.
