Class DataChangeEvent

java.lang.Object
io.debezium.connector.spanner.db.model.event.DataChangeEvent
All Implemented Interfaces:
ChangeStreamEvent

public class DataChangeEvent extends Object implements ChangeStreamEvent
Specific DTO for Spanner Change Stream Data-change event
  • Field Details

    • partitionToken

      private final String partitionToken
    • commitTimestamp

      private final com.google.cloud.Timestamp commitTimestamp
    • serverTransactionId

      private final String serverTransactionId
    • isLastRecordInTransactionInPartition

      private final boolean isLastRecordInTransactionInPartition
    • recordSequence

      private final String recordSequence
    • tableName

      private final String tableName
    • rowType

      private final List<Column> rowType
    • mods

      private final List<Mod> mods
    • modType

      private final ModType modType
    • valueCaptureType

      private final ValueCaptureType valueCaptureType
    • numberOfRecordsInTransaction

      private final long numberOfRecordsInTransaction
    • numberOfPartitionsInTransaction

      private final long numberOfPartitionsInTransaction
    • transactionTag

      private final String transactionTag
    • isSystemTransaction

      private final boolean isSystemTransaction
    • metadata

      private final StreamEventMetadata metadata
  • Constructor Details

    • DataChangeEvent

      public DataChangeEvent(String partitionToken, com.google.cloud.Timestamp commitTimestamp, String serverTransactionId, boolean isLastRecordInTransactionInPartition, String recordSequence, String tableName, List<Column> rowType, List<Mod> mods, ModType modType, ValueCaptureType valueCaptureType, long numberOfRecordsInTransaction, long numberOfPartitionsInTransaction, String transactionTag, boolean isSystemTransaction, StreamEventMetadata 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 record
      commitTimestamp - the timestamp at which the modifications within were committed in Cloud Spanner
      serverTransactionId - the unique transaction id in which the modifications occurred
      isLastRecordInTransactionInPartition - indicates whether this record is the last emitted for the given transaction in the given partition
      recordSequence - indicates the order in which this record was put into the change stream in the scope of a partition, commit timestamp and transaction tuple
      tableName - the name of the table in which the modifications occurred
      rowType - the type of the primary keys and modified columns
      mods - the modifications occurred
      modType - the operation that caused the modification to occur
      valueCaptureType - the capture type of the change stream
      numberOfRecordsInTransaction - the total number of records for the given transaction
      numberOfPartitionsInTransaction - the total number of partitions within the given 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:
      getRecordTimestamp in interface ChangeStreamEvent
    • getPartitionToken

      public String 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

      public String 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

      public String 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

      public String getTableName()
      The name of the table in which the modifications within this record occurred.
    • getRowType

      public List<Column> getRowType()
      The type of the primary keys and modified columns within this record.
    • getMods

      public List<Mod> getMods()
      The modifications within this record.
    • getModType

      public ModType getModType()
      The type of operation that caused the modifications within this record.
    • getValueCaptureType

      public ValueCaptureType 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

      public String getTransactionTag()
      Transaction tag associated with this transaction.
    • isSystemTransaction

      public boolean isSystemTransaction()
      Indicates whether the transaction is a system transaction.
    • getMetadata

      public StreamEventMetadata getMetadata()
      The connector execution metadata for this record.
      Specified by:
      getMetadata in interface ChangeStreamEvent
    • toString

      public String toString()
      Overrides:
      toString in class Object