升級用戶端程式庫
升級 Java 適用的 Cloud Bigtable 用戶端程式庫、Java 適用的 HBase 和 Go,即可從過時的方法遷移,並採用目前的連線和通訊協定緩衝區模式。如需首次安裝用戶端程式庫,請按照「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 用戶端
如果您是從 HBase Java 用戶端的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
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:要連線的叢集 ID。INSTANCE_ID:要連線的執行個體 ID。
如需 Go 用戶端程式庫的版本清單,請參閱 GitHub 中的版本記錄。
後續步驟
- 進一步瞭解用戶端程式庫。
- 進一步瞭解 Bigtable 如何與其他工具和服務整合 Google Cloud 。