IP Library Granted Patent US 12,210,532
Granted Patent B2
US 12,210,532 · App. 17/011,847 · Granted Jan 28, 2025

Multi-tenancy data analytics platform

Inventors: Aaron David Colcord (Mequon, WI); Kevin Richard Mellott (Muskego, WI); David Vincente Favela (Penngrove, CA); Jeffrey Chee-Keong Neong (Windsor, CA)
Assignee: Fidelity Information Services, LLC
G06F16/2457G06F9/3005G06F9/3867G06F9/541G06F9/544G06F16/211G06F16/221G06F16/24573G06F16/2465G06F16/2471G06F16/285G06F21/31G06F21/54G06F21/602G06F21/6227G06F21/6254G06F2221/2141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,210,532
App. No.
17/011,847
Filed
Sep 3, 2020
Granted
Jan 28, 2025
Kind
B2
Art Unit
2169
USPC
707/769
Abstract

A data analytics system is disclosed that is configured to perform operations including receiving input data at a first storage location and configuring a flow service to execute a flow. The flow execution can include creating a pipeline using the flow and metadata associated with the flow, the pipeline configured to perform a data transformation specified in the flow. The flow execution can further include determining a tenancy associated with the input data using the flow. The flow execution can also include generating, using the pipeline, output data from the input data and storing, using the pipeline, the output data in a second storage location associated with the tenancy.

Claims (78)

1. A data analytics system comprising:

at least one processor; and

at least one non-transitory computer-readable medium containing instructions that, when executed by the at least one processor cause the data analytics system to perform operations comprising:

receiving, at a first storage location, input data;

configuring a flow service to execute a flow, flow execution comprising:

creating a pipeline using the flow and metadata associated with the flow, the pipeline configured to perform a data transformation specified in the flow;

extracting, by the pipeline, identifying characteristics of the input data from the input data;

providing the identifying characteristics of the input data to an identity service;

receiving, from the identity service, a tenancy identifier associated with the input data using the flow, the tenancy identifier associated with the input data representing an ownership of the input data;

generating output data from the input data by performing the data transformation on the input data using the pipeline;

storing, using the pipeline, the output data in a second storage location associated with the tenancy identifier;

creating a tenancy object for the output data which is generated by performing the data transformation on the input data, based on the tenancy identifier associated with the input data received from the identify service, the tenancy object for the output data representing an ownership of the output data;

storing the tenancy object created for the output data in a metadata repository according to a hierarchical data object ownership graph which comprises a plurality of tenancy objects arranged as parent objects and child objects, wherein the storing the tenancy object including associating the tenancy object created for the output data with a parent object in the hierarchical data object ownership graph; and

determining whether to authorize a request to display at least a portion of the output data based at least in part on the association between the tenancy object and the parent object in the hierarchical data object ownership graph.

2. The data analytics system of claim 1 , wherein:

the tenancy is determined during execution of the pipeline based on values of a specified column in the input data, the column specified in the flow.

3. The data analytics system of claim 2 , wherein:

records in the input dataset have different values of the specified column;

the pipeline generates multiple output datasets, each data set corresponding to one of the different values; and

the pipeline stores each of the multiple output datasets in locations corresponding to differing tenancies.

4. The data analytics system of claim 1 , wherein:

the configuring a flow service to execute a flow comprises obtaining the metadata associated with the flow; and

wherein the execution of the flow depends on the obtained metadata.

5. The data analytics system of claim 4 , wherein:

the metadata specifies a schema of the input data or rules for associating semantics with the input data.

6. The data analytics system of claim 1 , wherein:

the configuring a flow service to execute a flow comprises obtaining an artifact implementing the data transformation; and executing the flow comprises executing the artifact.

7. The data analytics system of claim 6 , wherein:

the artifact comprises a script, executable binary, or module.

8. The data analytics system of claim 1 , wherein:

the flow comprises a JSON or YAML object.

9. The data analytics system of claim 1 , wherein:

the flow specifies that the output data can be accessed using at least one of GraphQL, SOAP, Odata, or OpenAPI.

10. The data analytics system of claim 1 , wherein:

an append-only data store includes the first storage location; and

a data-lake includes the second location.

11. A data analytics method comprising:

receiving, at a first storage location, input data;

configuring a flow service to execute a flow, flow execution comprising:

obtaining metadata associated with the flow, the metadata specifying a schema of the input data or rules for associating semantics with the input data;

creating a pipeline using the flow and the metadata associated with the flow, the pipeline configured to perform a data transformation specified in the flow and execution of the flow dependent on the obtained metadata;

determining a tenancy associated with the input data using the flow, the tenancy associated with the input data representing an ownership of the input data, and the determining comprising:

extracting identifying characteristics of the input data from the input data;

providing the identifying characteristics of the input data to an identity service; and

receiving a tenancy identifier of the input data from the identity service;

generating output data from the input data by performing the data transformation on the input data using the pipeline;

storing, using the pipeline, the output data in a second storage location associated with the tenancy;

