# US 12,216,798 B2 · Centralized data transformation in a multi-tenant computing environment

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

- Number: US 12,216,798 B2
- Document ID: US12216798B2
- Status: Granted
- Kind: B2
- Application number: 17/832,422
- Filed: 2022-06-03
- Published: 2023-09-07
- Granted: 2025-02-04
- Earliest claimed: 2022-03-03
- Assignees: Zuora, Inc.
- Applicants: Zuora, Inc.
- Inventors: Weilei Chen; Nicolas Fusseder; Bryan Sheddy; Tom Hartwell; Henning Schmiedehausen
- Web page: https://patentgrep.com/patent/US12216798B2

## CPC

- G06F 21/6254: {by anonymising data, e.g. decorrelating personal data from the owner's identification}
- G06F 16/256: {in federated or virtual databases}
- G06F 16/258: {Data format conversion from or to a database}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A centralized data transformation system and corresponding methods/techniques define, select, and execute data transformation rules on data exported from disparate data sources within a source data environment to obtain scrubbed data, which can be imported into a target data environment in a manner that maintains referential integrity. The centralized data transformation system enables data portability between source and target environments, while ensuring compliance with limitations of the target environment. The centralized data transformation system applies scrubber rules consistently across related data fields of data objects of the same object type to ensure that the transformed data complies with limitations of the target environment pertaining to maintaining multiple copies of a given data set.

## Claims

### Claim 1

A method of scrubbing tenant data in a multi-tenant system, the method comprising:
accessing tenant data exported from a source data system, the tenant data being in a normalized data format, the tenant data including data objects;
identifying at least a subset of the data objects of the tenant data associated with a particular data object type;
identifying a set of scrubber rules associated with the particular data object type, each scrubber rule configured to apply a respective predefined transformation to an input value of a data object of the at least a subset of the data objects of the particular data object type to obtain a corresponding scrubbed value, a particular scrubber rule configured to perform a service to ensure referential integrity of the at least a subset of the data objects of the tenant data;
applying the set of scrubber rules to the at least a subset of the data objects to obtain scrubbed tenant data; and
facilitating importing of the scrubbed tenant data into a target data system.

### Claim 2 (depends on 1)

The method of claim 1, wherein accessing the tenant data comprises accessing a data repository storing the tenant data in the normalized data format, and wherein facilitating importing of the scrubbed tenant data comprises making the scrubbed tenant data available to the target data system by storing the scrubbed tenant data in the data repository in the normalized data format.

### Claim 3 (depends on 2)

The method of claim 2, wherein the tenant data is converted from a first native data format associated with the source data system to the normalized data format prior to being exported to the data repository.

### Claim 4 (depends on 3)

The method of claim 3, wherein the scrubbed tenant data is converted from the normalized data format to a second native data format associated with the target data system prior to importing the scrubbed tenant data into the target data system.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
applying a respective additional set of scrubber rules to each of one or more additional subsets of the data objects of the tenant data to obtain additional scrubbed tenant data, wherein each additional subset of the data objects is associated with a respective corresponding additional data object type; and
facilitating importing of the additional scrubbed tenant data into the target data system.

### Claim 6 (depends on 1)

The method of claim 1, wherein the tenant data is associated with a particular tenant of a plurality of tenants in the multi-tenant system, wherein an existing copy of the tenant data is maintained in the target data system, and wherein the scrubbed tenant data is an additional copy of the tenant data that is imported into the target data system.

### Claim 7 (depends on 6)

The method of claim 6, wherein the respective predefined transformation of a first rule in the set of scrubber rules comprises rewriting an object identifier in the tenant data to obtain a rewritten object identifier in the scrubbed tenant data.

### Claim 8 (depends on 7)

The method of claim 7, wherein the rewritten object identifier maintains, at least in part, a referential integrity of the scrubbed tenant data after it is imported as the second copy of the tenant data into the target data system.

### Claim 9 (depends on 1)

The method of claim 1, wherein each scrubber rule in the set of scrubber rules comprises a file path for an object field to be scrubbed, an identifier of a scrubber, and a scrubber parameter comprising an input value to be transformed by the scrubber.

### Claim 10 (depends on 9)

The method of claim 9, wherein a first scrubber rule in the set of scrubber rules further comprises a filter, and wherein applying the set of scrubber rules to the at least a subset of the data objects of the tenant data comprises conditionally applying the first scrubber rule to the at least a subset of data objects of the tenant data.

### Claim 11 (depends on 10)

The method of claim 10, wherein the conditionally applying the first scrubber rule to the at least a subset of data objects comprises, for each data object:
determining, based on the filter, whether the first scrubber rule is applicable to the data object; and
when it is determined that the first scrubber rule is applicable to the data object, applying the respective predefined transformation of the first scrubber rule to an input value contained in the object field to be scrubbed in the data object to obtain a corresponding scrubbed data object having a scrubbed value in the object field.

### Claim 12 (depends on 1)

The method of claim 1, wherein the set of scrubber rules is applied to the at least a subset of the data objects of the tenant data as the tenant data is being replicated from the source data system to the target data system.

### Claim 13

A system for scrubbing tenant data in a multi-tenant system, the system comprising:
at least one memory storing computer-executable instructions; and
at least one processor configured to access the at least one memory and execute the computer-executable instructions to:
access tenant data exported from a source data system, the tenant data being in a normalized data format, the tenant data including data objects;
identify at least a subset of the data objects of the tenant data associated with a particular data object type;
identify a set of scrubber rules associated with the particular data object type, each scrubber rule configured to apply a respective predefined transformation to an input value of a data object of the at least a subset of the data objects of the particular data object type to obtain a corresponding scrubbed value, a particular scrubber rule configured to perform a service to ensure referential integrity of the at least a subset of the data objects of the tenant data;
apply the set of scrubber rules to the at least a subset of the data objects to obtain scrubbed tenant data; and
facilitate importing of the scrubbed tenant data into a target data system.

### Claim 14 (depends on 13)

The system of claim 13, wherein the at least one processor is configured to access the tenant data by executing the computer-executable instructions to access a data repository storing the tenant data in the normalized data format, and wherein the at least one processor is configured to facilitate importing of the scrubbed tenant data by executing the computer-executable instructions to make the scrubbed tenant data available to the target data system by storing the scrubbed tenant data in the data repository in the normalized data format.

### Claim 15 (depends on 14)

The system of claim 14, wherein the tenant data is converted from a first native data format associated with the source data environment to the normalized data format prior to being exported to the data repository, and wherein the scrubbed tenant data is converted from the normalized data format to a second native data format associated with the target data system prior to importing the scrubbed tenant data into the target data system.

### Claim 16 (depends on 13)

The system of claim 13, wherein the tenant data is associated with a particular tenant of a plurality of tenants in the multi-tenant system, wherein an existing copy of the tenant data is maintained in the target data system, and wherein the scrubbed tenant data is an additional copy of the tenant data that is imported into the target data system.

### Claim 17 (depends on 16)

The system of claim 16, wherein the respective predefined transformation of a first rule in the set of scrubber rules comprises rewriting an object identifier in the tenant data to obtain a rewritten object identifier in the scrubbed tenant data, and wherein the rewritten object identifier maintains, at least in part, a referential integrity of the scrubbed tenant data after it is imported as the second copy of the tenant data into the target data system.

### Claim 18 (depends on 13)

The system of claim 13, wherein each scrubber rule in the set of scrubber rules comprises a file path for an object field to be scrubbed, an identifier of a scrubber, and a scrubber parameter comprising an input value to be transformed by the scrubber.

### Claim 19 (depends on 18)

The system of claim 18, wherein a first scrubber rule in the set of scrubber rules further comprises a filter, and wherein the at least one processor is configured to apply the set of scrubber rules to the at least a subset of the data objects of the tenant data by executing the computer-executable instructions to conditionally apply the first scrubber rule to the at least a subset of data objects of the tenant data.

### Claim 20 (depends on 19)

The system of claim 19, wherein the at least one processor is configured to conditionally apply the first scrubber rule to the at least a subset of data objects by executing the computer-executable instructions to, for each data object in the set of data objects:
determine, based on the filter, whether the first scrubber rule is applicable to the data object; and
when it is determined that the first scrubber rule is applicable to the data object, apply the respective predefined transformation of the first scrubber rule to an input value contained in the object field to be scrubbed in the data object to obtain a corresponding scrubbed data object having a scrubbed value in the object field.

### Claim 21 (depends on 13)

The system of claim 13, wherein the system is a centralized data transformation system located remotely from the source data system and the target data system.

### Claim 22

A computer program product for scrubbing tenant data in a multi-tenant system, the computer program product comprising a non-transitory computer-readable medium readable by a processing circuit, the non-transitory computer-readable medium storing instructions executable by the processing circuit to cause a method to be performed, the method comprising:
accessing tenant data exported from a source data system, the tenant data being in a normalized data format, the tenant data including data objects;
identifying at least a subset of the data objects of the tenant data associated with a particular data object type;
identifying a set of scrubber rules associated with the particular data object type, each scrubber rule configured to apply a respective predefined transformation to an input value of a data object of the at least a subset of the data objects of the particular data object type to obtain a corresponding scrubbed value, a particular scrubber rule configured to perform a service to ensure referential integrity of the at least a subset of the data objects of the tenant data;
applying the set of scrubber rules to the at least a subset of the data objects to obtain scrubbed tenant data; and
facilitating importing of the scrubbed tenant data into a target data system.
