SQL Explorer
核心功能:1.选中 SQL 执行到 ByteHouse / MaxCompute,交互式看结果、表结构、画图、导出。2.并用 Analysis Canvas 把查询与结果组织成可视化分析图谱(数据血缘图/数据分析/数仓建模可视化)。3.零 Python 依赖,多连接统一管理,凭据走系统密钥库
Core:1.Run selected SQL on ByteHouse / MaxCompute. Inspect results & schemas interactively, create charts, export outputs, 2. and assemble visual analysis graphs in Analysis Canvas --(lineage diagram/visualize data‑warehouse modeling). 3.Zero‑Python, unified multi‑connection management, system‑keychain secured credentials.
- 零 Python 依赖:MaxCompute 走纯 Node 自实现(REST + 签名),不用装 pyodps、不用配 Python 环境。
- 多数据源一个面板:ByteHouse(ClickHouse 兼容)、MaxCompute(阿里云)统一连接管理,切换即用。
- 💡 不只是查询窗口:内置表结构浏览、选区复制、筛选&排序、json 结构化、CSV / Python 导出、查询历史与结果归档。
- 💡 Analysis Canvas:把查询历史与保存结果拖到画布上,用连线标注「派生 / 对比 / 校验」等关系,构建你的分析图谱/血缘关系图,分组圈定主题域,左侧 Navigator 索引结构,用 Note 记录分析思考 ➔ 从「查询 + 结果查看工具」进一步变成「数据分析过程/数仓建模的可视化工作空间」 ➔ 画布是关系视图,Detail Panel 是内容视图
- Q / R / N 三层语义:
Q 查询(查了什么/数仓建设代码)→ R 证据(得到了什么/sql结果)→ N 思考(意味着什么/下一步做什么/假设/说明/备注/问题);Group 是主题/数仓域,Edge 是关系/血缘
- Zero‑Python Dependency: Pure Node.js implementation for MaxCompute (REST + signature auth). No
pyodps or Python setup.
- Unified Data‑source Panel: Manage ByteHouse (ClickHouse‑compatible) and Alibaba Cloud MaxCompute connections; switch instantly.
- 💡 Full‑featured Query Workspace: Table‑schema browsing, selection copy, filter‑sort, JSON formatting, CSV/Python export, query‑history & result archive.
- 💡 Analysis Canvas: Drag queries & saved results, label derivation/comparison/validation links to build analysis graphs/lineage diagram ➔ Transcending a basic query‑and‑result tool to become a visual workspace for data‑analysis and data‑warehouse modeling workflows: the canvas provides the relationship view, and the Detail Panel delivers the content view.
- Three‑layer Q/R/N Semantics:
Q ‑ Query (what is being queried / data‑warehouse construction code) →
R ‑ Result (what is obtained / SQL execution output) →
N ‑ Note (what it implies / next‑step actions / hypotheses / explanations / comments / questions).
Group - represents a theme or data‑warehouse domain.
Edge - represents relationships or data lineage.
使用路径:写 SQL → 选数据源 → 执行(SELECT) → 交互表看结果 → 点表看结构 → 画图(暂未完善)/ Canvas 图谱→ 导出 CSV / Python。
30 秒上手
写 SQL/打开 .sql 文件
↓
选中要跑的 SQL执行(Cmd+Enter / Ctrl+Enter)(可带 -- sql-explorer-connection:xxx 指定连接)
↓
Query History
↓
Saved Result (filter/sort/hide/导出 CSV/保存结果)
↓
Analysis Canvas(右键 Add to Canvas 拖入分析图谱➔ 清晰构建数仓模型)
↓
Add Note (记录问题/ 假设/说明/备注)
↓
连接 Query / Result / Note
↓
按主题/数仓建设分域 Group
↓
Navigator 浏览&调整分析结构/数仓建模结构
↓
点击节点查看内容(单击打开,双击跳转)
↓
继续查询验证/数仓建模
↓
Copy Canvas as Image
模块关系
SQL Explorer
│
┌────────────────────┼────────────────────┬──────────────────┐
↓ ↓ ↓ ↓
Connection Manager Result Explorer Metadata Explorer Analysis Canvas
│ │ │ │
多连接 / 凭证 交互表 / 图表 表结构浏览 查询结果组织成图谱
│ │ │ │
ByteHouse / MaxCompute CSV / Python 点表看结构 连线标注关系/创建 group
│ │ │ │
SecretStorage 查询历史 / 结果归档 复制表名 直线 / 弧线 / 阶梯
为什么值得装
- Canvas= 空间关系表达(可以清晰呈现表之间血缘关系,使数仓构建更清晰)
Group
- Navigator= 分组结构导航(可以作为不同数据域的表示“订单域““投放域“)
| 价值 |
说明 |
| 一个面板连多种库 |
ByteHouse / MaxCompute 统一管理,可视化表单建连接,凭据走 SecretStorage 不落明文 |
| MaxCompute 零 Python |
纯 Node 自实现签名 + REST,不用装 pyodps / pandas / 配解释器 |
| 结果表是活的 |
排序 / 搜索 / 过滤 / 隐藏列 / 列宽 / 数值格式 / 分组累计选区复制 |
| 点表即看结构 |
侧栏展开连接自动加载表,点 👁 看列名 + 类型 + 中文注释 |
| 导出即交付 |
CSV、pandas+matplotlib Python 脚本 |
| 历史不丢 |
每次查询入库,历史可重命名、可一键还原 SQL、结果可归档再打开 |
| 分析图谱 |
Analysis Canvas 把查询历史 / 保存结果托到画布,连线标注关系,构建可视化分析地图/数仓建模图;note 进行备注说明 |
| 分组 + 导航 |
按主题把节点圈进分组(可多组归属),Navigator 索引结构,可一键导出高清 PNG 分享 |
🌟新建连接:每一项填什么
侧栏「Connections」右上角 +,弹出可视化表单。选「数据库类型」后,字段按类型切换。
ByteHouse(ClickHouse 兼容)
| 字段 |
填什么 |
示例 |
| 数据库类型 |
选 ByteHouse |
— |
| 连接名称 |
任意别名 |
bytehouse_prod |
| Host |
实例地址(不含协议) |
tenant-xxxx.bytehouse.volces.com |
| Protocol |
https 或 http |
https |
| Port |
HTTP 接口端口 |
8123 |
| Username |
用户名 |
bytehouse |
| Database |
默认库 |
default |
| Credential / 密钥 |
API Key / 密码 |
你的密钥 |
MaxCompute(阿里云)
| 字段 |
填什么 |
示例 |
| 数据库类型 |
选 MaxCompute |
— |
| 连接名称 |
任意别名 |
test_dev |
| AccessId |
阿里云 AccessKey ID |
LTAI... |
| Endpoint |
服务端点(末位 /api 自动补全) |
http://service.xx.maxcompute.aliyun.com |
| Project |
项目名 |
test_dev |
| 默认 Limit(可选) |
无 LIMIT 查询自动补的行数 |
50 |
| Credential / 密钥 |
AccessKey Secret |
你的 Secret |
所有 Credential 都走 VS Code SecretStorage(系统密钥库),不写入 settings.json / 工作区 / git。
核心能力
1. 连接管理(左侧栏)
Connections
├─ ▸ bytehouse_prod (ByteHouse)
│ └─ 展开自动加载表 → 点表名复制 / 👁 看结构
├─ ▸ test_dev (MaxCompute)
│
├─ ▸ Query History → 每次查询的 SQL,可改名 / 点开还原→新标签
└─ ▸ Saved Results → 保存的结果,可改名 / 点开→表格 + 来源 SQL
- 右键连接:Set Active / Test Connection / Set Default / Edit / Delete
- 视图标题栏:+新建连接 / 过滤表名 / 刷新
2. 结果表(Result 面板 — Table 页)
- 排序 / 全局搜索 / 按列过滤(符号 + 枚举多选 + 文本)
- 隐藏列 / 拖拽列宽 / 数值格式(raw / 2 位小数 / 百分数)
- 分组累计选区:⌘+点击格↔表头↔行号多选,矩形拖拽;一键复制 TSV
- 超长 JSON 单元格 → 右键格式化弹窗
- 列宽上限可调(表格顶部 ⚙ 按钮)
3. 其它三个 Tab
| Tab |
内容 |
| Schema |
表结构:列名 / 类型 / 注释,可复制列名 |
| Analysis |
字段类型画像 + 推荐图表 |
| Chart(未完善) |
ECharts 折线 / 柱状 / 直方图 |
4. 导出与归档
| 按钮 |
产出 |
| CSV |
结果导出为 CSV 文件 |
| Python |
生成 pandas + matplotlib 脚本 |
| Save Result |
结果(含 SQL)归档到 .bytequery/data/,左侧 Saved Results 可回看 |
5. Analysis Canvas(分析画布)
把查询历史与保存结果组织成一张可视化分析地图——画布承载「关系」,分组承载「主题」,Navigator 承载「结构」:
- 侧栏 Query History / Saved Results 上右键 Add to Canvas → 加入画布(每个源只引用 sourceType+sourceId,不复制内容)
- 拖动节点在两点间直接连线(默认关系
related、默认弧线样式)
- 点击连线 → 弹框设置自定义标签文字、切换直线 / 弧线 / 阶梯样式,或删除该线
- 单击节点 → 展开右侧 Detail Panel(再点一次收起);双击节点 → 打开原查询 / 原结果
- Detail Panel 左侧拖拽手柄可拉宽/收窄;SQL 自动格式化展示
- 按钮为图标样式,hover 显示文字提示
- 多选:拖框或 ⌘/Ctrl 点选多个节点,Delete 一次删除
- 画布保存到
.bytequery/canvas/c_<id>.json,侧栏 Canvas 视图管理(新建 / 重命名 / 删除 / 打开)
- 支持撤销 / 重做(⌘Z / ⇧⌘Z)与键盘删除选中节点
5.1 分组(Group):按分析主题组织节点
- 建组:拖框 / ⌘点选多个节点 → 工具栏「创建分组」或 ⌘G → 自动按包围盒生成带内边距的组框
- 多组归属:一个节点可同时属于多个分组(组内自动去重)——适合「同一张表既用于增长分析、也用于付费分析」
- 拖放:节点拖入组框即加入该组;拖出组边界即从该组移出(按节点中心点判定)
- 右键节点 → 勾选式菜单精确设置归属(可多选),或「移出所有分组」
- 移动组:拖动组框,组内所有成员节点跟随移动
- 调整大小:组右下角手柄拖拽,只改组尺寸、不挪动内部节点
- 重命名:双击组 → 右侧面板直接编辑;或右键组 → 重命名
- 删除组:右键组 → 删除分组;只删组、不删节点,成员自动释放为 Ungrouped
- 空组自动清理;颜色循环取自预置调色板
5.2 Navigator:当前画布的结构目录
左侧栏实时展示 分组 → 成员 与 Ungrouped:
- 点击组名 → 画布定位到该组;点击节点 → 定位并高亮、刷新 Detail
- 折叠/展开只影响 Navigator,不影响画布上的组框
- 宽度可拖拽;可整个收起为窄条(左侧与右侧面板均支持收起)
- 与画布双向同步:建组 / 改名 / 增删成员 / 删除节点 / 源缺失都会实时反映
5.3 Note(思考层):记录分析中的问题 / 假设 / 结论
Note 是独立的 Canvas Node Type,与 Q/R 平级——可以移动、选中、多选、分组、连线、导出,但不依赖 Query History / Saved Results,内容自身持久化在画布 JSON 里。
- 创建:工具栏「+」→ Note;或右键画布空白处 → Note(新建后自动进入编辑)
- 编辑:双击 Note 进入 inline 编辑(标题 input + 正文 textarea)
- Cmd/Ctrl + Enter 或点卡片右上 ✓ 保存;Esc 取消
- 标题上限 100 字,正文 5000 字;正文超出可滚动查看
- 颜色:6 种低饱和马卡龙预设(米黄 / 莫兰迪绿 / 蜜桃 / 蓝 / 紫 / 粉),卡片「•••」或右侧 Detail 切换,不支持自由调色
- Detail 面板:点 Edit 可在右侧面板内直接改标题 / 正文 / 颜色
- 纯文本:不做 Markdown / 富文本;内容经 React 转义渲染,输入
<script> 只显示为文本
【节点语义与交互对照】
Q = 查询(我查了什么)
R = 证据(我得到了什么)
N = 思考(我认为这意味着什么 / 接下来做什么)
Group = 主题
Edge = 关系
| 节点 |
单击 |
双击 |
| Q / R |
展开右侧 Detail |
打开原查询 / 原结果 |
| Note |
选中 |
进入 inline 编辑 |
5.5 导出为 PNG
工具栏「导出图片」→ 直接把整张画布(含组框、组标签、Q/R/N 节点、连线、箭头、连线标签)导出为高清 PNG,文件名默认取画布名:
- 全内容范围:导出的是所有内容的包围盒,不受当前视口限制
- 高清:2x 倍率绘制,适合贴进 PPT / 文档 / 飞书 / Slack
- 纯色背景:不包含 Navigator / Detail / 工具栏 / 网格,非编辑器截图观感
- 导出为独立
canvas 2D 重绘(非 DOM 截图),保证连线、箭头、标签完整可见
快捷键
| 快捷键 |
平台 |
动作 |
Cmd + Enter |
macOS |
执行选中 SQL |
Ctrl + Enter |
Windows / Linux |
执行选中 SQL |
两条绑定的是同一个 Run Selected SQL 命令,按你当前操作系统自动生效。
配置
| 键 |
默认 |
说明 |
sqlExplorer.resultMaxColumnWidth |
300 |
结果表默认列宽(px),范围 80~2000;拖拽单列可覆盖 |
支持的数据源与限制
| 数据源 |
状态 |
说明 |
| ByteHouse |
✅ 完整 |
HTTP 接口,零依赖 |
| MaxCompute |
✅ 完整 |
纯 Node,SELECT / DESC / 表清单已通;不做 INSERT/UPDATE/DELETE |
| Hologres |
⏳ 占位 |
Adapter 接口预留,暂未实现 |
Local-first:凭据只存本地 SecretStorage,结果/历史存工作区 .bytequery/。
Feedback
发现 Bug 或者有功能建议?请到插件代码仓库提交 Issue,也可以添加我的微信(Yvonne1ru,好友申请验证信息请写明你的问题)
Found a bug or have a feature request? Open an issue in the extension repository, or reach me via WeChat (Yvonne1ru, please state your issue in the verification message).