创建和管理连续的物化视图
本文档介绍了如何在 Bigtable 中创建连续的具体化视图并对其执行操作。在阅读本文档之前,请先阅读 连续的物化视图中的概览。
您可以使用 Google Cloud CLI、控制台 Google Cloud 中的 Bigtable Studio 查询编辑器或适用于 Java 和 Go 的 Bigtable 客户端库来创建连续的具体化视图。
准备工作
如果您打算使用 gcloud CLI,请执行以下步骤。
-
安装 Google Cloud CLI。
-
配置 gcloud CLI 以使用您的联合身份。
如需了解详情,请参阅使用联合身份登录 gcloud CLI。
-
如需初始化 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 查询。如需了解 查询要求,请参阅具体化视图。
创建连续的具体化视图后,Bigtable 会完成初始填充。只有在此过程完成后,该视图才会变为活跃状态并可供查询。您可以查看该视图的 指标来 监控其进度。如需了解如何在初始 填充完成之前查询该视图,请参阅 在初始填充期间读取数据。
控制台
在 Google Cloud 控制台中打开 Bigtable 实例列表。
选择一个实例。
在导航窗格中,点击 Bigtable Studio 。
点击 ,然后选择 编辑器 ,打开一个新标签页。
在查询编辑器出现时,编写查询。如果查询是有效的 SQL,系统会显示有效 消息。
可选:如需以 SQL 样式设置语句的格式,请点击格式化 。
点击运行 。查询结果会显示在结果 表中。
对查询满意后,请点击另存为 展开器箭头,然后选择另存为物化视图 。
在保存物化视图 对话框中,输入视图的名称,然后点击保存 。
如需详细了解如何使用查询编辑器,请参阅使用 Bigtable Studio 管理数据。
gcloud
如需创建连续的具体化视图,请使用
gcloud bigtable materialized-views create
命令:
gcloud bigtable materialized-views create VIEW \
--instance=INSTANCE --query=QUERY
替换以下内容:
VIEW:连续的具体化视图的唯一标识符。在查询连续的具体化视图时,您可以使用此 ID 作为表 ID。INSTANCE:要在其中创建连续的具体化视图的实例的标识符。必须与源表是同一实例。QUERY:用于定义 连续的具体化视图的有效 SQL 语句。
此命令接受以下可选标志:
- 如需为连续的具体化视图启用防删除保护,
请在命令中附加
--deletion-protection=DELETION_PROTECTION。将DELETION_PROTECTION替换为true或false。 - 如果您的 SQL 查询使用 非确定性函数,
请在命令中附加
--ignore-warnings标志。此标志可确保 您确认这些函数可能会导致不同的集群 为同一视图生成不同的结果。如果您省略此标志, 查询验证将失败。
更新连续的具体化视图
您可以更新连续的具体化视图的防删除保护。您无法更新用于定义连续的具体化视图的 SQL 查询;如果您需要修改查询,则必须删除连续的具体化视图,然后创建一个包含更改的新视图。
控制台
您无法在控制台中更新连续的具体化视图。 请改用 gcloud CLI。
gcloud
如需为连续的具体化视图启用或停用防删除保护,请使用
gcloud bigtable materialized-views update命令。
gcloud bigtable materialized-views update VIEW \
--instance=INSTANCE --deletion-protection=DELETION_PROTECTION
替换以下内容:
VIEW:您要更新的 连续的具体化视图的唯一标识符INSTANCE:包含连续的具体化视图的实例的标识符DELETION_PROTECTION:true或false
删除连续的具体化视图
您可以删除未启用防删除保护的连续的具体化视图。您无法撤消此操作。
控制台
在 Google Cloud 控制台中打开 Bigtable 实例列表。
从列表中选择一个实例。
在导航窗格中,点击 Bigtable Studio 。
展开物化视图 。
在要删除的视图旁边,点击 more_vert 操作菜单, 然后点击 删除。
gcloud
如需删除连续的具体化视图,请使用
gcloud bigtable materialized-views delete
命令:
gcloud bigtable materialized-views delete VIEW \
--instance=INSTANCE
替换以下内容:
VIEW:您要删除的连续的具体化视图的唯一标识符INSTANCE:包含连续的具体化视图的实例的标识符
获取连续的物化视图列表
您可以查看实例的连续的物化视图列表。
控制台
在 Google Cloud 控制台中打开 Bigtable 实例列表。
从列表中选择一个实例。
在导航窗格中,点击 Bigtable Studio 。系统会显示 连续的物化视图列表。
可选:系统会列出实例中的前 10 个视图。如需查看另外 10 个视图,请点击展开 。
gcloud
如需列出实例的所有连续的物化视图,请使用
gcloud bigtable materialized-views list 命令。
gcloud bigtable materialized-views list --instance=INSTANCE
将 INSTANCE 替换为实例 ID。