Class DataChangeRecordAction
java.lang.Object
org.apache.beam.sdk.io.gcp.spanner.changestreams.action.DataChangeRecordAction
This class is part of the process for
ReadChangeStreamPartitionDoFn
SDF. It is
responsible for processing DataChangeRecord
s. The records will simply be emitted to the
received output receiver.-
Constructor Summary
ConstructorsConstructorDescriptionDataChangeRecordAction
(ThroughputEstimator<DataChangeRecord> throughputEstimator) -
Method Summary
Modifier and TypeMethodDescriptionrun
(PartitionMetadata partition, DataChangeRecord record, RestrictionTracker<TimestampRange, com.google.cloud.Timestamp> tracker, RestrictionInterrupter<com.google.cloud.Timestamp> interrupter, DoFn.OutputReceiver<DataChangeRecord> outputReceiver, ManualWatermarkEstimator<Instant> watermarkEstimator) This is the main processing function for aDataChangeRecord
.
-
Constructor Details
-
DataChangeRecordAction
- Parameters:
throughputEstimator
- an estimator to calculate local throughput of this action.
-
-
Method Details
-
run
public Optional<DoFn.ProcessContinuation> run(PartitionMetadata partition, DataChangeRecord record, RestrictionTracker<TimestampRange, com.google.cloud.Timestamp> tracker, RestrictionInterrupter<com.google.cloud.Timestamp> interrupter, DoFn.OutputReceiver<DataChangeRecord> outputReceiver, ManualWatermarkEstimator<Instant> watermarkEstimator) This is the main processing function for aDataChangeRecord
. It returns anOptional
ofDoFn.ProcessContinuation
to indicate if the calling function should stop or not. If theOptional
returned is empty, it means that the calling function can continue with the processing. If anOptional
ofDoFn.ProcessContinuation.stop()
is returned, it means that this function was unable to claim the timestamp of theDataChangeRecord
, so the caller should stop.When processing the
DataChangeRecord
the following procedure is applied:- We try to cliam the data change record commit timestamp. If it is not possible, we stop here and return.
- We emit the data change record through the
DoFn.OutputReceiver
. - We update the watermark to the data change record commit timestamp.
- Parameters:
partition
- the current partition being processedrecord
- the change stream data record receivedtracker
- the restriction tracker of theReadChangeStreamPartitionDoFn
SDFinterrupter
- the restriction interrupter suggesting early termination of the processingoutputReceiver
- the output receiver of theReadChangeStreamPartitionDoFn
SDFwatermarkEstimator
- the watermark estimator of theReadChangeStreamPartitionDoFn
SDF- Returns:
Optional.empty()
if the caller can continue processing more records. A non emptyOptional
withDoFn.ProcessContinuation.stop()
if this function was unable to claim theDataChangeRecord
timestamp. A non emptyOptional
withDoFn.ProcessContinuation.resume()
if this function should commit what has already been processed and resume.
-