LittleTable is an emulator for Google Cloud Bigtable, intended
to replace the emulator distributed with the gcloud utility.
It aims to provide full compatibility with the Cloud Bigtable API,
and fill the gaps in the Go-based emulator, such as the sink filter.
Maven:
<dependency>
<groupId>com.steveniemitz</groupId>
<artifactId>littletable_2.12</artifactId>
<version>1.1.0</version>
</dependency>Gradle:
compile 'com.steveniemitz:littletable_2.12:1.0.0'sbt:
libraryDependencies += "com.steveniemitz" %% "littletable" % "1.0.0"LittleTable assumes you'll "bring your own" dependencies for gRPC as well as bigtable-client-core.
By default, bigtable-client-core will also include the required gRPC dependencies, so adding a
dependency to that is all that's required.
See build.sbt for reasonable defaults.
BigtableEmulator.newBuilder (or BigtableEmulators.newBuilder in Java) can be used to obtain an
emulator builder. The builder can configure an in-process gRPC transport, or a TCP transport
(or both). When using the in-process emulator, the session provided by the built emulator must be
used. For advanced usage, BigtableEmulator.Builder.configureServerBuilder can be used to
configure a user-provided gRPC server builder.
val emulator =
BigtableEmulator.newBuilder
.withInProcess
.build()
// Start the emulator
emulator.start()
// Use the client
val session = emulator.session
val rows = session.getDataClient.readFlatRowsList(...)See the BigtableTestSuite for a full example.