一句话理解

就像给 OushuDB 的查询计划拍了一张 X 光片——把密密麻麻的 EXPLAIN 文本变成一棵可点击、可展开、可对比的交互式树,一眼就能看出哪个节点在拖后腿。

概述

oushudb_explain 是一个 OushuDB(原 Apache HAWQ)EXPLAIN 执行计划专业查看工具 / WorkBuddy Skill。核心能力:解析 OushuDB EXPLAIN 文本输出,生成自包含的交互式 HTML 可视化页面,无需任何后端服务,浏览器直接打开即可使用。

核心功能

五标签页视图

视图
说明
Plan
树形流程图,显示 cost / time / rows,点击节点展开完整属性、段统计、ORC 扫描面板
Grid
表格铺开所有节点,含 MaxSegTime / LastSegTime / MaxSegRows / LastSegRows 段级指标
Stats
按节点类型和表名聚合统计,带可视化进度条,快速定位瓶颈类型
Query
查询基本信息展示
Raw
原始 EXPLAIN 文本对照查看

OushuDB 特有解析

  • Rows out/in 分布式段统计 — Avg N rows x M workers. Max/Last(segX:host...) 完整解析,含 to first row / to end / start offset 时间线
  • ORC 扫描面板 — LM info(懒加载合并)、Predicate Info(谓词下推 / 条纹裁剪)、MergeRead Info、Decompress Info、Cache Read(缓存命中率)、InputStream Info(带宽吞吐)
  • 分布式统计 — Data locality statistics(本地性比率)、Dispatcher statistics(代理连接时延)、Slice statistics(各切片内存 / Work Mem)
  • 40+ 节点类型 — 按类型着色,含 Gather Motion、Broadcast Motion、Redistribute Motion、Orc Table Scan、Hash Join、GroupAggregate 等

架构设计

notion image

解析器亮点

  • 两遍扫描 — 第一遍识别节点行(> 开头 + 含 cost=)与属性行;第二遍递归解析并构建树
  • 缩进推断 — 不依赖固定缩进宽度,通过比较行首空白长度自动推算父子层级
  • OushuDB 专用正则 — 专有正则提取 Rows out: Avg N rows x M workers. Max/Last(segX:host...) 段级指标

使用方式

一键调用(推荐)

在 WorkBuddy 对话中贴入 EXPLAIN 文本直接调用:
WorkBuddy 自动完成:保存 .explain 文件 → 调 app.py 生成 HTML → present_files 预览面板打开。全程一键。
 

命令行

内置示例快速体验

完整工作流

  1. 在 OushuDB 中执行 EXPLAIN <your_query> 获取执行计划文本
  1. 将文本保存为 .explain 文件(或直接贴入 WorkBuddy 对话)
  1. 运行 app.py 生成 HTML 可视化
  1. 浏览器打开 HTML,在 Plan / Grid / Stats / Query / Raw 五个标签页间切换分析
  1. 点击 Plan 视图任意节点展开详情面板

内置示例数据

文件
说明
example.explain
OushuDB 通用示例

视图交互说明

在 Plan 视图中点击任意节点,展开的详情面板包含:
  • 基本属性 — Startup Cost / Total Cost / Plan Rows / Plan Width
  • 实际执行 — Actual Time (first/last) / Actual Rows / Loops
  • OushuDB 段统计 — Rows out(Avg / Max / Last / Workers)、MaxSegTime、LastSegTime
  • ORC 扫描信息 — LM info、Predicate Info、Cache Read、Decompress Info
  • Hash Join 明细 — Hash chain length、Buckets、内存使用

依赖与环境

  • Python 3.9+(标准库,零额外 pip 包)
  • 输出为自包含 HTML,无服务端依赖,浏览器直接打开
  • 源码托管于 ~/.workbuddy/skills/oushudb_explain/(WorkBuddy 用户级 Skill)

效果展示:视图解读

notion image
 
notion image
 
notion image
 
notion image
 
 
 
AyeeLLMWiki — LLM 本地知识库构建文档Skill-发票报销
Loading...