creating a tenancy object for the output data which is generated by performing the data transformation on the input data, based on the tenancy identifier of the input data received from the identity service, the tenancy object for the output data representing an ownership of the output data;

storing the tenancy object created for the output data in a metadata repository according to a hierarchical data object ownership graph which comprises a plurality of tenancy objects arranged as parent objects and child objects, wherein the storing the tenancy object including associating the tenancy object created for the output data with a parent object in the hierarchical data object ownership graph; and

determining whether to authorize a request to display at least a portion of the output data based at least in part on the association between the tenancy object and the parent object in the hierarchical data object ownership graph.

12. The data analytics method of claim 11 , wherein:

the tenancy is determined during execution of the pipeline based on values of a specified column in the input data, the column specified in the flow;

records in the input dataset have different values of the specified column;

the pipeline generates multiple output datasets, each data set corresponding to one of the different values; and

the pipeline stores each of the multiple output datasets in locations corresponding to differing tenancies.

13. The data analytics method of claim 11 , wherein:

configuring a flow service to execute a flow comprises obtaining an artifact implementing the data transformation; and executing the flow comprises executing the artifact, wherein the artifact comprises a script, executable binary, or module.

14. The data analytics method of claim 11 , wherein:

the flow comprises a JSON or YAML object.

15. The data analytics method of claim 11 , wherein:

the flow specifies that the output data can be accessed using at least one of GraphQL, SOAP, Odata, or OpenAPI.

16. The data analytics method of claim 11 , wherein:

an append-only data store includes the first storage location; and

a data-lake includes the second location.

17. A data analytics method comprising:

receiving, at a first storage location, input data;

configuring a flow service to execute a flow, the flow comprises a JSON or YAML object and specifies that output data generated by the flow can be accessed using at least one of GraphQL, SOAP, Odata, or OpenAPI, flow execution comprising:

obtaining metadata associated with the flow, the metadata specifying a schema of the input data or rules for associating semantics with the input data;

creating a pipeline using the flow and the metadata associated with the flow, the pipeline configured to perform a data transformation specified in the flow and execution of the flow dependent on the obtained metadata;

determining a tenancy associated with the input data using the flow, the tenancy associated with the input data representing an ownership of the input data, the determining comprising:

extracting identifying characteristics of the input data from the input data;

providing the identifying characteristics of the input data to an identity service; and

receiving a tenancy identifier of the input data from the identity service;

generating the output data from the input data by performing the data transformation on the input data using the pipeline;

storing, using the pipeline, the output data in a second storage location associated with the tenancy;

creating a tenancy object for the output data which is generated by performing the data transformation on the input data, based on the tenancy identifier of the input data received from the identity service, the tenancy object for the output data representing an ownership of the output data;

storing the tenancy object created for the output data in a metadata repository according to a hierarchical data object ownership graph which comprises a plurality of tenancy objects arranged as parent objects and child objects, wherein the storing the tenancy object including associating the tenancy object created for the output data with a parent object in the hierarchical data object ownership graph; and

determining whether to authorize a request to display at least a portion of the output data based at least in part on the association between the tenancy object and the parent object in the hierarchical data object ownership graph.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2020
From: COLCORD, AARON DAVID; MELLOTT, KEVIN RICHARD; FAVELA, DAVID VINCENTE; NEONG, JEFFREY CHEE-KEONG
To: FIDELITY INFORMATION SERVICES, LLC
Reel/Frame 053690/0716 →
Continuity (2)
Provisional Application 63050107 · Jul 9, 2020
Related Publication 20220012251A1 · Jan 13, 2022
References Cited (19)
US 10009337B1 · Fischer · 2018 [cited by examiner]
US 10685033B1 · Searls et al. · 2020 [cited by applicant]
US 20130054648A1 · Mehta · 2013 [cited by examiner]
US 20130262685A1 · Shelton · 2013 [cited by examiner]
US 20140101117A1 · Uzzaman · 2014 [cited by examiner]
US 20140164318A1 · Tsai · 2014 [cited by examiner]
US 20140214753A1 · Guerra · 2014 [cited by examiner]
US 20150264158A1 · Viswanathan · 2015 [cited by applicant]
US 20160205007A1 · Syed · 2016 [cited by examiner]
US 20160307210A1 · Agarwal et al. · 2016 [cited by applicant]
US 20180052898A1 · Allan · 2018 [cited by examiner]
US 20180150783A1 · Xu et al. · 2018 [cited by applicant]
US 20180351832A1 · Coburn · 2018 [cited by examiner]
US 20190095241A1 · Ago et al. · 2019 [cited by applicant]
US 20200334270A1 · Vasireddy · 2020 [cited by examiner]
US 20200379970A1 · Vasilevskiy · 2020 [cited by examiner]
US 20200404021A1 · Singh · 2020 [cited by examiner]
US 20210227021A1 · Ito · 2021 [cited by examiner]
International Search Report and Written Opinion dated Oct. 21, 2021 in corresponding Application No. PCT/US2021/040895, 8 pages. [cited by applicant]
Cited By (1)
US 12,699,674