获取查询统计信息

本页面介绍了如何使用 cbt CLI 获取查询统计信息。您还可以使用适用于 Cloud Bigtable 的 Go 客户端库来获取查询统计信息。

本页介绍的内容是面向应用开发者提供的。在阅读本页内容之前,您应该了解 Bigtable 存储模型。您还应熟悉架构设计最佳实践了解性能相关的概念。

在开发应用时,如果能够获取有关 Bigtable 查询的信息,将会很有帮助。通过这些信息,您可以获取有关查询性能的数据,然后根据需要调整查询或更改架构设计,以优化查询性能。

虽然“查询”通常是指发送到表的任何数据请求,但 Bigtable 只会返回读取请求的查询统计信息。

准备工作

  1. 如果您尚未安装 cbt CLI,请按照 cbt CLI 概览中的说明(包括创建 .cbtrc 文件的步骤)执行操作。
  2. 参阅 cbt CLI 参考文档中的读取行部分,了解可用于向表发送 cbt read 请求的命令行语法和选项。请注意,cbt CLI 不支持过滤条件。
  3. 确保您拥有表的 bigtable.tables.readRows 权限,或者您是 bigtable.reader 角色的主账号。

运行查询

  1. 使用读取行部分中的语法创建查询。

  2. 运行以下命令。可通过 include-stats=full 参数指示 Bigtable 返回查询统计信息。

    cbt read TABLE_ID QUERY include-stats=full
    

    替换以下内容:

    • TABLE_ID:您要查询的表的唯一 ID
    • QUERYcbt CLI 格式的查询

    终端会显示所读取的数据以及一个包含以下统计信息的列表:

    • rows_seen_count:Bigtable 为请求处理的行数
    • rows_returned_count:应用过滤条件后返回的行数
    • cells_seen_count:为请求处理的单元数
    • cells_returned_count:应用过滤条件后返回的单元数
    • frontend_server_latency:从 Bigtable 前端服务器池测量的请求延迟时间,以毫秒表示

结果解释

  • 查看所显示单元数与返回单元数的比率。如果 cells_seen_count/cells_returned_count 的商为 1 或接近 1,则表示您的查询没有导致 Bigtable 处理最终被过滤掉的数据。

  • 考虑返回的行数。该数值越大,Bigtable 执行的操作就越多。这里的最佳数值取决于您的具体用例和延迟要求,但一般而言,查询返回的行数越少,延迟就越低。

示例

假设您希望在读取名为 my-table 的表中与正则表达式 orange:*.* 匹配的所有行时获取查询统计信息,则可以运行以下命令:

cbt read my-table regex='.*orange' columns='.*:.*' include-stats=full

输出类似于以下内容:

  ----------------------------------------
  orange
    Details:Color                            @ 2022/09/26-14:48:01.286000
      "orange"
    Details:Size                             @ 2022/09/26-14:48:01.286000
      "medium"

  Request Stats
  ====================
  rows_seen_count: 10
  rows_returned_count : 1
  cells_seen_count: 2
  cells_returned_count: 2
  frontend_server_latency: 13ms

后续步骤