クライアント ライブラリのアップグレード

このページでは、以前にインストールした Cloud Bigtable クライアント ライブラリをアップグレードする方法について説明します。クライアント ライブラリを初めてインストールする必要がある場合は、Cloud Bigtable クライアント ライブラリにあるご希望のプログラミング言語の手順を実施してください。

Java 用 Bigtable クライアント

BigtableTableAdminClientBigtableInstanceAdminClient の便利なメソッドは廃止されました。

コードをアップグレードするには、getBaseClient() を使用して標準のプロトコル バッファ メソッドを呼び出します。そのためには、com.google.cloud.bigtable.admin.v2.models.CreateTableRequest などのカスタム ラッパー オブジェクトを com.google.bigtable.admin.v2.CreateTableRequest などの標準プロトコル バッファ リクエスト オブジェクトに置き換える必要があります。これらのオブジェクトは、完全修飾リソース名を想定しています。

次の例に示すようにコードを更新します。

  // Existing code
  BigtableTableAdminClient adminClient = BigtableTableAdminClient.create(PROJECT_ID, INSTANCE_ID);
  adminClient.createTable(
      CreateTableRequest.of(TABLE_ID)
          .addFamily("cf1"));

  // New code
  BigtableTableAdminClient adminClient = BigtableTableAdminClient.create(PROJECT_ID, INSTANCE_ID);
  String parent = "projects/" + PROJECT_ID + "/instances/" + INSTANCE_ID;
  com.google.bigtable.admin.v2.CreateTableRequest request =
      com.google.bigtable.admin.v2.CreateTableRequest.newBuilder()
          .setParent(parent)
          .setTableId(TABLE_ID)
          .setTable(com.google.bigtable.admin.v2.Table.newBuilder()
              .putColumnFamilies("cf1", com.google.bigtable.admin.v2.ColumnFamily.getDefaultInstance())
              .build())
          .build();
  adminClient.getBaseClient().createTable(request);

次のように置き換えます。

  • PROJECT_ID: Bigtable プロジェクトの識別子
  • INSTANCE_ID: Bigtable インスタンスの識別子
  • TABLE_ID: 新しいテーブルの識別子

Java 用 HBase クライアント

Java 用 HBase クライアントのバージョン 1.0 以降からアップグレードする場合に必要な変更は、構成内のバージョン番号の更新のみです。コードの更新は必要ありません。

1.0 より前の HBase クライアントからアップグレードする場合は、以下の手順を実施してください。

  1. 最新のクライアント ライブラリを使用するように依存関係を更新し、不要になったアーティファクトを削除します。

    • bigtable-hbase-1.0bigtable-hbase-1.1、および bigtable-hbase-1.2 アーティファクト(存在する場合)を依存関係から削除します。

    • アプリケーションの他の部分で必要ない場合は、netty-tcnative-boringssl-static を依存関係から削除します。

    • ユースケースに応じて、次のいずれかのアーティファクトを依存関係に追加します。2.x バージョンには、1.x バージョンにはない HBase 非同期クライアントが含まれています。

      • bigtable-hbase-1.x または bigtable-hbase-2.x: 依存関係を制御するスタンドアロン アプリケーションに使用します。
      • bigtable-hbase-1.x-hadoop または bigtable-hbase-2.x-hadoop: Hadoop 環境で使用されます。
      • bigtable-hbase-1.x-shaded または bigtable-hbase-2.x-shaded: protobufGuava などの初期のバージョンのコンポーネントを必要とする Hadoop 以外の環境で使用されます。
  2. Bigtable に接続するための構成設定を更新します。

    • コード内または hbase-site.xml ファイル内の構成設定に hbase.client.connection.impl の値が含まれている場合は、その値を com.google.cloud.bigtable.hbase1_x.BigtableConnection に変更します。

    • BigtableConnection クラスを直接使用する場合は、com.google.cloud.bigtable.hbase1_x.BigtableConnection を使用するようにコードを更新します。

    • hbase-site.xml ファイルを使用して Bigtable に接続するには、以下のようにします。

      • google.bigtable.instance.id プロパティを追加します(存在しない場合)。プロパティ値としてインスタンス ID を設定します。
      • google.bigtable.cluster.name プロパティを削除します(存在する場合)。
      • google.bigtable.zone.name プロパティを削除します(存在する場合)。
    • BigtableConfiguration.connect() を呼び出して Bigtable に接続する場合は、以下の例のようにコードを更新します。

    // Existing code
    BigtableConfiguration.connect(PROJECT_ID, ZONE_ID, CLUSTER_ID);
    
    // New code
    BigtableConfiguration.connect(PROJECT_ID, INSTANCE_ID);
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクトの ID。
    • ZONE_ID: クラスタが存在するゾーン。
    • CLUSTER_ID: クラスタの識別子。
    • INSTANCE_ID: インスタンスの識別子。
  3. ローカル開発、テスト、ステージング、本番など、すべての環境にアプリケーションを再デプロイします。

Java 用 Cloud Bigtable HBase クライアントのリリース一覧については、GitHub のリリース履歴をご覧ください。

Go

2016 年 6 月、Go クライアントは、Bigtable に対する接続方法が変更されました。クラスタ ID とゾーンを指定する代わりに、インスタンス ID を指定します。インスタンス ID は、Google Cloud コンソールにアクセスして確認できます。

クライアント ライブラリをダウンロードするには、GitHub のコード リポジトリにアクセスしてください。

次の例に示すようにコードを更新します。

  // Existing code
  adminClient, err := bigtable.NewAdminClient(ctx, PROJECT_ID, ZONE, CLUSTER_ID)
  client, err := bigtable.NewClient(ctx, PROJECT_ID, ZONE, CLUSTER_ID)

  // New code
  adminClient, err := bigtable.NewAdminClient(ctx, PROJECT_ID, INSTANCE_ID)
  client, err := bigtable.NewClient(ctx, PROJECT_ID, INSTANCE_ID)

次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。
  • ZONE: クラスタが存在するゾーン。
  • CLUSTER_ID: 接続するクラスタの識別子。
  • INSTANCE_ID: 接続するインスタンスの ID。

Go クライアント ライブラリのリリース一覧については、GitHub のリリース履歴をご覧ください。

次のステップ