US12505107B2ActiveUtilityA1

Batch materialization using iterative broadcast

52
Assignee: INTUIT INCPriority: Jun 13, 2024Filed: Jun 13, 2024Granted: Dec 23, 2025
Est. expiryJun 13, 2044(~17.9 yrs left)· nominal 20-yr term from priority
G06F 16/2358G06F 16/2246G06F 16/2456
52
PatentIndex Score
0
Cited by
26
References
18
Claims

Abstract

Systems and methods are described for batch materialization of an incremental change data capture (CDC) changeset. The primary keys are extracted from the incremental CDC changeset and are broadcast to a plurality of executors. By iteratively broadcasting the extracted primary keys in groups, each being a size that is less than a broadcast limitation, the full dataframe of extracted primary keys is broadcast to the executors. Each executor filters a baseline data table based on the extracted primary keys to generate a baseline match dataframe with all primary keys matching the extracted primary keys, and a baseline unmatched dataframe with all primary keys not matching the extracted primary keys. Each executor receives a partitioned incremental CDC changeset and applies the changes to the baseline match dataframe to produce a baseline change dataframe, which is merged with the baseline unmatched dataframe to produce a final changed baseline data table.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method performed by a computer system configured for batch materialization, the method comprising:
 receiving an incremental change data capture (CDC) changeset comprising a plurality of primary keys associated with corresponding data changes comprising at least one of additions, updates, and deletes;   extracting primary keys from the incremental CDC changeset;   iteratively broadcasting groups of extracted primary keys to each of a plurality of executors;   filtering, by each executor, a baseline data table based on the extracted primary keys to produce a baseline match dataframe and a baseline unmatched dataframe, wherein all primary keys in the baseline match dataframe match the extracted primary keys and wherein all primary keys in the baseline unmatched dataframe do not match the extracted primary keys;   providing a different subset of the incremental CDC changeset to each of the plurality of executors;   applying, by each executor, changes in a received subset of the incremental CDC changeset to the baseline match dataframe to produce a baseline change dataframe; and   merging the baseline change dataframe with the baseline unmatched dataframe to produce a final changed baseline data table and storing the final changed baseline data table in a data lake.   
     
     
         2 . The method of  claim 1 , further comprising representing the extracted primary keys in a trie data structure, wherein the extracted primary keys represented in the trie data structure are iteratively broadcast to each of the plurality of executors. 
     
     
         3 . The method of  claim 1 , further comprising generating the groups of the extracted primary keys, wherein each group of the extracted primary keys has a size that is less than a broadcast limit to the plurality of executors. 
     
     
         4 . The method of  claim 3 , wherein each group of the extracted primary keys has a same size. 
     
     
         5 . The method of  claim 3 , wherein the groups of the extracted primary keys are generated based on congruence of a hash value of each primary key modulo a number of the groups of the extracted primary keys. 
     
     
         6 . The method of  claim 1 , further comprising combining, by each of a plurality of executors, the groups of the extracted primary keys into a full list of extracted primary keys. 
     
     
         7 . The method of  claim 1 , further comprising:
 estimating a memory requirement for the batch materialization; and   determining a number of executors to be used for the batch materialization based on the memory requirement;   wherein the plurality of executors comprises the number of executors.   
     
     
         8 . The method of  claim 1 , further comprising consolidating rows in the incremental CDC changeset before providing the different subset of the incremental CDC changeset to each of the plurality of executors. 
     
     
         9 . The method of  claim 1 , wherein applying, by each executor, the changes in the received subset of the incremental CDC changeset to the baseline match dataframe to produce the baseline change dataframe comprises:
 generating a combined dataset by performing a union with the received subset of the incremental CDC changeset and the baseline match dataframe;   aggregating values associated with each primary key; and   performing at least one of additions, updates, and deletes from the received subset of the incremental CDC changeset to produce the baseline change dataframe.   
     
     
         10 . A computer system configured for batch materialization, comprising:
 one or more processors; and   a memory communicatively coupled with the one or more processors and storing instructions that, when executed by the one or more processors, causes the computer system to:
 receive an incremental change data capture (CDC) changeset comprising a plurality of primary keys associated with corresponding data changes comprising at least one of additions, updates, and deletes; 
 extract primary keys from the incremental CDC changeset; 
 iteratively broadcast groups of extracted primary keys to each of a plurality of executors; 
 filter, by each executor, a baseline data table based on the extracted primary keys to produce a baseline match dataframe and a baseline unmatched dataframe, wherein all primary keys in the baseline match dataframe match the extracted primary keys and wherein all primary keys in the baseline unmatched dataframe do not match the extracted primary keys; 
 provide a different subset of the incremental CDC changeset to each of the plurality of executors; 
 apply, by each executor, changes in a received subset of the incremental CDC changeset to the baseline match dataframe to produce a baseline change dataframe; and 
 merge the baseline change dataframe with the baseline unmatched dataframe to produce a final changed baseline data table and store the final changed baseline data table in a data lake. 
   
     
     
         11 . The computer system of  claim 10 , wherein the computer system is further configured to represent the extracted primary keys in a trie data structure, wherein the extracted primary keys represented in the trie data structure are iteratively broadcast to each of the plurality of executors. 
     
     
         12 . The computer system of  claim 10 , wherein the computer system is further configured to generate the groups of the extracted primary keys, wherein each group of the extracted primary keys has a size that is less than a broadcast limit to the plurality of executors. 
     
     
         13 . The computer system of  claim 12 , wherein each group of the extracted primary keys has a same size. 
     
     
         14 . The computer system of  claim 12 , wherein the groups of the extracted primary keys are generated based on congruence of a hash value of each primary key modulo a number of the groups of the extracted primary keys. 
     
     
         15 . The computer system of  claim 10 , wherein the computer system is further configured to combine, by each of a plurality of executors, the groups of the extracted primary keys into a full list of extracted primary keys. 
     
     
         16 . The computer system of  claim 10 , wherein the computer system is further configured to:
 estimate a memory requirement for the batch materialization; and   determine a number of executors to be used for the batch materialization based on the memory requirement;   wherein the plurality of executors comprises the number of executors.   
     
     
         17 . The computer system of  claim 10 , wherein the computer system is further configured to consolidate rows in the incremental CDC changeset before providing the different subset of the incremental CDC changeset to each of the plurality of executors. 
     
     
         18 . The computer system of  claim 10 , wherein the computer system is configured to apply, by each executor, the changes in the received subset of the incremental CDC changeset to the baseline match dataframe to produce the baseline change dataframe by being configured to:
 generate a combined dataset by performing a union with the received subset of the incremental CDC changeset and the baseline match dataframe;   aggregate values associated with each primary key; and   perform at least one of additions, updates, and deletes from the received subset of the incremental CDC changeset to produce the baseline change dataframe.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.