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

如果您正在学习 Bigtable,则可以通过完成快速入门来体验在生产环境中大规模使用的基础知识。

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

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

准备工作

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

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

    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

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

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

      gcloud config set project PROJECT_ID

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

  5. 确保您的 Google Cloud 项目已启用结算功能

  6. Enable the Cloud Bigtable and Cloud Bigtable Admin APIs:

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

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • PROJECT_ID 替换为您的项目 ID。
    • EMAIL_ADDRESS 替换为您的电子邮件地址。
    • ROLE 替换为每个角色。
  8. 安装 Google Cloud CLI。
  9. 如需初始化 gcloud CLI,请运行以下命令:

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

    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

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

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

      gcloud config set project PROJECT_ID

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

  11. 确保您的 Google Cloud 项目已启用结算功能

  12. Enable the Cloud Bigtable and Cloud Bigtable Admin APIs:

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

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • PROJECT_ID 替换为您的项目 ID。
    • EMAIL_ADDRESS 替换为您的电子邮件地址。
    • ROLE 替换为每个角色。
  14. 运行以下命令以安装 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

后续步骤