升級用戶端程式庫

本頁說明如何將先前安裝的 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 專案的 ID
  • INSTANCE_ID:Bigtable 執行個體的 ID
  • TABLE_ID:新資料表的 ID

Java 適用的 HBase 用戶端

如果您是要從 Java 適用的 HBase 用戶端1.0 或更新版本進行升級,您只需要更新設定中的版本號碼即可,並不需要更新程式碼。

如果您是要從 1.0 版本之前的 HBase 用戶端進行升級,請完成下列步驟:

  1. 更新依附元件以使用最新的用戶端程式庫,並移除不再需要的成果:

    • 如果 bigtable-hbase-1.0bigtable-hbase-1.1bigtable-hbase-1.2 構件存在,請將其從依附元件中移除。

    • 除非應用程式的其他部分需要 netty-tcnative-boringssl-static,否則請從依附元件中將其移除。

    • 視用途而定,將下列其中一個構件新增至依附元件。2.x 版本包含 HBase 非同步用戶端,1.x 版本則沒有。

      • bigtable-hbase-1.xbigtable-hbase-2.x:適用於您控管依附元件的獨立應用程式。
      • bigtable-hbase-1.x-hadoopbigtable-hbase-2.x-hadoop:用於 Hadoop 環境。
      • bigtable-hbase-1.x-shadedbigtable-hbase-2.x-shaded:在 Hadoop 以外的環境中使用,這些環境需要較舊版本的元件,例如 protobufGuava
  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:叢集 ID。
    • INSTANCE_ID:執行個體的 ID。
  3. 在本機開發、測試、暫存和實際工作環境等所有環境中重新部署應用程式

如需 Java 適用的 HBase 用戶端的版本清單,請參閱 GitHub 中的版本記錄

Go

Go 用戶端在 2016 年 6 月變更了連線至 Bigtable 的方式。請指定執行個體 ID,而不是指定叢集 ID 和區域。您可以前往Google Cloud 控制台來找出執行個體 ID。

如要下載用戶端程式庫,請造訪 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:要連線的叢集 ID。
  • INSTANCE_ID:要連線的執行個體 ID。

如需 Go 用戶端程式庫的版本清單,請參閱 GitHub 中的版本記錄

後續步驟