query_dump 接口
本文介绍如何使用 StarRocks 的 query_dump 接口来查看 SQL 查询的相关信息。
使用 StarRocks 执行查询 SQL 时,如果遇到以下问题,可以通过 StarRocks 的 query_dump 功能将 SQL 以及相关的信息发送给 StarRocks 技术支持人员进行问题排查。
- 执行 SQL 或者 EXPLAIN SQL 时返回
Unknown Error
。 - 执行 SQL 时遇到非正常返回的报错信息或异常。
- 执行 SQL 时效率不符合预期,或者发现执行计划有优化点(例如,可以裁剪分区或进行 Join 顺序调整)。
功能介绍
query_dump 会根据查询的 SQL,返回 FE 执行 SQL 时依赖的信息,包括:
- 查询语句
- 查询中引用的表结构
- Session 变量
- BE 个数
- 统计信息(Min,Max值)
- 异常信息(异常堆栈)
- 执行计划信息
为了保护数据隐私,我们会对查询使用的库名,表名,列名等元信息进行脱敏,同时也会使用脱敏后的元信息改写查询语句。
元信息脱敏默认开启。如果脱敏过程遇到异常会终止脱敏过程,则使用原始信息。如果需要关闭脱敏过程,可以在URI中设置 "mock=false"。
HTTP 接口
HTTP Post
fe_host:fe_http_port/api/query_dump?db=${database}&mock={value} post_data=${Query}
wget --user=${username} --password=${password} --post-file ${query_file} "http://${fe_host}:${fe_http_port}/api/query_dump?db=${database}&mock=${value}" -O ${dump_file}
参数说明:
- query_file:包含 query 的文件。
- dump_file:输出文件。
- db:SQL 语句执行的数据库。如果用户在 query 中包含了
use db
语句,则db
参数为可选,否则需要指定。 - mock: 打开/关闭信息脱敏过程。