Package com.google.cloud.spanner
Interface Spanner
- All Superinterfaces:
AutoCloseable,com.google.cloud.Service<SpannerOptions>
An interface for Cloud Spanner. Typically, there would only be one instance of this for the
lifetime of the application which must be closed by invoking
close() when it is no
longer needed. Failure to do so may result in leaking session resources and exhausting session
quota.-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes all the clients associated with this instance and frees up all the resources.default DatabaseAdminClientReturns aDatabaseAdminClientto execute admin operations on Cloud Spanner databases.default InstanceAdminClientReturns aInstanceAdminClientto execute admin operations on Cloud Spanner databases.com.google.api.gax.core.ExecutorProviderReturns aBatchClientto do batch operations on Cloud Spanner databases.Returns aDatabaseAdminClientto execute admin operations on Cloud Spanner databases.Returns aDatabaseClientfor the given database.Returns anInstanceAdminClientto execute admin operations on Cloud Spanner instances.booleanisClosed()Methods inherited from interface com.google.cloud.Service
getOptions
-
Method Details
-
getDatabaseAdminClient
DatabaseAdminClient getDatabaseAdminClient()Returns aDatabaseAdminClientto execute admin operations on Cloud Spanner databases.- Returns:
DatabaseAdminClient
-
createDatabaseAdminClient
Returns aDatabaseAdminClientto execute admin operations on Cloud Spanner databases. This method always creates a new instance ofDatabaseAdminClientwhich is anAutoCloseableresource. For optimising the number of clients, caller may choose to cache the clients instead of repeatedly invoking this method and creating new instances.- Returns:
DatabaseAdminClient
-
getInstanceAdminClient
InstanceAdminClient getInstanceAdminClient()Returns anInstanceAdminClientto execute admin operations on Cloud Spanner instances.- Returns:
InstanceAdminClient
-
createInstanceAdminClient
Returns aInstanceAdminClientto execute admin operations on Cloud Spanner databases. This method always creates a new instance ofInstanceAdminClientwhich is anAutoCloseableresource. For optimising the number of clients, caller may choose to cache the clients instead of repeatedly invoking this method and creating new instances.- Returns:
InstanceAdminClient
-
getDatabaseClient
Returns aDatabaseClientfor the given database. It uses a pool of sessions to talk to the database.SpannerOptions options = SpannerOptions.newBuilder().build(); Spanner spanner = options.getService(); final String project = "test-project"; final String instance = "test-instance"; final String database = "example-db"; DatabaseId db = DatabaseId.of(project, instance, database); DatabaseClient dbClient = spanner.getDatabaseClient(db); -
getBatchClient
Returns aBatchClientto do batch operations on Cloud Spanner databases. Batch client is useful when one wants to read/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/query over each partition independently yet at the same snapshot.For all other use cases,
DatabaseClientis more appropriate and performant.SpannerOptions options = SpannerOptions.newBuilder().build(); Spanner spanner = options.getService(); final String project = "test-project"; final String instance = "test-instance"; final String database = "example-db"; DatabaseId db = DatabaseId.of(project, instance, database); BatchClient batchClient = spanner.getBatchClient(db); -
close
void close()Closes all the clients associated with this instance and frees up all the resources. This method will block until it can clean up all the resources. Specifically, it deletes all the underlying sessions (which involves rpcs) and closes all the gRPC channels. Once this method called, this object is no longer usable. It is strongly advised to call this method when you are done with theSpannerobject, typically when your application shuts down. There is a hard limit on number of sessions in Cloud Spanner and not calling this method can lead to unused sessions piling up on the backend.- Specified by:
closein interfaceAutoCloseable
-
isClosed
boolean isClosed()- Returns:
trueif thisSpannerobject is closed.
-
getAsyncExecutorProvider
com.google.api.gax.core.ExecutorProvider getAsyncExecutorProvider()- Returns:
- the
ExecutorProviderthat is used for asynchronous queries and operations.
-