Java の Hello World 用の HBase API

この例は、Java 用 Bigtable HBase クライアント ライブラリを使用した「Hello World」アプリケーションで、次の方法を示します。

  • 認証の設定
  • Bigtable インスタンスに接続する
  • 新しいテーブルを作成する
  • テーブルにデータを書き込む
  • そのデータを読み取る
  • テーブルを削除する

認証の設定

このページの Java サンプルをローカル開発環境で使用するには、gcloud CLI をインストールして 初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。

  1. Google Cloud CLI をインストールします。

  2. 外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります

  3. ローカルシェルを使用している場合は、ユーザー アカウントのローカル認証情報を作成します。

    gcloud auth application-default login

    Cloud Shell を使用している場合は、この操作を行う必要はありません。

    認証エラーが返され、外部 ID プロバイダ (IdP)を使用している場合は、 連携 ID を使用して gcloud CLI にログインしていることを確認します。

詳細については、 ローカル開発環境の認証を設定するをご覧ください。

サンプルの実行

サンプルでは、HBase API を使用して Bigtable と通信します。このサンプルのコードは、GitHub リポジトリ GoogleCloudPlatform/cloud-bigtable-examplesjava/hello-world ディレクトリにあります。

このサンプル プログラムを実行するには、GitHub でのサンプルの手順に沿って操作してください。

HBase API の使用

このサンプル アプリケーションは Bigtable に接続して、いくつかの単純なオペレーションを行います。

クライアント ライブラリのインストールとインポート

このサンプルでは、Java 用 Bigtable HBase クライアントと Maven を使用します。詳しくは、クライアント ライブラリの使用手順をご覧ください。

このサンプルでは次のインポートが使用されています。

import com.google.cloud.bigtable.hbase.BigtableConfiguration;
import java.io.IOException;

Bigtable への接続

BigtableConfiguration クラスを使用して、Bigtable に接続します。

// Create the Bigtable connection, use try-with-resources to make sure it gets closed
try (Connection connection = BigtableConfiguration.connect(projectId, instanceId)) {

  // The admin API lets us create, manage and delete tables
  Admin admin = connection.getAdmin();

テーブルの作成

Admin API を使用して、テーブルを作成します。

// Create a table with a single column family
HTableDescriptor descriptor = new HTableDescriptor(TableName.valueOf(TABLE_NAME));
descriptor.addFamily(new HColumnDescriptor(COLUMN_FAMILY_NAME));

System.out.println("HelloWorld: Create table " + descriptor.getNameAsString());
admin.createTable(descriptor);

テーブルへの行の書き込み

Table クラスを使用して、テーブルに行を入れます。スループットを向上させるには、BigtableBufferedMutator クラスの使用を検討してください。

// Retrieve the table we just created so we can do some reads and writes
Table table = connection.getTable(TableName.valueOf(TABLE_NAME));

// Write some rows to the table
System.out.println("HelloWorld: Write some greetings to the table");
for (int