IP Library › Granted Patent US 12,386,848
Granted Patent B2
US 12,386,848 · App. 18/521,417 · Granted Aug 12, 2025

Method and system for persisting data

Inventor: Frank Thomas (Toronto, CA)
Assignee: Kinaxis Inc.
G06F16/254G06F16/2228G06F16/25G06Q10/06G06Q10/067G06Q10/10
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,386,848
App. No.
18/521,417
Granted
Aug 12, 2025
Kind
B2
Abstract

A method and system for persisting data are provided. Batch data is periodically extracted via a computer system from at least one primary data source. Batch data is transformed via the computer system. The batch data is loaded, via the computer system, into a database. Real-time data is continuously received from at least one secondary data source. The received real-time data is indexed in an index. Business intelligence reports are generated from both the real-time data in the index and the batch data in the database.

Claims (35)

1. A method for persisting and reconciling one or more data sources on a computer system, the method comprising:

periodically extracting batch data from at least one primary data source,

transforming the batch data into a first format specified by a data schema for a database;

loading the transformed batch data into the database

continuously receiving real-time data from at least one secondary data source;

indexing the received real-time data to generate an index;

generating business intelligence reports comprising the real-time data in the index and the transformed batch data in the database;

storing the real-time data by key-value in a distributed key-value store for subsequent integration into the database, the key-value bucketing a time range of the real-time data having time-series information within the time range of the key-value, and

transforming the real-time data stored in the distributed key-value store into the first format specified by the data schema for the database.

2. The method of claim 1 , further comprising storing the extracted batch data in an interim data store.

3. The method of claim 1 , wherein transforming the batch data comprises at least one of discarding certain data, translating the data to account for differences in a representation of the data, determining the age of the data, sorting the data, joining the data where the data is from multiple sources, and aggregating the data.

4. The method of claim 1 , wherein the at least one primary data source does not publish or push the data immediately.

5. The method of claim 1 , further comprising analyzing the data in the database for generating the business intelligence reports, the analyzing comprising at least one of statistical analysis, machine learning techniques, and data mining.

6. The method of claim 1 , further comprising periodically reconciling the real-time data against the batch data.

7. The method of claim 1 , wherein the real-time data is acquired via at least one of REST requests and a user datagram protocol.

8. The method of claim 1 , wherein the real-time data is pushed onto a distributed message queue system.

9. A system for persisting and reconciling one or more data sources, the system comprising one or more processors and a data storage, the one or more processors configured to execute, or direct to be executed:

an extract-transform-load module to:

periodically extract batch data from at least one primary data source;

transform the batch data into a first format specified by a data schema for a database; and

load the transformed batch data into the database;

a real-time distributed processing module to:

continuously receive real-time data from at least one secondary data source;

index the received real-time data to generate an index;

store the real-time data by key-value in a distributed key-value store for subsequent integration into the database, the key-value bucketing a time range of the real-time data having time-series information within the time range of the key-value; and

transform the real-time data stored in the distributed key-value store into the first format specified by the data schema for the database,

and

at least one business intelligence tool to generate business intelligence reports comprising the real-time data in the index and the transformed batch data in the database.

10. The system of claim 9 , the extract-transform-load module further executable to store the extracted batch data in an interim data store.

11. The system of claim 9 , wherein transforming the batch data by the extract-transform-load module comprises at least one of discarding certain data, translating the data to account for differences in a representation of the data, determining the age of the data, sorting the data, joining the data where the data is from multiple sources, and aggregating the data.

12. The system of claim 9 , wherein the at least one primary data source does not publish or push the data immediately.

13. The system of claim 9 , further comprising a data analysis module executable to analyze the data in the database for generating the business intelligence reports, the analysis comprising at least one of statistical analysis, machine learning techniques, and data mining.

14. The system of claim 9 , wherein the at least one business intelligence tool periodically reconciles the real-time data against the batch data.

15. The system of claim 9 , wherein the real-time data is acquired by the extract-transform-load module via at least one of REST requests and a user datagram protocol.

