创建和管理持续具体化视图

本文档介绍了如何在 Bigtable 中创建和操作持续具体化视图。在阅读本文档之前,请先阅读持续具体化视图中的概览。

您可以使用 Google Cloud CLI、 Google Cloud 控制台中的 Bigtable Studio 查询编辑器,或者适用于 Java 和 Go 的 Bigtable 客户端库来创建持续具体化视图。

准备工作

如果您计划使用 gcloud CLI,请执行以下步骤。

  1. Install the Google Cloud CLI.

  2. 如果您使用的是外部身份提供方 (IdP),则必须先 使用联合身份登录 gcloud CLI

  3. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init

所需的角色

如需获得创建和管理持续具体化视图所需的权限,请让您的管理员为您授予实例的 Bigtable Admin (roles/bigtable.admin) 角色。 否则,请根据要执行的操作,在实例级层请求以下权限:

  • 创建:bigtable.materializedViews.create
  • 更新:bigtable.materializedViews.update
  • 删除:bigtable.materializedViews.delete
  • 列表:bigtable.materializedViews.list

如需创建持续具体化视图,您还必须至少拥有源表的 bigtable.tables.readRows 权限。

如需查看所有可用的角色和权限,请参阅使用 IAM 进行 Bigtable 访问权限控制

创建连续的具体化视图

在创建持续具体化视图之前,请执行以下操作:

  • 可选:作为最佳实践,请为实例中的集群启用自动扩缩功能,以确保在 Bigtable 处理和同步持续具体化视图时,集群可以在必要时扩容,并处理任何额外的存储空间用量
  • 确定您有权读取的 Bigtable 表,以用作持续具体化视图的来源。
  • 准备定义持续的具体化视图的 SQL 查询。如需了解查询要求,请参阅具体化视图

创建持续具体化视图后,该视图可能需要几分钟时间才会变为有效状态并可供查询。您可以查看视图的指标,以监控其进度。

控制台

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

    打开实例列表

  2. 请选择一个实例。

  3. 在导航窗格中,点击 Bigtable Studio

  4. 点击 ,然后选择编辑器,即可打开新标签页。

    1. 在查询编辑器出现时,编写查询。如果查询是有效的 SQL,系统会显示“有效”消息。

    2. 可选:如需以 SQL 样式设置语句格式,请点击格式

    3. 点击运行。查询结果会显示在结果表中。

    4. 对查询感到满意后,点击保存,然后选择具体化视图

    如需详细了解如何使用查询编辑器,请参阅使用 Bigtable Studio 管理数据

gcloud

如需创建持续具体化视图,请使用 gcloud beta bigtable materialized-views create 命令:

    gcloud beta bigtable materialized-views create VIEW \
            --instance=INSTANCE --query=QUERY

替换以下内容:

  • VIEW:持续具体化视图的唯一标识符。在查询持续具体化视图时,您可以使用此 ID 作为表 ID。
  • INSTANCE:要在其中创建持续具体化视图的实例的标识符。必须与源表位于同一实例中。
  • QUERY:用于定义持续的具体化视图的有效 SQL 语句。

可选:如需为持续具体化视图启用删除防护,请在命令中附加以下内容:

--deletion-protection=DELETION_PROTECTION

DELETION_PROTECTION 替换为 truefalse

更新连续的具体化视图

您可以更新持续具体化视图的删除保护。您无法更新用于定义持续具体化视图的 SQL 查询;如果您需要修改查询,则必须删除持续具体化视图,然后创建一个包含您的更改的新视图。

控制台

您无法在控制台中更新持续具体化视图。请改用 gcloud CLI。

gcloud

如需为持续具体化视图启用或停用删除保护,请使用 gcloud beta bigtable materialized-views update command 命令。

gcloud beta bigtable materialized-views update VIEW \
        -–instance=INSTANCE --deletion-protection=DELETION_PROTECTION

替换以下内容:

  • VIEW:要更新的持续具体化视图的唯一标识符
  • INSTANCE:包含持续具体化视图的实例的标识符
  • DELETION_PROTECTIONtruefalse

删除连续的具体化视图

您可以删除未启用删除保护的持续具体化视图。此操作无法撤消。

控制台

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

    打开实例列表

  2. 从列表中选择一个实例。

  3. 在导航窗格中,点击 Bigtable Studio

  4. 展开具体化视图

  5. 在要删除的视图旁边,点击 more_vert 操作菜单,然后点击删除

gcloud

如需删除持续具体化视图,请使用 gcloud beta bigtable materialized-views delete 命令:

gcloud beta bigtable materialized-views delete VIEW \
      --instance=INSTANCE

替换以下内容:

  • VIEW:要删除的持续具体化视图的唯一标识符
  • INSTANCE:包含持续具体化视图的实例的标识符

获取连续的物化视图的列表

您可以查看实例的持续具体化视图列表。

控制台

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

    打开实例列表

  2. 从列表中选择一个实例。

  3. 在导航窗格中,点击 Bigtable Studio。系统会显示连续的物化视图的列表。

  4. 可选:系统会列出实例中的前 10 个视图。如需再查看 10 个,请点击展开

gcloud

如需列出实例的所有持续具体化视图,请使用 gcloud bigtable materialized-views list 命令。

gcloud bigtable materialized-views list --instance=INSTANCE

INSTANCE 替换为实例 ID。

后续步骤