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.



1088
1089
1090
# File 'lib/google/apis/spanner_v1/classes.rb', line 1088

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



1048
1049
1050
# File 'lib/google/apis/spanner_v1/classes.rb', line 1048

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



1054
1055
1056
# File 'lib/google/apis/spanner_v1/classes.rb', line 1054

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



1060
1061
1062
# File 'lib/google/apis/spanner_v1/classes.rb', line 1060

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



1079
1080
1081
# File 'lib/google/apis/spanner_v1/classes.rb', line 1079

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



1086
1087
1088
# File 'lib/google/apis/spanner_v1/classes.rb', line 1086

def partition_start_record
  @partition_start_record
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1093
1094
1095
1096
1097
1098
1099
# File 'lib/google/apis/spanner_v1/classes.rb', line 1093

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