在控制台中构建查询

您可以使用 Bigtable Studio 查询构建器查询和查看 Bigtable 数据。查询构建器是 控制台 Google Cloud 中的一个交互式表单,可让您构建查询、针对表运行查询, 然后在控制台中查看结果。

借助 Bigtable Studio 查询构建器,您可以使用下拉选择器指定查询子句的组合,而无需编写应用或使用 CLI。运行查询时,控制台会调用 Bigtable Data API,该 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 窗格提供实例中的表列表,查询结果 窗格显示默认查询的结果。

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

数据显示格式

查询构建器结果显示在表中。第一个标题和列是行键 。其余标题分别表示 Bigtable 表中的一列,以列族和列限定符表示,两者之间用英文冒号分隔。例如,标题 cell_plan: data_plan_01gb 表示该列中的值来自 cell_plan 列族中的 data_plan_01gb 列。

下拉

系统只会返回列的最新值。时间戳默认处于隐藏状态,但您可以点击切换开关来显示它们。

选择一个表

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

可选:指定应用配置文件

您可以使用专门为查询构建器创建的应用配置文件。例如,当您想使用与主应用所用集群不同的集群来隔离查询流量时,这会很有用。

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

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

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

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

向查询添加子句,然后高效运转

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

查询子句

您可以使用查询构建器向查询添加子句。运行查询时,查询构建器会创建并向您的表发送 读取请求。如需详细了解读取请求,请参阅 读取

行键、行键范围和行键前缀子句决定了从存储空间中提取的行。行键正则表达式、列和时间范围子句会向生成的读取请求添加 过滤条件。在查询构建器中使用的过滤条件与在客户端库中使用过滤条件时的效果相同。如需详细了解 Bigtable 过滤条件以及使用过滤条件对性能的影响,请参阅 过滤条件使用 过滤条件

指定行键

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

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

指定行键范围

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

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

指定行键前缀

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

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

按行键正则表达式过滤

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

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

按列过滤

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

  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

指定上限

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

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

限制

以下限制适用于查询构建器。

  • 每个单元格 1,000 个字符 :Bigtable 每个单元格最多返回 1,000 个字符。如果单元格包含超过 1,000 个字符,系统会显示截断的结果,并附有未显示的字符数。
  • 最多 100 列 :Bigtable 会返回与查询匹配的每行中的前 100 列。列族不以任何特定顺序存储,但列在其列族中按字典顺序排序。
  • 最多 1,000 行 :查询构建器最多返回与查询匹配的前 1,000 行数据。
  • Base64 :Bigtable 会尽力准确显示 Base64 编码的数据,但无法保证结果的准确性。如果 Bigtable 无法显示单元格中的数据,则会改为显示单元格值的大小(以字节为单位)。
  • 旧数据 :您只能检索所查询列中的最新单元格(或版本)。如需详细了解此概念,请参阅 Bigtable 存储 模型一般概念

  • 序列化数据 :以协议缓冲区形式存储的数据在查询结果中无法正确显示。JSON 数据可以得到更好的支持,但无法保证显示正确。

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

后续步骤