How googleapis/java-bigtable-hbase works
This repository provides a Java HBase-compatible client for Cloud Bigtable, plus Hadoop MapReduce and Beam/Dataflow utilities for importing, exporting, snapshot restore, table creation, and synchronization. The main client workflow translates HBase requests and results through adapters and wrappers to Bigtable data/admin APIs. The graph also preserves the separate batch-data and validation workflows documented by the entry points and module tree. Detailed wiring is shown only where the sampled source or README supports it; unsampled utility internals are represented at their exact enclosing paths.
Main entry points: AbstractBigtableTable.java Table and admin API · Main.java Batch job dispatcher · DataClientVeneerApi.java Veneer data client · AbstractBigtableConnection.java Connection and table API
Components 21
HBase client
- Connection and table API
bigtable-client-core-parent/bigtable-hbase/src/main/java/org/apache/hadoop/hbase/client/AbstractBigtableConnection.java - Table and admin API
bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/AbstractBigtableTable.java - Read adapters
bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/adapters/read/ScanAdapter.java - Mutation adapters
bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/adapters/Adapters.java - Filter adapters
bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/adapters/filters/BigtableFilterAdapter.java - Admin adapters
bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/adapters/admin/TableAdapter.java
Bigtable access
- Data API wrapper
bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/wrappers/DataClientWrapper.java - Admin API wrapper
bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/wrappers/AdminClientWrapper.java - Veneer data client
bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/wrappers/veneer/DataClientVeneerApi.java - Shared client resources
bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/wrappers/veneer/SharedDataClientWrapperFactory.java
Batch workflows
- Batch job dispatcher
bigtable-dataflow-parent/bigtable-beam-import/src/main/java/com/google/cloud/bigtable/beam/Main.java - Sequence-file jobs
bigtable-dataflow-parent/bigtable-beam-import/src/main/java/com/google/cloud/bigtable/beam/sequencefiles/ImportJob.java - Snapshot import and restore
bigtable-dataflow-parent/bigtable-beam-import/src/main/java/com/google/cloud/bigtable/beam/hbasesnapshots/ImportJobFromHbaseSnapshot.java - Beam table IO
bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableIO.java - Row-key sampling
bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/batch/common/CloudBigtableServiceImpl.java
Migration tools
- Table synchronization
bigtable-dataflow-parent/bigtable-beam-import/src/main/java/com/google/cloud/bigtable/beam/validation/SyncTableJob.java - Schema translation
bigtable-hbase-1.x-parent/bigtable-hbase-1.x-tools/src/main/java/com/google/cloud/bigtable/hbase/tools/HBaseSchemaTranslator.java - MapReduce utilities
bigtable-hbase-1.x-parent/bigtable-hbase-1.x-mapreduce/src/main/java/com/google/cloud/bigtable/mapreduce/Driver.java
Other components
- HBase applications
- Cloud Bigtable
- Hadoop and HBase
Connections 24
- HBase applications → Connection and table API: connects through
- Connection and table API → Table and admin API: provides
- Table and admin API → Read adapters: adapts reads
- Table and admin API → Mutation adapters: adapts mutations
- Table and admin API → Filter adapters: translates filters
- Table and admin API → Admin adapters: adapts admin requests
- Table and admin API → Data API wrapper: issues data calls
- Table and admin API → Admin API wrapper: issues admin calls
- Data API wrapper → Veneer data client: implemented by
- Shared client resources → Veneer data client: creates and wraps
- Veneer data client → Cloud Bigtable: reads and mutates
- Admin API wrapper → Cloud Bigtable: administers
- Hadoop and HBase → Batch job dispatcher: submits jobs
- Batch job dispatcher → Sequence-file jobs: dispatches import/export
- Batch job dispatcher → Snapshot import and restore: dispatches snapshot import
- Batch job dispatcher → Table synchronization: dispatches synchronization
- Beam table IO → Row-key sampling: requests row keys
- Row-key sampling → Cloud Bigtable: samples keys
- Sequence-file jobs → Cloud Bigtable: imports or exports
- Snapshot import and restore → Cloud Bigtable: restores snapshot data
- Table synchronization → Cloud Bigtable: reads and compares
- Hadoop and HBase → Schema translation: translates schemas
- Hadoop and HBase → MapReduce utilities: runs MapReduce jobs
- MapReduce utilities → Cloud Bigtable: imports, exports, syncs