# US 10,372,729 B2 · Parallel bootstrap aggregating in a data warehouse appliance

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

- Number: US 10,372,729 B2
- Document ID: US10372729B2
- Status: Granted
- Kind: B2
- Application number: 15/403,208
- Filed: 2017-01-11
- Published: 2017-05-04
- Granted: 2019-08-06
- Earliest claimed: 2014-03-31
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Sylwester A. Dygas; Michal T. Iwanowski; Piotr Plonski; Mariusz Rokicki
- Web page: https://patentgrep.com/patent/US10372729B2

## CPC

- G06F 16/283: {Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP}
- G06F 16/211: {Schema design and management}
- G06F 16/2462: {Approximate or statistical queries}
- G06F 16/252: {between a Database Management System and a front-end application}
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method of bootstrap sampling a dataset is described. With a process node, a series of random integers is generated. An assignment map is created. The assignment map includes a row identifier for each row of data of the dataset. A plurality of bootstrap sample identifiers defined by the series are assigned to at least one row identifier. An output table created from the assignment map. Rows of the output table include each instance of the bootstrap sample identifiers, the row identifier assigned with the bootstrap sample identifier, and data of the row.

## Claims

### Claim 1

A process node for creating bootstrap samples from a dataset, wherein the process node is one of a plurality of process nodes in a data warehouse appliance, the process node comprising:
a processor; and
a memory communicatively coupled to the processor, wherein the memory is encoded with instructions and wherein the instructions when executed by the processor include:
generate, with the process node, a series of random integers;
create, with the process node, an assignment map, the assignment map includes a row identifier for each row of the dataset;
assign, with the process node, a plurality of bootstrap sample identifiers defined by the series of random integers to at least one row identifier in the assignment map;
locate, with a user-defined table function of the process node, row identifiers in the assignment that have at least one bootstrap sample identifier assigned;
extract, with the process node, entries in the assignment map that have at least one bootstrap sample identifier assigned, wherein the bootstrap sample identifiers, the row identifier of the entries, and data of the row identified form an output table; and
create, with the process node and based on the assignment map, the output table, each row of the output table includes an instance of a bootstrap sample identifier, the row identifier assigned with the instance of the bootstrap sample identifier, and data from the row of the data set associated with the row identifier.

### Claim 2 (depends on 1)

The process node of claim 1, wherein the instructions when executed by the processor include:
distribute the output table to one or more storage modules.

### Claim 3 (depends on 1)

The process node of claim 1, wherein values of each of the random integers are selected from a range between one and a value equal to the total number of rows in a dataset.

### Claim 4 (depends on 1)

The process node of claim 1, wherein each of the plurality of bootstrap sample identifiers corresponds to a position of a random integer in the series of random integers and the row identifier to which each bootstrap sample identifier is assigned is determined by the value of the corresponding random integer.

### Claim 5 (depends on 1)

The process node of claim 1, wherein the number of random integers in the series is the product of the number of bootstrap samples and the size of each bootstrap sample.

### Claim 6

A computer program product of creating bootstrap samples from a dataset, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code executable by a computer system to:
generate, with a process node, a series of random integers;
create, with the process node, an assignment map, the assignment map includes a row identifier for each row of the dataset;
assign, with the process node, a plurality of bootstrap sample identifiers defined by the series of random integers to at least one row identifier in the assignment map;
locate, with a user-defined table function of the process node, row identifiers in the assignment that have at least one bootstrap sample identifier assigned;
extract, with the process node, entries in the assignment map that have at least one bootstrap sample identifier assigned, wherein the bootstrap sample identifiers, the row identifier of the entries, and data of the row identified form an output table; and
create, with the process node and based on the assignment map, the output table, each row of the output table includes an instance of a bootstrap sample identifier, the row identifier assigned with the instance of the bootstrap sample identifier, and data from the row of the data set associated with the row identifier.

### Claim 7 (depends on 6)

The computer program product of claim 6, wherein the program code when executed by the computer system further include:
distribute the output table to one or more storage modules.

### Claim 8 (depends on 6)

The computer program product of claim 6, wherein values of each of the random integers are selected from a range between one and a value equal to the total number of rows in a dataset.

### Claim 9 (depends on 6)

The computer program product of claim 6, wherein each of the plurality of bootstrap sample identifiers corresponds to a position of a random integer in the series of random integers and the row identifier to which each bootstrap sample identifier is assigned is determined by the value of the corresponding random integer.

### Claim 10 (depends on 6)

The computer program product of claim 6, wherein the number of random integers in the series is the product of the number of bootstrap samples and the size of each bootstrap sample.

### Claim 11

A system for creating bootstrap samples from a dataset, the system comprising:
a host server;
a plurality of process nodes communicatively coupled to the host server; and
a plurality of storage modules, each of the plurality of process nodes in communication with at least one of the plurality of storage modules, wherein each of the plurality of process nodes is configured to perform a method, the method comprising:
generating a series of random integers;
creating an assignment map, the assignment map includes a row identifier for each row of the dataset;
assigning, in the assignment map, a plurality of bootstrap sample identifiers defined by the series of random integers to at least one row identifier in the assignment;
locating, with a user-defined table function of the process node, row identifiers in the assignment that have at least one bootstrap sample identifier assigned;
extracting entries in the assignment map that have at least one bootstrap sample identifier assigned, wherein the bootstrap sample identifiers, the row identifier of the entries, and data of the row identified form an output table; and
creating, based on the assignment map, the output table, each row of the output table including an instance of a bootstrap sample identifier, the row identifier assigned with instance of the bootstrap sample identifier, and data from the row of the dataset.

### Claim 12 (depends on 11)

The system of claim 11, wherein the method further comprises:
distributing the output table to one or more of the plurality of storage modules.

### Claim 13 (depends on 11)

The system of claim 11, wherein values of each of the random integers are selected from a range between one and a value equal to the total number of rows in a dataset.

### Claim 14 (depends on 11)

The system of claim 11, wherein each of the plurality of bootstrap sample identifiers corresponds to a position of a random integer in the series of random integers and the row identifier to which each bootstrap sample identifier is assigned is determined by the value of the corresponding random integer.

### Claim 15 (depends on 11)

The system of claim 11, wherein the number of random integers in the series is the product of the number of bootstrap samples and the size of each bootstrap sample.