16. The system of claim 9 , further comprising a distributed message queue system, the extract-transform-load module pushes the real-time data onto the distributed message queue system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2025
From: THOMAS, FRANK
To: RUBIKLOUD TECHNOLOGIES INC.
Reel/Frame 070894/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2025
From: RUBIKLOUD TECHNOLOGIES INC.
To: KINAXIS INC.
Reel/Frame 070896/0304 →
Continuity (4)
Continuation 17697317 · Mar 17, 2022
Continuation 16088149
Provisional Application 62307889 · Mar 14, 2016
Related Publication 20240095256A1 · Mar 21, 2024
References Cited (47)
US 7461039B1 · Gilman · 2008 [cited by examiner]
US 8930380B1 · Saurabh et al. · 2015 [cited by applicant]
US 8978034B1 · Goodson et al. · 2015 [cited by applicant]
US 9665621B1 · Reiner et al. · 2017 [cited by applicant]
US 10424020B2 · Kmak et al. · 2019 [cited by applicant]
US 10452981B1 · Christie, IV et al. · 2019 [cited by applicant]
US 20020174126A1 · Britton · 2002 [cited by examiner]
US 20030084053A1 · Govrin et al. · 2003 [cited by applicant]
US 20040083199A1 · Govindugari et al. · 2004 [cited by applicant]
US 20050251812A1 · Hayward · 2005 [cited by applicant]
US 20050262192A1 · Mamou et al. · 2005 [cited by applicant]
US 20050289138A1 · Cheng et al. · 2005 [cited by applicant]
US 20070160067A1 · Hayward · 2007 [cited by applicant]
US 20080046536A1 · Broda · 2008 [cited by applicant]
US 20110035744A1 · Bhatia · 2011 [cited by applicant]
US 20110301982A1 · Green, Jr. et al. · 2011 [cited by applicant]
US 20110313969A1 · Ramu · 2011 [cited by applicant]
US 20120102053A1 · Barrett et al. · 2012 [cited by applicant]
US 20120143715A1 · Eshghi et al. · 2012 [cited by applicant]
US 20130185349A1 · Broda · 2013 [cited by applicant]
US 20140095645A1 · Grosz · 2014 [cited by examiner]
US 20140229628A1 · Mandal · 2014 [cited by examiner]
US 20140289188A1 · Shimanovsky et al. · 2014 [cited by applicant]
US 20150205602A1 · Prismon et al. · 2015 [cited by applicant]
US 20160055499A1 · Hawkins et al. · 2016 [cited by applicant]
US 20160162550A1 · Wang et al. · 2016 [cited by applicant]
US 20160234087A1 · Nyerges · 2016 [cited by examiner]
US 20170006135A1 · Siebel et al. · 2017 [cited by applicant]
US 20170046409A1 · Bender · 2017 [cited by applicant]
US 20170076323A1 · Palanciuc et al. · 2017 [cited by applicant]
US 20180084073A1 · Walsh et al. · 2018 [cited by applicant]
Bornea et al., “Semi-Streamed Index Join for Near-Real Time Execution of ETL Transformations,” Proceedings of the 2011 IEEE 27th International Conference on Data Engineering ICDE 2011, Apr. 2011, pp. 159-170. [cited by applicant]
European Search Report for 17765609.7, EPO, dated Sep. 6, 2019. [cited by applicant]
International Patent Application No. PCT/CA2017/050330, International Preliminary Report on Patentability dated Sep. 27, 2018. [cited by applicant]
International Search Report corresponding to PCT/CA2017/050330; Canadian Intellectual Property Office; issued Jul. 21, 2017. [cited by applicant]
Santos et al., “Real-Time Data Warehouse Loading Methodology,” Proceedings of the 2008 International Symposium on Database Engineering Applications IDEAS '08, Sep. 2008, pp. 49-58. [cited by applicant]
U.S. Appl. No. 16/088,149, Notice of Allowance dated Dec. 22, 2021. [cited by applicant]
U.S. Appl. No. 17/697,317, Advisory Action dated Jul. 25, 2023. [cited by applicant]
U.S. Appl. No. 17/697,317, Final office action dated May 2, 2023. [cited by applicant]
U.S. Appl. No. 17/697,317, Non Final office Action dated Oct. 12, 2023. [cited by applicant]
U.S. Appl. No. 17/697,317, Non Final office Action dated Oct. 18, 2022. [cited by applicant]
U.S. Appl. No. 17/697,317, Notice of Allowance dated Nov. 9, 2023. [cited by applicant]
U.S. Appl. No. 16/088,149, Final Office Action dated Feb. 9, 2021. [cited by applicant]
U.S. Appl. No. 16/088,149, Non-Final Office Action dated Jul. 23, 2021. [cited by applicant]
U.S. Appl. No. 16/088,149, Non-Final Office Action dated Jun. 19, 2020. [cited by applicant]
U.S. Appl. No. 16/088,149, Non-Final Office Action dated Nov. 6, 2020. [cited by applicant]
Written Opinion of the International Searching Authority corresponding to PCT/CA2017/050330; Canadian Intellectual Property Office; issued Jul. 21, 2017. [cited by applicant]