升級用戶端程式庫
本頁說明如何將先前安裝的 Cloud BigTable 用戶端程式庫升級。如果您是首次需要安裝用戶端程式庫,請按照 Cloud BigTable 用戶端程式庫中您偏好的程式設計語言操作說明進行。
Java 適用的 Bigtable 用戶端
BigtableTableAdminClient 和 BigtableInstanceAdminClient 中的便利方法已過時。
如要升級程式碼,請按照下列步驟操作:
- 使用靜態
create()工廠方法,例項化 V2 用戶端BigtableTableAdminClientV2和BigtableInstanceAdminClientV2。 - 將自訂封裝容器要求物件 (例如
com.google.cloud.bigtable.admin.v2.models.CreateTableRequest) 替換為標準通訊協定緩衝區要求物件 (例如com.google.bigtable.admin.v2.CreateTableRequest)。 - 請確認新的標準通訊協定緩衝區要求物件使用完整的資源名稱。
- 直接在新版 V2 用戶端呼叫標準通訊協定緩衝區方法。
將程式碼中的預留位置變數換成 ID,如下列範例所示:
// Existing code BigtableTableAdminClient adminClient = BigtableTableAdminClient.create(PROJECT_ID, INSTANCE_ID); adminClient.createTable( CreateTableRequest.of(TABLE_ID) .addFamily("cf1")); // New code import com.google.bigtable.admin.v2.ColumnFamily; import com.google.bigtable.admin.v2.CreateTableRequest; import com.google.bigtable.admin.v2.Table; import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClientV2; // ... try (BigtableTableAdminClientV2 adminClient = BigtableTableAdminClientV2.create()) { String parent = "projects/" + PROJECT_ID + "/instances/" + INSTANCE_ID; CreateTableRequest request = CreateTableRequest.newBuilder() .setParent(parent) .setTableId(TABLE_ID) .setTable(Table.newBuilder() .putColumnFamilies("cf1", ColumnFamily.getDefaultInstance()) .build()) .build(); adminClient.createTable(request); }更改下列內容:
PROJECT_ID:Bigtable 專案的 IDINSTANCE_ID:Bigtable 執行個體的 IDTABLE_ID:新資料表的 ID
Java 適用的 HBase 用戶端
如果您是要從 Java 適用的 HBase 用戶端的 1.0 或更新版本進行升級,您只需要更新設定中的版本號碼即可,並不需要更新程式碼。
如果您是要從 1.0 版本之前的 HBase 用戶端進行升級,請完成下列步驟:
更新依附元件以使用最新的用戶端程式庫,並移除不再需要的成果:
如果
bigtable-hbase-1.0、bigtable-hbase-1.1和bigtable-hbase-1.2構件存在,請將其從依附元件中移除。除非您的應用程式的其他部分需要
netty-tcnative-boringssl-static,否則請從依附元件中將其移除。視用途而定,將下列其中一個構件新增至依附元件。
2.x版本包含 HBase 非同步用戶端,但1.x版本沒有。
更新配置設定以連線至 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。
在本機開發、測試、暫存和實際工作環境等所有環境中重新部署應用程式。
如需 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 中的版本記錄。
後續步驟
- 進一步瞭解用戶端程式庫。
- 進一步瞭解 Bigtable 如何與其他工具和服務整合 Google Cloud 。