在控制台中构建查询

您可以使用 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 页面会在查询构建器模式下打开。探索器窗格提供实例中的表列表,查询结果窗格显示默认查询的结果。

  4. 可选:收起探索器窗格,放大查询构建器窗格。

数据显示格式

查询构建器结果以表格形式显示。第一个标题和列是行键。其余标题分别代表 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 语法的正则表达式

按列过滤

如需指定查询中包含的一个或多个列,请添加一个 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 之间的数字。

限制

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

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

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

  • 虚假时间戳 - 如果应用在将数据写入表时为单元格的时间戳属性分配了非时间戳数字,您可以在查询中使用时间范围过滤条件来获取您使用的值范围,而不是时间戳,只要您将它们指定为微秒即可。如需了解表数据可能使用人工时间戳的原因,请参阅时间戳

后续步骤