Storing and processing data organized as flexible records
First Claim
1. A method for persisting data received from different data sources, the method comprising:
- receiving, at a data aggregation server, data from a plurality of data sources having a plurality of schemas, the data including a plurality of data fields, and at least two of the data fields being structured according to different schema of the plurality of schema;
automatically, in response to receiving the data from the plurality of data sources;
aggregating a subset of the plurality of data fields that are relevant to an object stored by the data aggregation server;
generating a record identifier associated with the object;
generating a different insert event associated with each data field of the aggregated subset of data fields, each insert event including a value corresponding to the associated data field; and
storing each insert event in a different row of an operation log stored by the data aggregation server, each row including the record identifier, a field name corresponding to the data field associated with the insert event stored in the row, the value corresponding to the data field, and a timestamp of when the insert event occurred;
receiving, from a client device, a first data request for accessing a value corresponding to a data field of the aggregated subset of data fields;
in response to receiving the first data request, automatically transmitting, to the client device, the value included in the identified row in response to the first data request;
generating a modify event in a new row of the operation log, the new row including the record identifier, the field name corresponding to the data field associated with the modified value, a modified value, and a timestamp of when the modify event occurred;
identifying a row in the operation log that stores a most recent event associated with the data field corresponding to the modified value; and
responsive to identifying the row associated with the modify event as the most recent event, transmitting, to the client device, the modified value.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method are disclosed for persisting data received from disparate data sources having different internal schemas. In operation, a data processing engine aggregates related data received from the different data sources and organizes the aggregated data into flexible records. A flexible record is a composite of associated fields aggregated from a set of records received from one or more data sources. Each field associated with a flexible record includes data received from a particular data source and specifies the particular data source as the source of the data. Flexible records are stored in a storage repository, and each flexible record is associated with at least one user who accesses data via a client device.
13 Citations
20 Claims
-
1. A method for persisting data received from different data sources, the method comprising:
-
receiving, at a data aggregation server, data from a plurality of data sources having a plurality of schemas, the data including a plurality of data fields, and at least two of the data fields being structured according to different schema of the plurality of schema; automatically, in response to receiving the data from the plurality of data sources; aggregating a subset of the plurality of data fields that are relevant to an object stored by the data aggregation server; generating a record identifier associated with the object; generating a different insert event associated with each data field of the aggregated subset of data fields, each insert event including a value corresponding to the associated data field; and storing each insert event in a different row of an operation log stored by the data aggregation server, each row including the record identifier, a field name corresponding to the data field associated with the insert event stored in the row, the value corresponding to the data field, and a timestamp of when the insert event occurred; receiving, from a client device, a first data request for accessing a value corresponding to a data field of the aggregated subset of data fields; in response to receiving the first data request, automatically transmitting, to the client device, the value included in the identified row in response to the first data request; generating a modify event in a new row of the operation log, the new row including the record identifier, the field name corresponding to the data field associated with the modified value, a modified value, and a timestamp of when the modify event occurred; identifying a row in the operation log that stores a most recent event associated with the data field corresponding to the modified value; and responsive to identifying the row associated with the modify event as the most recent event, transmitting, to the client device, the modified value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer readable medium comprising instructions that, when executed by a processor, cause the processor to:
-
receive, at a data aggregation server, data from a plurality of data sources having a plurality of schemas, the data including a plurality of data fields, and at least two of the data fields being structured according to different schema of the plurality of schema; automatically, in response to receiving the data from the plurality of data sources; aggregate a subset of the plurality of data fields that are relevant to an object stored by the data aggregation server; generate a record identifier associated with the object; generate a different insert event associated with each data field of the aggregated subset of data fields, each insert event including a value corresponding to the associated data field; and store each insert event in a different row of an operation log stored by the data aggregation server, each row including the record identifier, a field name corresponding to the data field associated with the insert event stored in the row, the value corresponding to the data field, and a timestamp of when the insert event occurred; receive, from a client device, a first data request for accessing a value corresponding to a data field of the aggregated subset of data fields; in response to receiving the first data request, automatically transmit, to the client device, the value included in the identified row in response to the first data request; generate a modify event in a new row of the operation log, the new row including the record identifier, the field name corresponding to the data field associated with the modified value, a modified value, and a timestamp of when the modify event occurred; identify a row in the operation log that stores a most recent event associated with the data field corresponding to the modified value; and responsive to identifying the row associated with the modify event as the most recent event, transmit, to the client device, the modified value. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification