在控制台中构建查询

您可以使用 Bigtable Studio 查询构建器查询和查看 Bigtable 数据。查询构建器是 Google Cloud 控制台可让您构建查询、对表运行查询 然后在控制台中查看结果。

通过 Bigtable Studio 查询构建器,您可以使用下拉选择器 来指定查询子句组合,而无需编写 或使用 CLI。当您运行查询时,控制台会调用 Bigtable Data API,后者会返回与您的查询匹配的数据。

本文档介绍了如何使用查询构建器,并提供了 如何优化查询在阅读本页内容之前,您应该先熟悉 Bigtable 概览 ,了解所有最新动态。

在查询构建器中运行的查询与 发送到表的任何其他查询。

何时使用查询构建器

当您需要执行以下操作时,能够在 Google Cloud 控制台中查询 Bigtable 数据会很有帮助:

  • 快速直观地了解表架构。
  • 验证某些数据是否已成功写入。
  • 在迁移期间验证数据完整性。
  • 调试可能存在的数据问题。
  • 预览特定子句组合之前返回的结果 您需要在代码中使用它们。这一功能对于 Bigtable 用户以及不想使用 该 cbt CLI ,了解所有最新动态。

准备工作

如需获得使用查询构建器所需的权限,请让您的管理员为您授予项目的 Bigtable Reader (roles/bigtable.reader) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含 使用查询构建器所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

使用查询构建器需要以下权限:

  • bigtable.tables.get
  • bigtable.instances.get
  • bigtable.appProfiles.list
  • bigtable.tables.list
  • bigtable.tables.readRows

您也可以使用自定义角色或其他预定义角色来获取这些权限。

如果您没有要查询的表,可以创建一个小型测试表,然后对其运行查询。

打开查询构建器

当您打开查询构建器时,系统会针对实例中按字母顺序排列的第一张表运行并显示默认查询。系统会使用默认应用配置文件运行默认查询,并最多返回 100 行。

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

    打开实例列表

  2. 点击包含要查询的表的实例的名称。

  3. 在导航窗格中,点击 Bigtable StudioBigtable Studio 页面会以查询构建器模式打开。Explorer 窗格会提供实例中的表列表,Query results 窗格会显示默认查询的结果。

  4. 可选:收起浏览器窗格,以使查询构建器窗格更大。

数据显示格式

查询构建器结果会显示在表格中。第一个标题和列是行键。其余标题分别代表 Bigtable 表,表示为列族和列 以英文冒号分隔。例如,标题 cell_plan: data_plan_01gb 表示该列中的值来自 cell_plan 列族中的 data_plan_01gb 列。

下拉菜单

仅返回列的最新值。时间戳会隐藏 但您可以点击切换开关显示它们

选择一个表

使用下拉菜单选择要查询的表的 ID。

可选:指定应用配置文件

您可以使用专为查询而创建的应用配置文件 构建器。例如,当您想要将查询隔离 使用与当前集群不同的集群 主要应用所使用的服务类型

如需使用其他应用配置文件运行下一个查询,请按以下步骤操作。

  1. 点击添加到查询
  2. 点击更改应用配置文件(默认)。系统会显示一个新的下拉菜单。
  3. 使用应用配置文件下拉列表,从实例的列表中进行选择 应用配置文件

如需详细了解为不同工作负载使用不同的应用配置文件的优势,请参阅应用配置文件简介。如需了解如何创建应用配置文件,请参阅创建和配置应用配置文件

如果您的表位于使用复制功能的实例中,请将应用配置文件配置为从距离您最近的集群读取数据。

向查询添加子句,然后运行该查询

  1. 选择表和应用配置文件后,将子句添加到查询中。 如需详细了解可用子句,请参阅下一部分。
  2. 添加所有子句后,点击运行
  3. 查看结果。

查询子句

您可以使用查询构建器向查询添加子句。当您运行查询时,查询构建器会创建并向表发送读取请求。学习内容 请参阅 读取

行键、行键范围和行键前缀子句确定 从存储空间中提取数据行键正则表达式、列和时间范围子句 添加到生成的读取请求的 filter。在查询构建器中使用的过滤条件与在客户端库中使用过滤条件的方式相同。了解详情 Bigtable 过滤条件及其对性能的影响, 请参阅 过滤器使用 过滤条件 ,了解所有最新动态。

