配置变更数据流

如果想要跟踪对 Bigtable 表所做的数据更改,则可以为该表启用变更数据流,然后使用 Dataflow 等应用读取该流。在阅读本文档之前,请先阅读变更数据流概览。尤其要确保您清楚流式传输更改时产生的费用。

本页面介绍如何为变更数据流启用、停用和更改保留期限。

如需了解如何创建启用了变更数据流的新表,请参阅创建表

所需角色

如需获得启用、停用或修改 Bigtable 变更数据流所需的权限,请让您的管理员授予您以下 IAM 角色。

  • 针对 Bigtable 实例(包含您计划从中流式传输更改的表)的 Bigtable Administrator (roles/bigtable.admin)

启用变更数据流

如需在现有表上启用变更数据流,请完成以下步骤:

  1. 在 Google Cloud 控制台中打开 Bigtable 实例列表。

    打开实例列表

  2. 点击包含要为其启用变更数据流的表的实例。

  3. 在左侧窗格中,点击

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

  4. 点击您要为其启用变更数据流的表对应的修改

  5. 点击启用变更数据流

  6. 到期时间字段中,输入一个介于 1 到 7 之间的数字,以配置数据流记录应保留的天数。

  7. 点击保存

如需在表上启用变更数据流,请使用 gcloud bigtable instances tables update 命令。

  gcloud bigtable instances tables update TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --change-stream-retention-period=CHANGE_STREAM_RETENTION_PERIOD

请替换以下内容:

  • TABLE_ID:您要流式传输其更改的表的 ID
  • INSTANCE_ID:包含该表的实例
  • PROJECT_ID:包含实例的项目
  • CHANGE_STREAM_RETENTION_PERIOD:Bigtable 应将表的变更数据流数据保留的时间长度。必须不小于 1 天且不超过 7 天,以一个数字和字母(单位)表示。可接受的单位包括天 (d)、小时 (h)、分钟 (m) 和秒 (s)。示例:5d

停用变更数据流

您可以随时停用表的变更数据流。在停用变更数据流之前创建的数据流记录在下一次压缩之前会继续消耗存储空间,但您无需再为该存储空间付费。停用变更数据流后,您将无法读取它,包括在停用该流之前记录的更改。

  1. 在 Google Cloud 控制台中打开 Bigtable 实例列表。

    打开实例列表

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

  3. 在左侧窗格中,点击

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

  4. 点击您要停用其变更数据流配置的表对应的修改

  5. 清除启用变更数据流中的对勾标记。

  6. 点击保存

如需在表上停用变更数据流,请使用 gcloud bigtable instances tables update 命令。

  gcloud bigtable instances tables update TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --clear-change-stream-retention-period

替换以下内容:

  • TABLE_ID:您要流式传输其更改的表的 ID
  • INSTANCE_ID:包含该表的实例
  • PROJECT_ID:包含实例的项目

修改变更数据流的保留时间

您可以修改 Bigtable 将变更数据流记录保留的天数。如果您减少天数,则在配置更改之前流式传输的记录将继续消耗存储空间,直到下一次压缩。更改配置后,您只能流式传输新指定的时间段内的更改。

如果您增加保留时间,则更改不可追溯,变更数据流从您修改配置开始将保留增加的天数。

  1. 在 Google Cloud 控制台中打开 Bigtable 实例列表。

    打开实例列表

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

  3. 在左侧窗格中,点击

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

  4. 点击您要修改其变更数据流配置的表对应的修改

  5. 在“到期时间”字段中,输入一个介于 1 到 7 之间的数字来表示数据流记录应保留的天数。

  6. 点击保存

如需更改表的变更数据流的保留期限,请使用 gcloud bigtable instances tables update 命令。

  gcloud bigtable instances tables update TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --change-stream-retention-period=CHANGE_STREAM_RETENTION_PERIOD

替换以下内容:

  • TABLE_ID:要流式传输其更改的表的 ID
  • INSTANCE_ID:包含该表的实例
  • PROJECT_ID:包含实例的项目
  • CHANGE_STREAM_RETENTION_PERIOD:Bigtable 应将表的变更数据流数据保留的时间长度。必须为 1 到 7 天,以一个数字和字母(单位)表示。可接受的单位包括天 (d)、小时 (h)、分钟 (m) 和秒 (s)。示例:5d

后续步骤