Interface BatchClient

All Known Implementing Classes:
BatchClientImpl

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.

  • Method Details

    • batchReadOnlyTransaction

      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.

      Parameters:
      bound - the timestamp bound at which to perform the read
      
       BatchReadOnlyTransaction txn = batchClient.batchReadOnlyTransaction(TimestampBound.strong());
       
    • batchReadOnlyTransaction

      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.

      Parameters:
      batchTransactionId - to re-initialize the transaction, re-using the timestamp for successive read/query.
    • getDatabaseRole

      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.