SQL Explorer 实战指南:在 RocketRide 管道中浏览数据库、编写 SQL 与解读查询计划

发布时间:2026/9/25 8:18:52
SQL Explorer 实战指南:在 RocketRide 管道中浏览数据库、编写 SQL 与解读查询计划 【免费下载链接】rocketride-serverHigh-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS Code extension, TypeScript/Python SDKs, and Docker deployment.项目地址https://gitcode.com/gh_mirrors/ro/rocketride-server点击查看免费下载SQL Explorerapps/sql-ui是 RocketRide 面向管道已经在对话的数据库打造的工作台浏览 schema、读取行数据、编写并运行 SQL、查看查询计划、暂存表结构变更一站式完成。它不是一个独立的数据库客户端——每一条语句都经由运行中管道里的数据库工具节点执行因此恰好到达该节点所配置的数据库并携带该节点的权限。读完本文你将掌握连接的发现与绑定机制、语句分割与执行语义、行限制的精确规则、模式检查、查询历史、Insights 与查询计划解读以及表设计器的分阶段 DDL 流程。SQL Explorer 的定位管道数据库的工作台SQL Explorer 与常见桌面/网页数据库客户端的根本区别在于它没有自己的数据库连接。所有语句都通过 RocketRide 管道中的一个数据库工具节点database tool node中转经由工具协议tool protocol到达数据库。这意味着语句到达的数据库、使用的账号与权限完全由管道中节点配置决定而不是由 SQL Explorer 决定应用自身不维护会话、不直连端口、不存储凭据一部分做不到的事详见下文 Limits来自工具协议的边界而非应用功能的缺失。动手前需要满足两个前提一条包含数据库节点的运行中管道。连接是从运行中的任务running tasks发现的停止的管道没有任何连接。受支持的节点为 db_mysql、db_postgres 和 db_clickhouse。直接执行开关如果要运行语句。每个此类节点都有Allow direct query execution设置allow_execute默认关闭建议在调用方真正需要之前保持关闭。关闭时schema 浏览、ER 图和 Insights 页照常工作但语句无法执行。第一次被拒绝的语句会弹出横幅This node does not allow execute (allow_execute is off). Schema browsing works; statements cannot run.在 db_mysql 节点文档 中可以找到该设置的完整说明mysql.allow_execute为布尔值默认false用于允许execute、begin、commit、rollback等工具函数直接执行原始 SQL绕过 LLM 翻译与安全检查。节点文档同时列出execute工具每次调用只接受一条语句并可选接受事务会话 ID。如果你还不了解应用App这一概念建议先阅读 Apps 概念文档。连接发现如何找到管道里的数据库节点连接发现的实现位于 apps/sql-ui/src/connect/discovery.ts。核心逻辑非常直接通过client.listTasks({ page_size: 100 })列出调用者的任务过滤掉已完成或状态 4STOPPING/COMPLETED/CANCELLED的任务并按projectId:source去重任务重启可能留下多行逐个解析任务的 token读取其管道定义pipeline dict收集所有 provider 属于已知数据库节点集合的组件。已知 provider 集合在源码中硬编码为export const DATABASE_PROVIDERS: ReadonlySetstring new Set([ db_mysql, db_postgres, db_clickhouse, ]);单个任务解析失败例如在列举与解析之间任务结束会被跳过不会中断整体发现只有初始任务列举本身失败才会抛出异常。端点以projectId:source:componentId作为身份键并按管道名、节点 ID 排序显示。Connections 页面列出你在所有可见管道任务中能找到的每一个数据库工具节点。每张卡片显示管道名、方言和 schema 摘要选中卡片会打开一个抽屉可以在绑定之前探测端点probe the endpoint。列表为空意味着当前没有运行中的任务包含数据库节点。打开一个连接会为其创建一个工作台文档workbench document并把侧边栏填充为该数据库的各个表。所有其他功能都挂在连接上查询文档、数据浏览器、设计器和 ER 图都终身绑定某个连接两个不同连接上的文档永远看不到彼此的查询历史或设置——数据隔离从连接这一层就开始。连接工作台与 schema 快照连接工作台包含两个页面Overview概览统计表、列和外键的数量标明方言列出全部表。选中一张表会打开其记录抽屉头部携带Refresh Schema、Diagram和New Query三个操作。Insights洞察读取同一份 schema 快照评价其形态健康状况详见 Insights 一节。关键认知两个页面读取的都是同一份 schema 快照。数据库节点在管道任务启动时对数据库做一次反射reflect并把这份反射结果提供给所有调用者。因此快照是一个点时间读数point-in-time reading不是实时视图。凡是由它派生的面板都会明确标注from schema snapshot HH:MM。若节点提供refresh_schema工具应用可以在适当时机重新读取见 表设计器一节。浏览表数据分页、过滤、搜索与排序表文档table document通过网格分页读取行数据。分页、过滤、搜索和排序的 SQL 生成实现在 apps/sql-ui/src/sql/paging.ts 的buildPageStatements中规则如下页码与页大小直接进入LIMIT/OFFSET这两个数字来自网格自身绝不来自用户文本因此保持内联而不绑定参数每列过滤器成为WHERE子句的一部分字符串值按包含匹配LIKE %value%数组值生成IN (...),__gte/__lte后缀生成范围比较标题栏搜索框对表的文本类型列char|text|string|uuid|enum做 OR 式LIKE匹配列排序生成ORDER BY。重要所有用户输入的值都以$n位置占位符绑定绝不渲染进 SQL 文本——只有标识符按方言加引号和网格自身的页码直达语句。引号规则见quoteIdentMySQL/ClickHouse 用反引号PostgreSQL/ANSI 用双引号。关于排序回退有一个值得注意的设计在没有用户排序时应用按主键升序排序从而保证分页可重复。若一张表既没有主键也没有用户排序则完全不生成ORDER BY——此时 SQL 标准不保证跨页行序因此数据浏览器会在网格上方提示No primary key — page order is not guaranteed by the database而不是让用户通过看到同一行两次来发现这一点。编写与运行查询语句分割、执行语义与事务边界查询文档是一个 SQL 编辑器叠加结果网格的组合。运行背后最重要的事实是节点的execute工具一次只接受一条语句因此缓冲区内多条语句必须先由应用分割split然后逐条发送。方言感知的语句分割器分割器是手写的文本扫描器而非正则表达式因为;只有在代码中才是分隔符——在字符串字面量、带引号的标识符、行/块注释或 PostgreSQL dollar-quoted 体中它只是普通字符。核心实现见 apps/sql-ui/src/sql/split.ts其中scanRegions是整个词法形态的唯一权威分割器、注释剥离器和顶层关键词搜索都复用它。方言词法差异被建模为IScanTraits词法特性MySQLPostgreSQLClickHouse#行注释✅❌❌--需后跟空白才是注释✅❌❌嵌套块注释❌✅❌$tag$ ... $tag$体❌✅❌字符串内反斜杠转义✅❌除非E...前缀✅这些差异解释了若干看似刁钻的行为MySQL 中SELECT 1--2是算术表达式而非注释因此--后必须跟空白或控制字符才开启注释PostgreSQL 的$tag$若延续了标识符如SELECT foo$tag$是单个标识符则不开启 dollar quotePostgreSQL 支持嵌套块注释/* /* */ */能被正确处理。MySQL 的DELIMITER指令不被支持在文件中间改变终止符的缓冲区会被错误分割因此存储过程定义请改用 MySQL 客户端运行。分割器对只含空白与注释的片段不产生语句因此尾部;或收尾注释不会产生空语句。三种运行方式RunCtrl/CmdEnter发送当前选中内容若无选中则发送光标所在的那条语句光标落在语句间空白/注释处时发送其前面的语句。Run allCtrl/CmdShiftEnter按顺序发送缓冲区全部语句在第一条出错处停止。按下任何键之前编辑器下方会有一行预览说明将发送什么Will run: statement 2 of 3 (lines 4–6) Will run: selection (lines 2–3) Will run: nothing — editor is empty编辑器高亮与这行预览始终一致。批量运行后结果上方会有一条记录带strip每条语句一个条目选中某条目即显示该语句的行。选择集的处理使用splitStatementsInsplit.ts选择不一定恰好是一条语句如一次拖选SELECT 1; DELETE FROM t分割并重定基偏移后每条语句的模式检查、事务拒绝、只读重试等防护仍然逐个生效。每条语句独立提交普通execute的每次调用都被包装在自己的事务中node 侧基于engine.begin()因此批量中第 3 条失败时第 1、2 条已经提交错误横幅会明说这一点。结果行的措辞区分读与写1 ran · 2 committed · 3 failed · 4–5 not run读语句记作ran写/DDL 语句记作committed。正因如此BEGIN、COMMIT、ROLLBACK在发送前就被拒绝Transaction statements have no effect here: each statement runs and commits on its own.节点确实有事务面begin/commit/rollback携带 session id见 db_mysql 节点文档但 SQL Explorer 不使用它——静默无效的事务控制比明确拒绝更糟。一条语句也可能到达两次如果管道任务在语句飞行途中重启应用按文本分类为读的语句可能被重发一次写语句从不重发。分类基于文本因此SELECT … INTO、nextval或其他易变函数会改动数据却按文本算作读在重启场景下可能被重发。行限制的精确语义200 / 1000 / All结果头部提供200、1000、All三档作用于返回行的语句。结果行会如实说明应用了什么1,000 rows returned (limit 1000)— 应用追加了限制N rows returned (limit in statement)— 语句最外层查询自带LIMIT子查询内部的 LIMIT 只约束该子查询因此 200/1000 档仍会追加自己的限制N rows returned (no limit applied)— 没有任何限制约束结果。no limit applied要按字面理解All搭配一个不在最外层的LIMIT恰好产生这一行。例如SELECT o.* FROM orders o JOIN (SELECT customer_id FROM customers LIMIT 10) c ON c.customer_id o.customer_id以All运行会被认定为自带限制为无什么都不追加行显示no limit applied。这不是读数错误——内层LIMIT 10只约束 customer 子查询外层仍可能返回属于那十位顾客的全部订单。该行描述的是结果不是文本。要限制返回量选择200或1000在外层追加限制或者把LIMIT移到顶层。锁子句前的限制插入一条以锁子句结尾的语句——FOR UPDATE、FOR NO KEY UPDATE、FOR SHARE、FOR KEY SHARE或 MySQL 的LOCK IN SHARE MODE——会被在锁子句之前插入限制而非追加在其后结果行与普通受限读一样显示limit 200。原因在于两种引擎对顺序的要求不同MySQL 文档规定[LIMIT …] [FOR UPDATE | LOCK IN SHARE MODE]拒绝跟在锁子句之后的LIMITPostgreSQL 两种顺序都接受。因此把限制放在前面是两者都合法的唯一摆放方式读操作保持受限而不会流式拉回整张表。你的锁子句本身原样保留其OF列表、NOWAIT、SKIP LOCKED完全按你输入的方式发送。两个例外形状保持不加限制锁子句或语句自带限制被同一行的#遮蔽#只开启 MySQL 注释因此在任何其他连接包括方言探测失败的连接上应用无法区分被注释掉的# for update与真实子句。若把限制移到它前面反而会把子句从注释中提出来。PostgreSQL 连接上一行里把#用作运算符的语句也会因此失去限制若语句自带LIMIT/FETCH连limit in statement的读数也会失去语句确实有界但只能分行书写才能被识别。WITH链中任意位置含有FOR UPDATE或FOR NO KEY UPDATE包括 CTE 体内UPDATE一词被当作链的动词整条链被读作数据修改链作为写操作处理、不加限制、显示no limit applied。链中唯一的锁子句是FOR SHARE/FOR KEY SHARE时则正常受限于。这是WITH链分类上的已知缺口而非限制规则的缺口。第三种形状保持旧的追加摆放锁子句后跟语句自身OFFSET时LIMIT追加在OFFSET之后若插到子句前OFFSET会被遗留在它后面。FETCH 子句的识别FETCH { FIRST | NEXT } … { ROW | ROWS } ONLY被按LIMIT同样方式识别SQL Explorer 视其为语句自带限制并原样发送锁子句一并保留——SELECT … FETCH FIRST 10 ROWS ONLY FOR UPDATE完全按输入发出结果行显示limit in statement而非limit 200。这一处理在所有档位下都成立200/1000/All 均读作limit in statement也覆盖FETCH … WITH TIES尽管WITH TIES可能返回多于声明数量的行该行只声明语句自带约束不声称该数字是硬性上限。与LIMIT同理只有最外层查询的FETCH才算数子查询或 CTE 体内的FETCH只约束内部结果。裸OFFSET永不自成限制。另外FETCH NEXT FROM mycursor是 PostgreSQL 推进游标的写法不是SELECT根本不进入此重写。MySQL 无FETCH FIRST子句MariaDB 10.6 有使用它的语句对 MySQL 而言本身非法因此原样留给服务器报错。节点级上限在应用限制之上还有节点自己的max_execute_rows上限。超出它的语句失败而非返回截断结果横幅追加The node caps results at N rows; choose a lower limit or add LIMIT.当返回行数恰好等于应用的限制时会出现徽章Limit reached — more rows may exist——整页结果并不能证明结果到此为止。模式检查文本检查而非数据库保障在运行以下语句前应用会弹窗询问无WHERE的UPDATE或DELETEWITH子句内的UPDATE或DELETETRUNCATE、DROP、ALTER。弹窗文案明确声明其性质Pattern check: kind detected. This is a text check, not a database safeguard.可确认Run statement或选择Run and stop asking on this connection。实现位于 apps/sql-ui/src/sql/classify.ts 的patternCheck其规则值得细读以WITH开头的语句按链所携带的动词检查WITH audit AS (SELECT id FROM orders) DELETE FROM orders会删除全部行因此与任何无WHERE的DELETE一样被询问WITH子句体以UPDATE/DELETE开头时即使其后面跟着自己的只读WITH链报告为UPDATE inside a WITH clause/DELETE inside a WITH clause而不对其WHERE下结论——文本检查无法确定子句内WHERE作用于谁。两者同时命中时外层语句优先被点名动词必须是语句自己的动词而非子句中的词SELECT ... FOR UPDATE只锁行upsert 的ON CONFLICT ... DO UPDATE属于它的INSERT两者都不被询问INSERT永不被标记无论在子句内还是子句外EXPLAIN ANALYZE会实际运行它所描述的语句因此按该语句检查EXPLAIN ANALYZE DELETE FROM orders像它所执行的DELETE一样被询问普通EXPLAIN不运行任何东西永不被询问。同样按字面理解该检查只读语句文本从不咨询数据库不知道WHERE实际匹配什么也阻止不了任何事。它不被称作安全模式且关闭时编辑器行上会有Pattern checks off控件状态永不可见性缺失。语句失败与 Stop waiting语句失败时横幅以数据库自身的第一行信息开头前缀为Database reported:。节点附加的包装文本不会出现在标题行——Database reported:之后是数据库的原话一个可折叠的Database said块保存到达应用时的完整原文。横幅还会点名该语句、其行号以及此前哪些语句已运行或已提交。驱动文本能否到达取决于节点版本旧版节点吞掉数据库消息并返回通用字符串此时横幅如实说明The databases message was not returned by this node version. The pipeline nodes log has it.无论哪种情况完整消息都在管道节点的日志中。停止等待Stop waiting工具协议中没有任何机制能取消正在运行的语句。语句到达数据库一秒后出现Stop waiting按钮——它只做字面意义的事应用停止监听并丢弃迟到的回答。确认弹窗打开期间不提供该按钮此时尚未发送任何内容多语句运行中从第一条派发起计时按钮在连续运行的其余部分保持可用语句间若插入确认则会暂时消失直到下一条发出。横幅明确说明Stopped waiting after N.N s. The statement may still be running on the database; this tool cannot cancel it.要停止它只能在数据库上停止。自动补全源自 schema 快照补全建议全部来自 schema 快照apps/sql-ui/src/sql/completion.ts.之后所别名/命名表的各列FROM/JOIN/UPDATE/INTO之后表名之后缓冲区中提到的任何表的列然后关键词片段SELECT … FROM、JOIN … ON、INSERT … VALUES、UPDATE … SET … WHERE、CREATE TABLE、EXPLAIN。标识符按方言加引号。任务启动后新建的表不在快照中因此不会被建议。结果网格类型标注、精度与导出结果的列是带类型的头部工具提示说明类型的依据当应用能确定单一来源表且返回的每一列都属于它时类型取自 schema显示为BIGINT (schema)否则由返回值推断显示为number (inferred from N rows)。数字右对齐并按数值排序前导零的字符串保持字符串。选中某行打开单元格检查器cell inspector显示每一列的完整值——长 JSON 文档无需拉宽网格即可阅读。导出使用网格自带的导出器位于网格头部齿轮菜单中携带运行返回的行在应用的限制之下。任何含数值列的结果下都有一条精度提示Decimal values arrive as floating point; integers above 2^53 lose precision.这是节点的值转换行为而非网格渲染问题因此导出同样适用。查询历史服务端存储与边界历史抽屉按连接列出你运行过的语句最新在前支持搜索和读/写/错误/置顶过滤器。展开条目显示完整语句、结果和往返时间round trip并可载入编辑器、重跑、置顶、注释或删除。存储位置是关键。历史写入服务端上的 RocketRide 工作区偏好文件workspace preferences按用户隔离而非浏览器存储抽屉打开时常驻提示Saved in your RocketRide workspace file on the server, not in this browser. Statements are stored as typed, including literal values.WHERE 子句里输入的字面量按输入原样存储。失败语句连同到达应用时的失败消息含节点包装而非横幅引用的那句一起存储此类消息可能携带语句中的值。两者都保留在偏好文件中直到条目被删除、列表被清空或达到下述边界。它不是服务端审计日志也不是存放机密的地方。实现细节见 apps/sql-ui/src/history/historyStore.ts因为偏好文件在每次应用切换时被读和写列表设有边界每连接 100 条含置顶、每条语句 8 KB、跨全部连接共 256 KBtrim.ts中的trimBag/trimHistory执行裁剪记录开关按连接可关闭Clear清空单个连接的列表置顶条目一并清除写入采用 300ms 防抖批处理而记录开关的翻转不走防抖立即写入——丢失一次运行损失一行记录丢失一次关闭则损失用户的隐私决定历史只在 SQL Explorer 处于前台时写入通过HistoryPrefsBridge挂载判定防止把历史写进其他应用的前台偏好重新运行一个曾改动数据的条目会先询问并引用上次行为重跑是一次全新运行、产生自己的新条目。关系仅使用声明的外键表记录抽屉显示表的列、主键和声明的外键并增加Referenced by (n)——外键指向本表的那些表每个都可打开自己的抽屉Query——Select top 100和Count rows打开一个写好了语句但未运行的新查询文档Join path——选择第二张表后应用沿声明的外键寻找最短路径最多四次连接多条等长路径或两表有多于一个连接键时全部列出而非默默挑选复合键生成多列ON。关键原则任何地方都只用声明的外键——抽屉、连接生成和审查规则皆是如此。两列因名字相似看起来相关不会被当作相关。ClickHouse 根本不声明外键因此这些区块显示ClickHouse declares no foreign keys; join paths are unavailable.Open as query把连接写入新查询文档。生成的 SQL 从不替你运行文档在横幅Generated preview — review, then Run下打开语句带有-- generated from declared foreign keys; review before running注释横幅在首次编辑或运行时清除。Insights从快照看 schema 健康度Insights 页帮助你熟悉陌生 schema 并审查它。它只读快照不查询任何东西、不改变任何东西因此在关闭执行allow_execute off的连接上也能工作。方向条orientation strip识别三类表hubs被引用最多的表含入边计数、leaves只引用其他表的表和isolated孤立表每个名字都能打开该表的抽屉。三条规则产生发现实现见 apps/sql-ui/src/schema/quality.ts规则报告内容R1表无主键行无法单独寻址数据浏览器无法保证分页顺序。R2外键两侧的类型拼写不同。仅供参考——比较在规范化后是文本性的引擎可能同时接受两者。R3外键点名了本快照中不存在的表或列。页脚的局限说明界定了每一条声明的范围规则只读取列、主键和声明的外键不检查索引、其他约束和数据本身发现是对某一快照的读数而非对数据库的裁决。值得注意的实现细节normaliseType会剥离括号参数INT(11)与INT相同并把引擎别名归一INTEGER/INT4→INT、INT8→BIGINT、BOOL→BOOLEAN等且 R2 比较刻意不做命名约定推断——customer_id恰好匹配另一张表的主键是猜测而猜测出现在发现列表里会被读作事实。在 ClickHouse 上 R1 降级为info并点名引擎因为 MergeTree 的ORDER BY并非主键约束逐表报警只会制造噪音。查询计划EXPLAIN 与解析树计划抽屉Explain或Ctrl/CmdShiftE为 Run 将发送的同一语句含头部已应用的限制运行普通EXPLAIN。表单按方言区分方言语句形式MySQLEXPLAIN FORMATJSONPostgreSQLEXPLAIN (FORMAT JSON)ClickHouseEXPLAIN其他方言下抽屉显示EXPLAIN is not available for dialect in SQL Explorer。实现见 apps/sql-ui/src/sql/explain.ts 的buildExplain构建语句与parseExplain解析输出。原始输出是默认视图因为它是数据库真正发送的内容解析树作为第二个标签页并排展示。解析器不认识的计划形状会在原始文本旁显示一条信息性注释——Could not interpret this plan shape; raw output shown——绝不是错误因为数据库侧没有任何问题。解析器基于厂商文档MySQL 8.0EXPLAIN FORMATJSON、PostgreSQLEXPLAIN (FORMAT JSON)、ClickHouseEXPLAIN与记录在案的列名编写并针对记录的夹具fixtures而非活数据库进行测试见 apps/sql-ui/tests/explain.test.ts。树中的每个数字都是规划器估计值。普通EXPLAIN不运行语句因此本页没有任何测量值数字在Planner estimates, not measurements.图例下带est.后缀。没有EXPLAIN ANALYZE。planNotes还会给出基于文本模式的提示例如 MySQL 的access_type ALL表示全表扫描、Using filesort表示无索引排序、PostgreSQL 的Seq Scan表示顺序扫描每条提示都注明它读取的具体字段读者可在原始输出中核对。表设计器分阶段 DDL 变更表设计器table designer采用暂存而非即时应用你编辑列、键和类型视图持续维护一份计划并显示将要运行的确切 DDL。在点击 Apply 之前没有任何东西到达数据库。Apply 确认会点名将运行的语句数量列出引用任何你正在删除、重命名或改型的列的入边外键标注from schema snapshot HH:MM并携带方言的提交说明。这些说明从不出现rollback因为这里没有任何东西能回滚MySQL——每条 DDL 语句隐式提交。计划中途失败之前的语句已应用。此处无可回滚。PostgreSQL——每条语句在自己的 autocommit 事务中运行。计划中途失败之前的语句已应用。ClickHouse——部分ALTER形式作为异步变更asynchronous mutations运行可能在对话框关闭后才完成。中途停止的批量会报告已提交的内容、失败的语句和未运行的部分计划保留剩余语句。成功 Apply 之后应用能告诉你什么取决于节点节点提供refresh_schema工具时应用重读 schema 并显示Applied HH:MM · schema re-read from the database.不提供时快照仍是任务启动时的那一份横幅如实说明Applied HH:MM. The node reflected its schema at task start; the tree and diagram will not show this change until the pipeline restarts.两种情况下语句都已运行只是应用的 schema 视图落后。Limits工具协议与应用设计的边界无取消。Stop waiting停止的是应用等待不是数据库。无事务。每条语句独立提交事务控制被拒绝。无EXPLAIN ANALYZE。计划数字是估计值永不是测量值。无DELIMITER。改变终止符的缓冲区会分割错误。仅声明的外键。不根据列名推断任何关系ClickHouse 完全不声明外键。schema 是快照来自管道启动时除非节点能重读。限制移到锁子句之前。MySQL 要求锁子句在LIMIT之后PostgreSQL 两种顺序都接受应用把LIMIT插到尾部锁子句之前使读取在两者上都有界且合法。SELECT … FOR UPDATE因此以SELECT …/LIMIT 200/FOR UPDATE发送。两种形状完全不保留限制——同行#之后的锁子句或语句自带限制原样发送与含FOR UPDATE/FOR NO KEY UPDATE的WITH链按写分类——第三种形状保留旧追加摆放锁子句后跟语句自带OFFSET时LIMIT追加在OFFSET之后而非插在子句前。重复列名折叠。投影返回两个同名列时只显示一个节点把每行作为以列名为键的对象返回网格从第一行取表头。给其中一个起别名即可看到两者。编辑器从 CDN 加载 Monaco。隔离air-gapped浏览器能获得应用的其余部分但没有可用的 SQL 编辑器。下一步继续深入仓库db_mysql 节点文档、db_postgres 节点文档 与 db_clickhouse 节点文档每个连接背后的节点包括工具面与直接执行设置Apps 概念文档应用是什么以及它如何到达你的引擎Shell API 指南SQL Explorer 所依赖的框架若你想构建自己的应用。若想深入实现最值得一读的源码入口依次是apps/sql-ui/src/connect/discovery.ts连接发现、apps/sql-ui/src/sql/split.ts语句分割、apps/sql-ui/src/sql/classify.ts分类与模式检查、apps/sql-ui/src/sql/paging.ts分页 SQL 生成、apps/sql-ui/src/sql/explain.ts计划解析、apps/sql-ui/src/history/historyStore.ts历史持久化与 apps/sql-ui/src/schema/quality.tsInsights 规则。配套测试覆盖了全部关键行为语句分割、分类、分页、计划解析、批量结果措辞、历史裁剪与质量规则分别位于 apps/sql-ui/tests 目录下是理解各模块契约的第一手资料。赞分享【免费下载链接】rocketride-serverHigh-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS Code extension, TypeScript/Python SDKs, and Docker deployment.项目地址https://gitcode.com/gh_mirrors/ro/rocketride-server点击查看免费下载相关推荐告别SQL编写烦恼Vanna AI数据库查询实战指南告别SQL编写烦恼Vanna AI数据库查询实战指南 Vanna AI是一款基于大型语言模型 LLM 的智能数据库查询工具它能让你通过自然语言与SQL数据库人工智能AI AgentRAG数据库后端数据可视化kepler.gl SQL/DuckDB Data Explorer 数据探索器用 SQL 在浏览器内完成地理数据查询与上地图kepler.gl SQL/DuckDB Data Explorer 数据探索器用 SQL 在浏览器内完成地理数据查询与上地图 kepler.gl 的 SQL数据可视化数据分析Metabase 查询型 Transforms 完整实战指南SQL 与查询构建器的定时写回数据管道Metabase 查询型 Transforms 完整实战指南SQL 与查询构建器的定时写回数据管道 导读 查询型 TransformQuery based数据分析数据可视化后端数据库客户端企业应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考