创建实例并使用 cbt CLI 写入数据

如果您想要了解 Bigtable,可以通过逐步完成快速入门中的操作来了解在生产环境中广泛使用的基础知识。

在本快速入门中,您将执行以下操作:

  • 连接到 Bigtable 实例。
  • 执行基本管理任务。
  • 将数据写入表中。
  • 从表中读取数据。

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 安装 Google Cloud CLI。

  3. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  4. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  5. 创建或选择 Google Cloud 项目

    选择或创建项目所需的角色

    • 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
    • 创建项目:如需创建项目,您需要拥有 Project Creator 角色 (roles/resourcemanager.projectCreator),该角色包含 resourcemanager.projects.create 权限。了解如何授予角色
    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替换为您要创建的 Google Cloud 项目的名称。

    • 选择您创建的 Google Cloud 项目:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替换为您的 Google Cloud 项目名称。

  6. 验证是否已为您的 Google Cloud 项目启用结算功能

  7. 启用 Cloud Bigtable 和 Cloud Bigtable Admin API:

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  8. 向您的用户账号授予角色。对以下每个 IAM 角色运行以下命令一次: roles/bigtable.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    替换以下内容:

    • PROJECT_ID:您的项目 ID。
    • USER_IDENTIFIER:您的用户 账号的标识符。例如,myemail@example.com
    • ROLE:您授予用户账号的 IAM 角色。
  9. 安装 Google Cloud CLI。

  10. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  11. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  12. 创建或选择 Google Cloud 项目

    选择或创建项目所需的角色

    • 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
    • 创建项目:如需创建项目,您需要拥有 Project Creator 角色 (roles/resourcemanager.projectCreator),该角色包含 resourcemanager.projects.create 权限。了解如何授予角色
    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替换为您要创建的 Google Cloud 项目的名称。

    • 选择您创建的 Google Cloud 项目:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替换为您的 Google Cloud 项目名称。

  13. 验证是否已为您的 Google Cloud 项目启用结算功能

  14. 启用 Cloud Bigtable 和 Cloud Bigtable Admin API:

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  15. 向您的用户账号授予角色。对以下每个 IAM 角色运行以下命令一次: roles/bigtable.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    替换以下内容:

    • PROJECT_ID:您的项目 ID。
    • USER_IDENTIFIER:您的用户 账号的标识符。例如,myemail@example.com
    • ROLE:您授予用户账号的 IAM 角色。
  16. 运行以下命令以安装 cbt CLI:
    gcloud components install cbt

创建 Bigtable 实例。

  1. 在 Google Cloud 控制台中打开创建实例页面。

    创建实例

  2. 实例名称部分,输入 Quickstart instance

  3. 实例 ID 部分,输入 quickstart-instance

  4. 点击继续

  5. 存储类型部分,选择 SSD

  6. 点击继续

  7. 集群 ID 部分,输入 quickstart-instance-c1

  8. 区域部分,选择您附近的一个区域。

  9. 可用区部分,选择任何

  10. 节点扩缩模式部分,选择手动分配

  11. 数量部分,选择 1

  12. 点击创建以创建实例。

连接到您的实例

  1. cbt CLI 配置为使用您的项目和实例,方法是创建一个 .cbtrc 文件,并将 PROJECT_ID 替换为在其中创建了 Bigtable 实例的项目的 ID:

    echo project = PROJECT_ID >> ~/.cbtrc && echo instance = quickstart-instance >> ~/.cbtrc
    
  2. 验证 .cbtrc 文件的设置是否正确:

    cat ~/.cbtrc

    终端会显示 .cbtrc 文件的内容,如下所示:

    project = PROJECT_ID
    instance = quickstart-instance

    现在,您可以使用 cbt CLI 来处理您的实例了。

读取和写入数据

Bigtable 将数据存储在表中。这些表包含行,且每行由一个行键标识。

行中的数据以“列族”(即一组列)的形式整理。 “列限定符”用于标识列族中的单个列。

行和列的交集处可能会有多个包含时间戳的单元。

  1. 创建一个名为 my-table 的表。

    cbt createtable my-table
  2. 列出您的表:

    cbt ls

    该命令会显示类似如下所示的输出:

        my-table

  3. 添加一个名为 cf1 的列族:

    cbt createfamily my-table cf1
  4. 列出您的列族:

    cbt ls my-table

    该命令会显示类似如下所示的输出:

        Family Name     GC Policy
        -----------     ---------
        cf1             <never>

  5. test-value1test-value2 值写入到 r1 行中,且所属列族为 cf1,列限定符为 c1

    cbt set my-table r1 cf1:c1=test-value1
      cbt set my-table r1 cf1:c1=test-value2
    
  6. 使用 cbt read 命令读取您已添加到表中的数据:

    cbt read my-table

    该 shell 会显示类似如下所示的输出:

        ----------------------------------------
        r1
          cf1:c1                                   @ 2023/03/22-06:56:11.323000
            "test-value1"
          cf1:c1                                   @ 2023/03/22-06:56:04.361000
            "test-value2"

    系统会为 r1 行中的同一列存储两个带有时间戳的值。

清理

为避免系统因本快速入门中使用的资源向您的 Google Cloud 账号收取费用,请删除您的实例。删除 .cbtrc 文件后,您就可以开始处理其他项目了。

  1. 删除 my-table 表:

    cbt deletetable my-table
  2. 删除实例:

    cbt deleteinstance quickstart-instance
  3. 删除 .cbtrc 文件:

    rm ~/.cbtrc

  4. (可选)使用 gcloud CLI 撤消凭据:

    gcloud auth revoke

后续步骤