快速入门:使用 cbt

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

借助 cbt 工具,您可以直接使用 Cloud Bigtable,而无需编译和运行可执行文件。在本快速入门中,您将执行以下操作:

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

您可以使用 Cloud Shell 或本地终端窗口来执行本快速入门中的操作。

  1. 选择或创建 GCP 项目。如果您不打算保留在本快速入门中创建的资源,请创建一个新项目。这样,您就可以在完成本快速入门后删除该项目。

    转到项目选择器页面

  2. 确保您的 Google Cloud 项目已启用结算功能。了解如何确认您的项目是否已启用结算功能

  3. 启用 Cloud Bigtable 和 Cloud Bigtable Admin API。

    启用 API

  4. 启用 API 后,点击转到“凭据”页面

  5. 凭据页面上,您需要回答以下问题:

    1. 在回答“您使用的是哪个 API?”这个问题时,请选择 Cloud Bigtable API
    2. 回答与 App Engine 或 Compute Engine 有关的问题。在本快速入门中,您并不会用到这些产品。
    3. 点击我需要哪些凭据?
    4. 如果系统提示您创建服务帐号,请提供以下信息:
      1. 为您的服务帐号选择一个名称。
      2. 角色部分,选择 Cloud Bigtable > Bigtable Administrator
      3. 密钥类型部分,选择 JSON
      4. 点击继续
      5. 将新创建的服务帐号 JSON 文件保存到您的本地 HOME 目录或您偏好的位置。如果您计划在 Cloud Shell 中完成快速入门,则可以跳过这一步。
    5. 如果系统未提示您创建新的服务帐号,请点击完成
  6. 在本地或使用 Cloud Shell 打开一个终端窗口:

    打开 Cloud Shell

  7. 如果您使用的是本地终端窗口,请设置环境变量 GOOGLE_APPLICATION_CREDENTIALS。将 [PATH] 替换为包含服务帐号密钥的 JSON 文件的文件路径。

       export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

    例如:

       export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json"

  8. 如果您使用的是本地终端窗口,请安装 Cloud SDK 和 cbt 工具(如果尚未执行此操作)。如果您使用的是 Cloud Shell,则系统已预安装这些工具,因此您可以跳过这些步骤。

    1. 安装 Cloud SDK

    2. 安装 cbt 命令行工具:

      gcloud components update
      gcloud components install cbt

创建 Cloud Bigtable 实例

  1. 在 Google Cloud Console 中打开创建实例页面。

    创建实例

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

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

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

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

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

  7. 地区部分,选择所选区域内的一个地区。

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

连接到您的实例

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

       echo project = project-id > ~/.cbtrc
       echo instance = quickstart-instance >> ~/.cbtrc

  2. 验证 .cbtrc 文件的设置是否正确:

       cat ~/.cbtrc

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

    project = project-id
    instance = quickstart-instance

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

读取和写入数据

Cloud 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. 使用 cf1 列族和 c1 列限定符,将 test-value 值添加到 r1 行中:

       cbt set my-table r1 cf1:c1=test-value

  6. 使用 cbt read 命令读取您已添加到表中的数据:

       cbt read my-table

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

        ----------------------------------------
        r1
          cf1:c1                                   @ 2019/11/26-15:05:38.840000
            "test-value"

    时间戳是系统自动添加的,因为您并未指定时间戳。

清理

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

  1. 删除 my-table 表:

       cbt deletetable my-table

  2. 删除实例:

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

       rm ~/.cbtrc