获取查询统计信息
本页介绍了如何使用
cbt
CLI
,了解所有最新动态。您还可以使用适用于 Cloud Bigtable 的 Go 客户端库来获取查询统计信息。
本页介绍的内容是面向应用开发者提供的。在您之前 您应该已经了解了 Bigtable 存储模型。您 您应该也熟悉 架构设计最佳实践和 了解效果。
在开发应用时,如果能够获取有关 Bigtable 查询的信息,将会很有帮助。通过这些信息,您可以获取有关查询性能的数据,然后根据需要调整查询或更改架构设计,以优化查询性能。
虽然“查询”通常是指发送到表的任何数据请求,但 Bigtable 只会返回读取请求的查询统计信息。
准备工作
- 如果您尚未安装
cbt
CLI ,请按照 上的说明cbt
CLI 概览 包括创建.cbtrc
文件的步骤。 - 查看
读取行
部分中
cbt
CLI 以便您熟悉 可用于发送cbt read
请求的命令行语法和选项 。请注意,cbt
CLI 不支持过滤器。 - 确保您拥有表的
bigtable.tables.readRows
权限,或者您是bigtable.reader
角色的主账号。
运行查询
使用读取行部分中的语法创建查询。
运行以下命令。可通过
include-stats=full
参数指示 Bigtable 返回查询统计信息。cbt read TABLE_ID QUERY include-stats=full
请替换以下内容:
TABLE_ID
:您要查询的表的唯一 IDQUERY
:acbt
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