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 DataChangeRecords. 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 anOptionalofDoFn.ProcessContinuationto indicate if the calling function should stop or not. If theOptionalreturned is empty, it means that the calling function can continue with the processing. If anOptionalofDoFn.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
DataChangeRecordthe 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 theReadChangeStreamPartitionDoFnSDFinterrupter- the restriction interrupter suggesting early termination of the processingoutputReceiver- the output receiver of theReadChangeStreamPartitionDoFnSDFwatermarkEstimator- the watermark estimator of theReadChangeStreamPartitionDoFnSDF- Returns:
Optional.empty()if the caller can continue processing more records. A non emptyOptionalwithDoFn.ProcessContinuation.stop()if this function was unable to claim theDataChangeRecordtimestamp. A non emptyOptionalwithDoFn.ProcessContinuation.resume()if this function should commit what has already been processed and resume.
-