指定行键

如需从表中检索单个行,请提供行键值。您可以添加多个行键子句。

  1. 点击添加到查询
  2. 在下拉列表中,选择行键
  3. 输入要查看其值的行键的确切值。

指定行键范围

如需从表格中检索一系列行,请指定起始行键和结束行键。Bigtable 会按行键的字典顺序存储数据。

  1. 点击添加到查询
  2. 在下拉列表中,选择行键范围
  3. 输入完整的起始行键。
  4. 输入完整的结束行键。

指定行键前缀

如需仅检索行键以特定字符组开头的行,请按行键前缀进行过滤。行键前缀是行的前 N 个字符 键。按照惯例,前缀和行键的其余部分之间通常会有一个井号、竖线或其他符号。

  1. 点击添加到查询
  2. 在下拉列表中,选择行键前缀
  3. 输入行键前缀。您无需输入任何通配符。

按行键正则表达式过滤

要仅获取行键值与指定正则表达式匹配的行,请使用 行键正则表达式过滤器。为了获得更好的性能,请添加行键范围或行键 前缀子句,然后再添加行键正则表达式过滤器。如需有关组合正则表达式的指导,请参阅行键正则表达式

  1. 点击添加到查询
  2. 在下拉列表中,选择行键正则表达式
  3. 输入使用 re2 的正则表达式 语法

按列过滤

如需指定要包含在查询中的一列或多列,请添加 columns 子句,为要按其过滤的每列选择列族和列限定符。添加此子句时生成的读取请求包含列族正则表达式过滤条件列范围过滤条件

  1. 点击添加到查询
  2. 在下拉列表中,选择
  3. 点击“列”字段。此时会显示列族列表。
  4. 点击列族 ID。此时将显示列限定符列表。
  5. 点击列限定符。

按时间范围过滤

如需仅检索时间戳在特定范围内的单元,请添加时间范围 子句,使用时间戳范围 过滤条件 ,了解所有最新动态。

  1. 点击添加到查询
  2. 在下拉列表中,选择时间范围
  3. 输入开始时间戳。
  4. 输入结束时间戳。

提供以下某种格式的时间戳:

  • Unix 时间戳(以微秒为单位),例如 3023483279876000
  • YYYY-MM-DDThh:mm:ss:ss[z]
  • YYYY/MM/DD-hh:mm:ss.sss[z]
  • MM/DD/YYYY
  • YYYY/MM/DD

可选的 T 是一个表示时间的字面量,可选的 z 表示 UTC 时间,而不是当地时间。如需详细了解时间戳 格式,请参阅 ISO 8601 ,了解所有最新动态。

指定上限

如需指定返回的行数上限,请添加 limit 子句。

  1. 点击添加到查询
  2. 在下拉列表中,选择限制
  3. 请输入介于 1 到 1,00 之间的数字。

限制

查询构建器存在以下限制。

  • 每个单元格 1,000 个字符 - Bigtable 每个单元格返回的字符数上限为 1,000 个。如果某个单元格包含超过 1,000 个 字符,则会显示截断的结果,并使用 个字符。
  • 最多 100 列 - Bigtable 会返回每行中与查询匹配的前 100 列。列族不会以任何特定顺序存储,但列会在其列族中按字典顺序排序。
  • 最多 1,000 行 - 查询构建器最多返回 与查询匹配的前 1,000 行数据。
  • Base64 - Bigtable 会尽最大努力准确 显示 Base64 编码的数据,但不保证结果。如果 Bigtable 无法显示单元格中的数据,则会改为显示单元格值的大小(以字节为单位)。
  • 较早的数据 - 您只能检索最近的单元格(或 version)。如需详细了解此概念,请参阅 Bigtable 存储模型常规概念

  • 序列化数据 - 存储为协议缓冲区的数据未在查询结果中正确显示。系统对 JSON 数据的支持更好,但无法保证显示效果正确无误。

  • 人工时间戳 - 如果您的应用在将数据写入表时向单元格的 timestamp 属性分配非时间戳数字,您可以在查询中使用时间范围过滤条件来获取您使用的值的范围(而不是时间戳),前提是您将这些值指定为微秒。了解表数据可能使用人为数据的原因 时间戳,请参阅时间戳

后续步骤