Si la clave incremental es una marca de tiempo, la columna de clave incremental debe almacenar datos de fecha/hora, y la marca de tiempo debe indicar la última vez que la fila de datos se modificó.
Cuando la especificación de ingesta masiva se ejecuta, el motor de Spark obtiene las filas de la tabla de origen con una marca de tiempo más reciente que la marca de tiempo más antigua que se ingirió previamente. Si la marca de tiempo de una fila de la tabla es más reciente que la marca de tiempo más antigua ingerida, el motor de Spark obtiene las filas asociadas a la marca de tiempo como datos incrementales.
Por ejemplo, se puede haber ingerido la siguiente tabla de origen en la ejecución previa de la especificación:
EmpLastName
LastModified
'Basquez'
01/27/2017 02:43:05
'Savage'
03/15/2014 07:16:20
'Greene'
12/13/2012 09:42:11
Observe que la marca de tiempo más antigua es
01/27/2017 02:43:05
.
En la siguiente tabla se muestran los datos que hay actualmente en la tabla de origen:
EmpLastName
LastModified
'Basquez'
10/22/2018 04:20:57
'Savage'
03/15/2014 07:16:20
'Greene'
12/13/2012 09:42:11
'Caldwell'
09/13/2018 04:24:26
Como la marca de tiempo más antigua ingerida es
01/27/2017 02:43:05
, el motor de Spark obtiene las filas de la tabla de origen con una marca de tiempo más reciente que
01/27/2017 02:43:05
.
En la tabla de origen actual se muestran dos marcas de tiempo que son más recientes:
10/22/2018 04:20:57
y
09/13/2018 04:24:26
, con lo cual las filas asociadas a esas marcas de tiempo son datos incrementales.
Cuando la especificación se ejecuta, el motor de Spark ingiere las siguientes filas de datos: