Class: Google::Apis::SpannerV1::ChangeStreamRecord

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/spanner_v1/classes.rb,
lib/google/apis/spanner_v1/representations.rb,
lib/google/apis/spanner_v1/representations.rb

Overview

Spanner Change Streams enable customers to capture and stream out changes to their Spanner databases in real-time. A change stream can be created with option partition_mode='IMMUTABLE_KEY_RANGE' or partition_mode=' MUTABLE_KEY_RANGE'. This message is only used in Change Streams created with the option partition_mode='MUTABLE_KEY_RANGE'. Spanner automatically creates a special Table-Valued Function (TVF) along with each Change Streams. The function provides access to the change stream's records. The function is named READ_ (where is the name of the change stream), and it returns a table with only one column called ChangeRecord.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ ChangeStreamRecord

Returns a new instance of ChangeStreamRecord.



1155
1156
1157
# File 'lib/google/apis/spanner_v1/classes.rb', line 1155

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#data_change_recordGoogle::Apis::SpannerV1::DataChangeRecord

A data change record contains a set of changes to a table with the same modification type (insert, update, or delete) committed at the same commit timestamp in one change stream partition for the same transaction. Multiple data change records can be returned for the same transaction across multiple change stream partitions. Corresponds to the JSON property dataChangeRecord



1115
1116
1117
# File 'lib/google/apis/spanner_v1/classes.rb', line 1115

def data_change_record
  @data_change_record
end

#heartbeat_recordGoogle::Apis::SpannerV1::HeartbeatRecord

A heartbeat record is returned as a progress indicator, when there are no data changes or any other partition record types in the change stream partition. Corresponds to the JSON property heartbeatRecord



1121
1122
1123
# File 'lib/google/apis/spanner_v1/classes.rb', line 1121

def heartbeat_record
  @heartbeat_record
end

#partition_end_recordGoogle::Apis::SpannerV1::PartitionEndRecord

A partition end record serves as a notification that the client should stop reading the partition. No further records are expected to be retrieved on it. Corresponds to the JSON property partitionEndRecord



1127
1128
1129
# File 'lib/google/apis/spanner_v1/classes.rb', line 1127

def partition_end_record
  @partition_end_record
end

#partition_event_recordGoogle::Apis::SpannerV1::PartitionEventRecord

A partition event record describes key range changes for a change stream partition. The changes to a row defined by its primary key can be captured in one change stream partition for a specific time range, and then be captured in a different change stream partition for a different time range. This movement of key ranges across change stream partitions is a reflection of activities, such as Spanner's dynamic splitting and load balancing, etc. Processing this event is needed if users want to guarantee processing of the changes for any key in timestamp order. If time ordered processing of changes for a primary key is not needed, this event can be ignored. To guarantee time ordered processing for each primary key, if the event describes move-ins, the reader of this partition needs to wait until the readers of the source partitions have processed all records with timestamps <= this PartitionEventRecord. commit_timestamp, before advancing beyond this PartitionEventRecord. If the event describes move-outs, the reader can notify the readers of the destination partitions that they can continue processing. Corresponds to the JSON property partitionEventRecord



1146
1147
1148
# File 'lib/google/apis/spanner_v1/classes.rb', line 1146

def partition_event_record
  @partition_event_record
end

#partition_start_recordGoogle::Apis::SpannerV1::PartitionStartRecord

A partition start record serves as a notification that the client should schedule the partitions to be queried. PartitionStartRecord returns information about one or more partitions. Corresponds to the JSON property partitionStartRecord



1153
1154
1155
# File 'lib/google/apis/spanner_v1/classes.rb', line 1153

def partition_start_record
  @partition_start_record
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1160
1161
1162
1163
1164
1165
1166
# File 'lib/google/apis/spanner_v1/classes.rb', line 1160

def update!(**args)
  @data_change_record = args[:data_change_record] if args.key?(:data_change_record)
  @heartbeat_record = args[:heartbeat_record] if args.key?(:heartbeat_record)
  @partition_end_record = args[:partition_end_record] if args.key?(:partition_end_record)
  @partition_event_record = args[:partition_event_record] if args.key?(:partition_event_record)
  @partition_start_record = args[:partition_start_record] if args.key?(:partition_start_record)
end