Interface BatchClient (6.53.0)

public interface BatchClient

Interface for the Batch Client that is used to read data from a Cloud Spanner database. An instance of this 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.

Methods

batchReadOnlyTransaction(BatchTransactionId batchTransactionId)

public abstract BatchReadOnlyTransaction batchReadOnlyTransaction(BatchTransactionId batchTransactionId)

Returns a BatchReadOnlyTransaction context in which multiple reads and/or queries can be performed. This is a non-blocking method. All reads/queries will use the same timestamp, and the timestamp can be inspected after this transaction is created successfully.

This method is useful to recreate a BatchReadOnlyTransaction object from an existing batchTransactionId. For example one might send the transaction id to a different process or machine and recreate the transaction object there.

Parameter
NameDescription
batchTransactionIdBatchTransactionId

to re-initialize the transaction, re-using the timestamp for successive read/query.

Returns
TypeDescription
BatchReadOnlyTransaction

batchReadOnlyTransaction(TimestampBound bound)

public abstract BatchReadOnlyTransaction batchReadOnlyTransaction(TimestampBound bound)

Returns a BatchReadOnlyTransaction 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.

Note that the bounded staleness modes, TimestampBound.Mode#MIN_READ_TIMESTAMP and TimestampBound.Mode#MAX_STALENESS, are not supported for BatchReadOnlyTransaction.

Parameter
NameDescription
boundTimestampBound

the timestamp bound at which to perform the read


 BatchReadOnlyTransaction txn = batchClient.batchReadOnlyTransaction(TimestampBound.strong());
 
 <!--SNIPPET batch_client_strong_read-->
Returns
TypeDescription
BatchReadOnlyTransaction

getDatabaseRole()

public default String getDatabaseRole()

Returns the DatabaseRole used by the client connection. The database role that is used determines the access permissions that a connection has. This can for example be used to create connections that are only permitted to access certain tables.

Returns
TypeDescription
String