升级客户端库

本页面介绍了如何升级以前安装的 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 客户端

如果您要从 1.0 版或更高版本Java HBase 客户端进行升级,则只需更新配置中的版本号,您无需更新代码。

如果要从 1.0 版之前的 HBase 客户端升级,请完成以下步骤:

  1. 更新依赖项以使用最新的客户端库并移除不再需要的工件:

    • 从依赖项中移除 bigtable-hbase-1.0bigtable-hbase-1.1bigtable-hbase-1.2 工件(如果存在)。

    • 从依赖项中移除 netty-tcnative-boringssl-static,除非应用的其他部分需要它。

    • 根据您的应用场景,将以下工件之一添加到依赖项。2.x 版本包含 1.x 版本所不具备的 HBase 异步客户端。

      • 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:在需要旧版组件(例如 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:您的项目的标识符。
    • ZONE_ID:集群所在的可用区。
    • CLUSTER_ID:集群的标识符。
    • INSTANCE_ID:实例的标识符。
  3. 在所有环境(包括本地开发环境、测试环境、模拟环境和生产环境)中重新部署应用

如需查看 Java 版 HBase 客户端的版本列表,请参阅 GitHub 上的版本历史记录

Go

2016 年 6 月,Go 客户端更改了连接到 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:您的项目的标识符。
  • ZONE:集群所在的可用区。
  • CLUSTER_ID:您要连接的集群的标识符。
  • INSTANCE_ID:您要连接到的实例的标识符。

如需查看 Go 客户端库的版本列表,请参阅 GitHub 上的版本历史记录

后续步骤