管理表

本页面介绍如何使用 cbt command-line tool 或 Google Cloud Console 创建、修改、删除 Cloud Bigtable 表和获取 Cloud Bigtable 表的相关信息。

cbt tool 支持若干未在本页面中说明的命令。如需了解完整的命令列表,请参阅 cbt 参考文档

您还可以使用一个 Bigtable 客户端库服务 API 以编程方式管理表。

准备工作

如果要通过命令行管理表,请安装 cbt tool

配置 cbt 工具

您可以为以下 cbt tool 配置设置指定默认值:

  • Bigtable 实例所在的项目。
  • 要连接到的 Bigtable 实例。
  • 用于连接您的实例的凭据文件(采用 JSON 格式)。 请参阅关于创建服务帐号密钥的说明。如果您已经通过运行 gcloud auth application-default login 进行了身份验证,或者在 Compute Engine 实例上使用 cbt 工具,则无需凭据文件。
  • 打算使用的 API 端点。您通常不需要更改这些值。

如需指定这些设置的默认值,请在您的主目录中创建一个 .cbtrc 文件。您可以使用命令行标志替换 .cbtrc 中的默认值。

如需创建 .cbtrc 文件,请运行以下命令,并将 [PROJECT_ID][INSTANCE_ID] 替换为适当的值:

echo -e "project = [PROJECT_ID]\ninstance = [INSTANCE_ID]" > ~/.cbtrc

本页面的 cbt tool 说明假定您已在 .cbtrc 文件中设置项目 ID 和实例 ID。您还可以在每次运行 cbt 时使用 -project-instance 标志设置这些值。

创建表

创建表时,您无需指定要在表中使用的列族。您可以稍后添加或删除列族。

控制台

要在实例中创建新表,请执行以下操作:

  1. 在 Cloud Console 中打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击

    “表”页面显示实例中的表列表。

  4. 点击创建表

  5. 输入表 ID。

  6. 添加列族(可选)

    您可以现在添加列,也可以稍后添加。表必须至少有一个列族才能向其中写入数据。

  7. 点击创建

cbt

使用以下命令,将 [TABLE_NAME] 替换为您的表名:

cbt createtable [TABLE_NAME]

按行键拆分表

作为全代管式服务,Bigtable 的一项功能是自动跨多个节点拆分表。此功能会尽可能均匀分布存储在每个节点上的数据量,并确保频繁访问的行分散开来,因此可优化性能。

使用 cbt tool 或 Bigtable 客户端库创建表时,您可以选择行键来预拆分表。例如,如果您要向表中写入多行,则可指定特定行来预拆分表。

预拆分表并非必需操作,但这样做很有用,因为可让 Bigtable 了解在创建表时负载和数据可能归入何处。预拆分表后,Bigtable 就无需在数据到达时立即拆分表并再平衡负载。

不会一直保持按行键(即您在创建表时选择用于预拆分表的行键)拆分的状态。Bigtable 最终会根据表中的数据量以及各行的访问频率,按不同的行键拆分表。

控制台

使用 Google Cloud Console 创建表时不能预拆分行。

cbt

如需根据行键预拆分表,请使用以下语法创建表。将 [TABLE_NAME] 替换为表名称,并将 [SPLITS] 替换为要在预拆分中使用的行键前缀的逗号分隔列表。

cbt createtable [TABLE_NAME] splits=[SPLITS]

例如,如需使用以 1020 开头的行键预拆分 my-table 表,请运行以下命令:

cbt createtable my-table splits=10,20

修改表中的列族

您可以在现有表中添加或删除列族。

添加列族

控制台

  1. 在 Cloud Console 中打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击

    “表”页面显示实例中的表列表。

  4. 点击要修改的表的 修改

  5. 对于要添加的每个列族,完成以下操作:

    1. 点击添加列族 (Add column family)。
    2. 为列族提供唯一标识符。
    3. 为列族设置垃圾回收政策。
    4. 点击完成
  6. 点击保存

cbt

如需将列族添加到表中,请使用以下命令,并将 [TABLE_NAME][FAMILY_NAME] 分别替换为表名称和列族名称:

cbt createfamily [TABLE_NAME] [FAMILY_NAME]

例如,如要向 my-table 表中添加 cf1cf2 列族,请使用以下命令:

cbt createfamily my-table cf1
cbt createfamily my-table cf2

删除列族

控制台

  1. 在 Cloud Console 中打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击

    “表”页面显示实例中的表列表。

  4. 点击要修改的表的 修改

  5. 对于要删除的每个列族,完成以下操作:

    1. 将鼠标悬停在要删除的列族所在的行上。
    2. 点击
  6. 点击保存

  7. 如需确认您了解删除列族是永久性的并且列族中的所有数据都将被删除,请在文本框中输入“删除列族”。

  8. 点击确认

cbt

如需从表中删除列族,请使用以下命令,并将 [TABLE_NAME][FAMILY_NAME] 分别替换为表名称和列族名称:

cbt deletefamily [TABLE_NAME] [FAMILY_NAME]

例如,如需从 my-table 表中删除 cf2 列族,请运行以下命令:

cbt deletefamily my-table cf2

查看表的列表

控制台

要查看实例中的表列表,请执行以下操作:

  1. 在 Cloud Console 中打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击

    “表”页面显示实例中的表列表。

cbt

如需查看实例中的表列表,请运行以下命令:

cbt ls

查看表的相关信息

控制台

要查看表的相关信息,请执行以下操作:

  1. 在 Cloud Console 中打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击

    “表”页面显示实例中的表列表。 对于每个表,Cloud Console 会显示存储该表的集群数量、表的状态、存储空间利用率以及表的任何当前备份的标识符。

  4. 如需查看表的列族名称,请点击

  5. 要关闭修改表窗格,请点击取消

cbt

您可以使用 cbt 工具在表格中获取现有列族的列表。

使用以下命令,将 [TABLE_NAME] 替换为表名称:

cbt ls [TABLE_NAME]

设置垃圾回收政策

垃圾回收政策告诉 Bigtable 要保留哪些数据以及要将哪些数据标记为待删除。垃圾回收政策是在列族级设置的。您可以在创建表时或之后设置这些政策。

创建列族时,您可以指定要在该列族的每个列中保留的单元数量。如果您未指定此设置,Bigtable 将使用以下任一默认设置:

  • 如果您使用 Java 版 Cloud Bigtable HBase 客户端或 HBase shell 创建列族,或通过使用 Java 版 HBase 客户端的其他工具创建列族,Bigtable 会为列族中的每个行/列交集仅保留一个单元。此默认设置与 HBase 一致。

  • 如果您使用 Cloud Console、任何其他客户端库或 cbt tool 创建列族,Bigtable 会在每一列中保留无限个单元。

如需详细了解如何查看、设置和更新垃圾回收政策,请参阅配置垃圾回收政策

备份和恢复表

如需了解如何备份表以及从备份恢复到新表,请参阅管理备份

删除表

控制台

  1. 在 Cloud Console 中打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击

    “表”页面显示实例中的表列表。

  4. 点击要删除的表的

  5. 点击删除

  6. 要确认您确认此操作无法撤消且将从实例的所有集群中删除该表,请在文本框中输入表 ID。

  7. 点击删除

cbt

如需删除表,请使用以下命令,并将 [TABLE_NAME] 替换为表名称:

cbt deletetable [TABLE_NAME]