# US 11,030,213 B2 · Transforming data structures and data objects for migrating data between databases having different schemas

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

- Number: US 11,030,213 B2
- Document ID: US11030213B2
- Status: Granted
- Kind: B2
- Application number: 16/672,573
- Filed: 2019-11-04
- Published: 2020-02-27
- Granted: 2021-06-08
- Earliest claimed: 2017-03-09
- Assignees: Bank of America Corporation
- Applicants: Bank of America Corporation
- Inventors: Tao Huang; Sriharsha Jana
- Web page: https://patentgrep.com/patent/US11030213B2

## CPC

- G06F 16/258: {Data format conversion from or to a database}
- G06F 16/214: {Database migration support}
- G06F 16/24554: {Unary operations; Data partitioning operations}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Aspects of the disclosure relate to transforming data structures and data objects. A computing platform may query a logical view of a data table associated with a first database maintained by a first database server in a first schema and may receive source data associated with the logical view. Subsequently, the computing platform may split the source data into a plurality of data chunks associated with the logical view. Next, the computing platform may move the plurality of data chunks to a plurality of nodes configured to receive and transform the plurality of data chunks from the first schema to a second schema different from the first schema. Then, the computing platform may command the plurality of nodes to transform the plurality of data chunks and may move the transformed data from the plurality of nodes to a second database maintained by a second database server in the second schema.

## Claims

### Claim 1

A computing platform, comprising:
at least one processor;
a communication interface communicatively coupled to the at least one processor; and
memory storing computer-readable instructions that, when executed by the at least one processor, cause the computing platform to:
query a logical view of a data table associated with a first database maintained by a first database server in a first schema;
responsive to querying the logical view of the data table associated with the first database maintained by the first database server in the first schema, receive, via the communication interface, from the first database server, source data associated with the logical view;
split the source data associated with the logical view to produce a plurality of data chunks associated with the logical view;
move the plurality of data chunks associated with the logical view to a plurality of nodes associated with the computing platform;
command the plurality of nodes associated with the computing platform to transform the plurality of data chunks associated with the logical view to produce transformed data; and
move the transformed data from the plurality of nodes associated with the computing platform to a second database maintained by a second database server in a second schema different from the first schema,
wherein splitting the source data associated with the logical view to produce the plurality of data chunks associated with the logical view comprises identifying one or more available nodes and determining a uniform size of the plurality of data chunks associated with the logical view based on the one or more available nodes,
wherein a numerical column included in the logical view of the data table associated with the first database maintained by the first database server provides an index indicative of a total size of the source data associated with the logical view, and
wherein splitting the source data associated with the logical view to produce the plurality of data chunks associated with the logical view comprises splitting the source data associated with the logical view based on the numerical column to balance processing load across the one or more available nodes.

### Claim 2 (depends on 1)

The computing platform of claim 1, wherein the memory stores additional computer-readable instructions that, when executed by the at least one processor, cause the computing platform to:
prior to querying the logical view of the data table associated with the first database maintained by the first database server in the first schema:
receive, via the communication interface, from an administrative computing device, a data migration command;
responsive to receiving the data migration command from the administrative computing device, generate a view command directing the first database server to create the logical view of the data table associated with the first database maintained by the first database server; and
send, via the communication interface, to the first database server, the view command directing the first database server to create the logical view of the data table associated with the first database maintained by the first database server.

### Claim 3 (depends on 2)

The computing platform of claim 2, wherein the view command directing the first database server to create the logical view of the data table associated with the first database maintained by the first database server is configured to cause the first database server to execute a script that creates the logical view of the data table associated with the first database maintained by the first database server.

### Claim 4 (depends on 1)

The computing platform of claim 1, wherein the first schema is a relational database schema.

### Claim 5 (depends on 4)

The computing platform of claim 4, wherein the second schema is a non-relational database schema.

### Claim 6 (depends on 1)

The computing platform of claim 1, wherein the plurality of nodes associated with the computing platform are configured to process the plurality of data chunks associated with the logical view in parallel.

### Claim 7 (depends on 1)

The computing platform of claim 1, wherein commanding the plurality of nodes associated with the computing platform to transform the plurality of data chunks associated with the logical view to produce the transformed data comprises initiating a data transformation process at the plurality of nodes associated with the computing platform and directing the plurality of nodes associated with the computing platform to transfer the transformed data to the second database maintained by the second database server when the data transformation process is completed.

### Claim 8 (depends on 1)

The computing platform of claim 1, wherein moving the transformed data from the plurality of nodes associated with the computing platform to the second database maintained by the second database server comprises moving the transformed data from the plurality of nodes associated with the computing platform to the second database maintained by the second database server using at least one application programming interface function call provided by the second database server.

### Claim 9

