Class: Google::Cloud::Spanner::BatchClient
- Inherits:
-
Object
- Object
- Google::Cloud::Spanner::BatchClient
- Defined in:
- lib/google/cloud/spanner/batch_client.rb
Overview
BatchClient
Provides a batch client that can be used to read data from a Cloud Spanner database. An instance of this class is tied to a specific database.
BatchClient is useful when one wants to read or query a large amount of data from Cloud Spanner across multiple processes, even across different machines. It allows to create partitions of Cloud Spanner database and then read or query over each partition independently yet at the same snapshot.
See Project#batch_client.
Instance Method Summary collapse
-
#batch_snapshot(strong: nil, timestamp: nil, read_timestamp: nil, staleness: nil, exact_staleness: nil) {|snapshot| ... } ⇒ Google::Cloud::Spanner::BatchSnapshot
Returns a BatchSnapshot context in which multiple reads and/or queries can be performed.
-
#database ⇒ Database
The Spanner database connected to.
-
#database_id ⇒ String
The unique identifier for the database.
-
#directed_read_options ⇒ Hash
A hash of values to specify the custom directed read options for executing SQL query.
-
#fields(types) ⇒ Fields
Creates a configuration object (Fields) that may be provided to queries or used to create STRUCT objects.
-
#instance ⇒ Instance
The Spanner instance connected to.
-
#instance_id ⇒ String
The unique identifier for the instance.
-
#load_batch_snapshot(serialized_snapshot) ⇒ Google::Cloud::Spanner::BatchSnapshot
Returns a BatchSnapshot context in which multiple reads and/or queries can be performed.
-
#load_partition(serialized_partition) ⇒ Google::Cloud::Spanner::Partition
Returns a Partition from a serialized representation.
-
#project ⇒ Project
The Spanner project connected to.
-
#project_id ⇒ String
The unique identifier for the project.
-
#range(beginning, ending, exclude_begin: false, exclude_end: false) ⇒ Google::Cloud::Spanner::Range
Creates a Spanner Range.
Instance Method Details
#batch_snapshot(strong: nil, timestamp: nil, read_timestamp: nil, staleness: nil, exact_staleness: nil) {|snapshot| ... } ⇒ Google::Cloud::Spanner::BatchSnapshot
Returns a Google::Cloud::Spanner::BatchSnapshot context in which multiple reads and/or queries can be performed. All reads/queries will use the same timestamp, and the timestamp can be inspected after this transaction is created successfully. This is a blocking method since it waits to finish the RPCs.
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 188 def batch_snapshot strong: nil, timestamp: nil, read_timestamp: nil, staleness: nil, exact_staleness: nil validate_snapshot_args! strong: strong, timestamp: , read_timestamp: , staleness: staleness, exact_staleness: exact_staleness ensure_service! snp_session = session snp_grpc = @project.service.create_snapshot \ snp_session.path, strong: strong, timestamp: || , staleness: staleness || exact_staleness BatchSnapshot.from_grpc snp_grpc, snp_session, directed_read_options: @directed_read_options end |
#database ⇒ Database
The Spanner database connected to.
110 111 112 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 110 def database @project.database instance_id, database_id end |
#database_id ⇒ String
The unique identifier for the database.
92 93 94 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 92 def database_id @database_id end |
#directed_read_options ⇒ Hash
A hash of values to specify the custom directed read options for executing SQL query.
117 118 119 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 117 def @directed_read_options end |
#fields(types) ⇒ Fields
Creates a configuration object (Fields) that may be provided to queries or used to create STRUCT objects. (The STRUCT will be represented by the Data class.) See Client#execute and/or Fields#struct.
For more information, see Data Types - Constructing a STRUCT.
357 358 359 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 357 def fields types Fields.new types end |
#instance ⇒ Instance
The Spanner instance connected to.
104 105 106 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 104 def instance @project.instance instance_id end |
#instance_id ⇒ String
The unique identifier for the instance.
86 87 88 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 86 def instance_id @instance_id end |
#load_batch_snapshot(serialized_snapshot) ⇒ Google::Cloud::Spanner::BatchSnapshot
Returns a Google::Cloud::Spanner::BatchSnapshot context in which multiple reads and/or queries can be performed. All reads/queries will use the same timestamp, and the timestamp can be inspected after this transaction is created successfully. This method does not perform an RPC.
241 242 243 244 245 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 241 def load_batch_snapshot serialized_snapshot ensure_service! BatchSnapshot.load serialized_snapshot, service: @project.service, query_options: @query_options end |
#load_partition(serialized_partition) ⇒ Google::Cloud::Spanner::Partition
Returns a Partition from a serialized representation. See Partition.load.
282 283 284 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 282 def load_partition serialized_partition Partition.load serialized_partition end |
#project ⇒ Project
The Spanner project connected to.
98 99 100 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 98 def project @project end |
#project_id ⇒ String
The unique identifier for the project.
80 81 82 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 80 def project_id @project.service.project end |
#range(beginning, ending, exclude_begin: false, exclude_end: false) ⇒ Google::Cloud::Spanner::Range
Creates a Spanner Range. This can be used in place of a Ruby Range when needing to exclude the beginning value.
388 389 390 391 392 |
# File 'lib/google/cloud/spanner/batch_client.rb', line 388 def range beginning, ending, exclude_begin: false, exclude_end: false Range.new beginning, ending, exclude_begin: exclude_begin, exclude_end: exclude_end end |