Class DataChangeRecord
java.lang.Object
org.apache.beam.sdk.io.gcp.spanner.changestreams.model.DataChangeRecord
- All Implemented Interfaces:
Serializable,ChangeStreamRecord
@DefaultCoder(AvroCoder.class)
public class DataChangeRecord
extends Object
implements ChangeStreamRecord
A data change record encodes modifications to Cloud Spanner rows. A record will contain one or
more modifications made in one table with the same
ModType. There can be multiple data
change records for a transaction and commit timestamp.- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionDataChangeRecord(String partitionToken, com.google.cloud.Timestamp commitTimestamp, String serverTransactionId, boolean isLastRecordInTransactionInPartition, String recordSequence, String tableName, List<ColumnType> rowType, List<Mod> mods, ModType modType, ValueCaptureType valueCaptureType, long numberOfRecordsInTransaction, long numberOfPartitionsInTransaction, String transactionTag, boolean isSystemTransaction, ChangeStreamRecordMetadata metadata) Constructs a data change record for a given partition, at a given timestamp, for a given transaction. -
Method Summary
Modifier and TypeMethodDescriptionbooleancom.google.cloud.TimestampThe timestamp at which the modifications within were committed in Cloud Spanner.The connector execution metadata for this record.getMods()The modifications within this record.The type of operation that caused the modifications within this record.longThe total number of partitions for the given transaction.longThe total number of data change records for the given transaction.The unique identifier of the partition that generated this record.Indicates the order in which this record was put into the change stream in the scope of a partition, commit timestamp and transaction tuple.com.google.cloud.TimestampThe timestamp at which the modifications within were committed in Cloud Spanner.The type of the primary keys and modified columns within this record.The unique transaction id in which the modifications occurred.The name of the table in which the modifications within this record occurred.The transaction tag associated with the given transaction.The capture type of the change stream that generated this record.inthashCode()booleanIndicates whether this record is the last emitted for the given transaction in the given partition.booleanWhether the given transaction is Spanner system transaction.toString()
-
Constructor Details
-
DataChangeRecord
public DataChangeRecord(String partitionToken, com.google.cloud.Timestamp commitTimestamp, String serverTransactionId, boolean isLastRecordInTransactionInPartition, String recordSequence, String tableName, List<ColumnType> rowType, List<Mod> mods, ModType modType, ValueCaptureType valueCaptureType, long numberOfRecordsInTransaction, long numberOfPartitionsInTransaction, String transactionTag, boolean isSystemTransaction, ChangeStreamRecordMetadata metadata) Constructs a data change record for a given partition, at a given timestamp, for a given transaction. The data change record needs to be given information about the table modified, the type of primary keys and modified columns, the modifications themselves and other metadata.- Parameters:
partitionToken- the unique identifier of the partition that generated this recordcommitTimestamp- the timestamp at which the modifications within were committed in Cloud SpannerserverTransactionId- the unique transaction id in which the modifications occurredisLastRecordInTransactionInPartition- indicates whether this record is the last emitted for the given transaction in the given partitionrecordSequence- indicates the order in which this record was put into the change stream in the scope of a partition, commit timestamp and transaction tupletableName- the name of the table in which the modifications occurredrowType- the type of the primary keys and modified columnsmods- the modifications occurredmodType- the operation that caused the modification to occurvalueCaptureType- the capture type of the change streamnumberOfRecordsInTransaction- the total number of records for the given transactionnumberOfPartitionsInTransaction- the total number of partitions within the given transactiontransactionTag- the transaction tag associated with the given transactionisSystemTransaction- whether the given transaction is Spanner system transaction (or user transaction)metadata- connector execution metadata for the given record
-
-
Method Details
-
getRecordTimestamp
public com.google.cloud.Timestamp getRecordTimestamp()The timestamp at which the modifications within were committed in Cloud Spanner.- Specified by:
getRecordTimestampin interfaceChangeStreamRecord- Returns:
- the timestamp at which this record has occurred.
-
getPartitionToken
The unique identifier of the partition that generated this record. -
getCommitTimestamp
public com.google.cloud.Timestamp getCommitTimestamp()The timestamp at which the modifications within were committed in Cloud Spanner. -
getServerTransactionId
The unique transaction id in which the modifications occurred. -
isLastRecordInTransactionInPartition
public boolean isLastRecordInTransactionInPartition()Indicates whether this record is the last emitted for the given transaction in the given partition. -
getRecordSequence
Indicates the order in which this record was put into the change stream in the scope of a partition, commit timestamp and transaction tuple. -
getTableName
The name of the table in which the modifications within this record occurred. -
getRowType
The type of the primary keys and modified columns within this record. -
getMods
The modifications within this record. -
getModType
The type of operation that caused the modifications within this record. -
getValueCaptureType
The capture type of the change stream that generated this record. -
getNumberOfRecordsInTransaction
public long getNumberOfRecordsInTransaction()The total number of data change records for the given transaction. -
getNumberOfPartitionsInTransaction
public long getNumberOfPartitionsInTransaction()The total number of partitions for the given transaction. -
getTransactionTag
The transaction tag associated with the given transaction. -
isSystemTransaction
public boolean isSystemTransaction()Whether the given transaction is Spanner system transaction. Otherwise it is user/application transaction. -
getMetadata
The connector execution metadata for this record. -
equals
-
hashCode
public int hashCode() -
toString
-