A method, comprising:
at a computing platform comprising at least one processor, memory, and a communication interface:
querying, by the at least one processor, a logical view of a data table associated with a first database maintained by a first database server in a first schema;
responsive to querying the logical view of the data table associated with the first database maintained by the first database server in the first schema, receiving, by the at least one processor, via the communication interface, from the first database server, source data associated with the logical view;
splitting, by the at least one processor, the source data associated with the logical view to produce a plurality of data chunks associated with the logical view;
moving, by the at least one processor, the plurality of data chunks associated with the logical view to a plurality of nodes associated with the computing platform;
commanding, by the at least one processor, the plurality of nodes associated with the computing platform to transform the plurality of data chunks associated with the logical view to produce transformed data; and
moving, by the at least one processor, the transformed data from the plurality of nodes associated with the computing platform to a second database maintained by a second database server in a second schema different from the first schema,
wherein splitting the source data associated with the logical view to produce the plurality of data chunks associated with the logical view comprises identifying one or more available nodes and determining a uniform size of the plurality of data chunks associated with the logical view based on the one or more available nodes,
wherein a numerical column included in the logical view of the data table associated with the first database maintained by the first database server provides an index indicative of a total size of the source data associated with the logical view, and
wherein splitting the source data associated with the logical view to produce the plurality of data chunks associated with the logical view comprises splitting the source data associated with the logical view based on the numerical column to balance processing load across the one or more available nodes.

### Claim 10 (depends on 9)

The method of claim 9, comprising:
prior to querying the logical view of the data table associated with the first database maintained by the first database server in the first schema:
receiving, by the at least one processor, via the communication interface, from an administrative computing device, a data migration command;
responsive to receiving the data migration command from the administrative computing device, generating, by the at least one processor, a view command directing the first database server to create the logical view of the data table associated with the first database maintained by the first database server; and
sending, by the at least one processor, via the communication interface, to the first database server, the view command directing the first database server to create the logical view of the data table associated with the first database maintained by the first database server.

### Claim 11 (depends on 10)

The method of claim 10, wherein the view command directing the first database server to create the logical view of the data table associated with the first database maintained by the first database server is configured to cause the first database server to execute a script that creates the logical view of the data table associated with the first database maintained by the first database server.

### Claim 12 (depends on 9)

The method of claim 9, wherein the first schema is a relational database schema.

### Claim 13 (depends on 12)

The method of claim 12, wherein the second schema is a non-relational database schema.

### Claim 14 (depends on 9)

The method of claim 9, wherein the plurality of nodes associated with the computing platform are configured to process the plurality of data chunks associated with the logical view in parallel.

### Claim 15 (depends on 9)

The method of claim 9, wherein commanding the plurality of nodes associated with the computing platform to transform the plurality of data chunks associated with the logical view to produce the transformed data comprises initiating a data transformation process at the plurality of nodes associated with the computing platform and directing the plurality of nodes associated with the computing platform to transfer the transformed data to the second database maintained by the second database server when the data transformation process is completed.

### Claim 16 (depends on 9)

The method of claim 9, wherein moving the transformed data from the plurality of nodes associated with the computing platform to the second database maintained by the second database server comprises moving the transformed data from the plurality of nodes associated with the computing platform to the second database maintained by the second database server using at least one application programming interface function call provided by the second database server.

### Claim 17

One or more non-transitory computer-readable media storing instructions that, when executed by a computing platform comprising at least one processor, memory, and a communication interface, cause the computing platform to:
query a logical view of a data table associated with a first database maintained by a first database server in a first schema;
responsive to querying the logical view of the data table associated with the first database maintained by the first database server in the first schema, receive, via the communication interface, from the first database server, source data associated with the logical view;
split the source data associated with the logical view to produce a plurality of data chunks associated with the logical view;
move the plurality of data chunks associated with the logical view to a plurality of nodes associated with the computing platform;
command the plurality of nodes associated with the computing platform to transform the plurality of data chunks associated with the logical view to produce transformed data; and
move the transformed data from the plurality of nodes associated with the computing platform to a second database maintained by a second database server in a second schema different from the first schema,
wherein splitting the source data associated with the logical view to produce the plurality of data chunks associated with the logical view comprises identifying one or more available nodes and determining a uniform size of the plurality of data chunks associated with the logical view based on the one or more available nodes,
wherein a numerical column included in the logical view of the data table associated with the first database maintained by the first database server provides an index indicative of a total size of the source data associated with the logical view, and
wherein splitting the source data associated with the logical view to produce the plurality of data chunks associated with the logical view comprises splitting the source data associated with the logical view based on the numerical column to balance processing load across the one or more available nodes.

### Claim 18 (depends on 17)

The one or more non-transitory computer-readable media of claim 17, storing additional instructions that, when executed by the computing platform, cause the computing platform to:
prior to querying the logical view of the data table associated with the first database maintained by the first database server in the first schema:
receive, via the communication interface, from an administrative computing device, a data migration command;
responsive to receiving the data migration command from the administrative computing device, generate a view command directing the first database server to create the logical view of the data table associated with the first database maintained by the first database server; and
send, via the communication interface, to the first database server, the view command directing the first database server to create the logical view of the data table associated with the first database maintained by the first database server.

### Claim 19 (depends on 18)

The one or more non-transitory computer-readable media of claim 18, wherein the view command directing the first database server to create the logical view of the data table associated with the first database maintained by the first database server is configured to cause the first database server to execute a script that creates the logical view of the data table associated with the first database maintained by the first database server.

### Claim 20 (depends on 17)

The one or more non-transitory computer-readable media of claim 17, wherein the first schema is a relational database schema, and wherein the second schema is a non-relational database schema.
