创建一个测试表

本页面介绍了创建可用于测试代码段的小型 Bigtable 表的步骤。该表包含智能手机和平板电脑的时间序列数据。

以下说明使用 Google Cloud 控制台和 cbt CLI(一种专为 Bigtable 构建的命令行界面)。

准备工作

在创建测试表之前,请先满足以下前提条件。

设置身份验证

您可以从以下任一开发环境使用本页面上的 gcloud CLI 示例:

  • Cloud Shell:如需使用已设置 gcloud CLI 的在线终端,请激活 Cloud Shell。

    Cloud Shell 会话会在页面底部启动,并显示命令行提示符。该会话可能需要几秒钟来完成初始化。

  • 本地 shell:如需在本地开发环境中使用 gcloud CLI,请安装初始化 gcloud CLI。

如需了解如何为生产环境设置身份验证,请参阅 为在 Google Cloud 上运行的代码设置应用默认凭据

授予 IAM 角色

如需获取创建测试表所需的权限,请让管理员授予您项目的 Bigtable Administrator (roles/bigtable.admin) IAM 角色。 如需详细了解如何授予角色,请参阅管理访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

安装 cbt CLI

运行以下命令以安装 cbt CLI:

  gcloud components install cbt

创建实例

在您选择的项目中,创建一个测试实例来存储您的测试表。该表非常小,因此您只需使用单节点实例。

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

    创建实例

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

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

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

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

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

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

  8. 节点下,输入 1

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

连接到实例

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

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

    cat ~/.cbtrc

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

    project = PROJECT_ID
    instance = test-instance

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

创建一个测试表

  1. 创建一个名为 test-table 且包含两个列族的表。针对每个列族,设置垃圾回收政策,以使每个列最多附加 2 个单元:

       cbt createtable test-table "families=stats_summary:maxversions=2,stats_detail:maxversions=2,cell_plan:maxversions=2"

  2. 列出列族:

       cbt ls test-table

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

        Family Name       GC Policy
        -----------       ---------
        stats_detail        versions() > 2
        stats_summary       versions() > 2
        cell_plan           versions() > 2

填充表

  1. 将以下命令复制到终端窗口中,然后按 Enter

       cbt set test-table phone#4c410523#20190501 stats_summary:connected_cell=1 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190405.003 cell_plan:data_plan_01gb=true cell_plan:data_plan_05gb=true
        cbt set test-table phone#4c410523#20190502 stats_summary:connected_cell=1 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190405.004 cell_plan:data_plan_05gb=true
        cbt set test-table phone#4c410523#20190505 stats_summary:connected_cell=0 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190406.000
        cbt set test-table phone#5c10102#20190501 stats_summary:connected_cell=1 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190401.002 cell_plan:data_plan_10gb=true
        cbt set test-table tablet#5c10102#20190502 stats_summary:connected_cell=1 stats_summary:connected_wifi=0 stats_summary:os_build=PQ2A.190406.000 cell_plan:data_plan_10gb=true

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

       cbt read test-table

    该终端会显示类似如下所示的输出。请注意,因为您的写入请求不包含时间戳,所以系统会自动将时间戳分配给单元格。

        ----------------------------------------
        phone#4c410523#20190501
          cell_plan:data_plan_01gb                 @ 2020/09/23-11:44:10.535000
            "true"
          cell_plan:data_plan_05gb                 @ 2020/09/23-11:44:10.535000
            "true"
          stats_summary:connected_cell             @ 2020/09/23-11:44:10.535000
            "1"
          stats_summary:connected_wifi             @ 2020/09/23-11:44:10.535000
            "1"
          stats_summary:os_build                   @ 2020/09/23-11:44:10.535000
            "PQ2A.190405.003"
        ----------------------------------------
        phone#4c410523#20190502
          cell_plan:data_plan_05gb                 @ 2020/09/23-11:44:11.545000
            "true"
          stats_summary:connected_cell             @ 2020/09/23-11:44:11.545000
            "1"
          stats_summary:connected_wifi             @ 2020/09/23-11:44:11.545000
            "1"
          stats_summary:os_build                   @ 2020/09/23-11:44:11.545000
            "PQ2A.190405.004"
        ----------------------------------------
        phone#4c410523#20190505
    stats_summary:connected_cell @ 2020/09/23-11:44:12.503000 "0" stats_summary:connected_wifi @ 2020/09/23-11:44:12.503000 "1" stats_summary:os_build @ 2020/09/23-11:44:12.503000 "PQ2A.190406.000" ---------------------------------------- phone#5c10102#20190501 cell_plan:data_plan_10gb @ 2020/09/23-11:44:13.553000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:13.553000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:13.553000 "1" stats_summary:os_build @ 2020/09/23-11:44:13.553000 "PQ2A.190401.002" ---------------------------------------- tablet#5c10102#20190502 cell_plan:data_plan_10gb @ 2020/09/23-11:44:14.480000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:14.480000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:14.480000 "0" stats_summary:os_build @ 2020/09/23-11:44:14.480000 "PQ2A.190406.000"

使用测试数据

您现在可以使用 test-instance 上的 test-table 来试用代码段,例如将 Bigtable 与 Cloud Functions 搭配使用中的代码段。

清理

为避免系统因这些步骤中创建的资源向您的 Google Cloud 账号收取费用,请在完成测试后立即删除实例。删除 .cbtrc 文件后,您就可以开始处理另一个项目了。

  1. 如果您要保留实例但删除表,可以使用 deletetable 命令:

       cbt deletetable test-table

  2. 如果您不打算使用该实例进行进一步测试,请删除该实例。此操作也会删除该表格。

       cbt deleteinstance test-instance

  3. 删除 .cbtrc 文件:

       rm ~/.cbtrc

后续步骤