SuperAPI AI 工具集

docyrus-dsql-query-design

数据与分析

查看项目

更新于 10-16 05:07

技能介绍

用途:该技能用于对 Docyrus 逻辑数据源(而非物理表)编写、发现并执行 DSQL 查询。DSQL 是只读、兼容 PostgreSQL 的 SQL 方言,表名格式为 appSlug.dataSourceSlug。

主要能力:覆盖完整工作流——模式发现、查询编写、执行。支持列出应用、获取单个或多个数据源的模式(返回紧凑的 CREATE TABLE DDL,含可查询字段与连接提示)、执行内联或文件中的 SQL、以 JSON 输出结果,以及用自然语言生成或直接运行查询。

使用方式:先确认认证 docyrus auth who --json,无会话则先 docyrus auth login。发现数据源可用 docyrus apps list --json、docyrus dsql schema app <appSlug> --json,或按数据源 ID 获取模式。执行查询用 docyrus dsql query "..." 或 docyrus dsql query --from-file ./my-query.sql。自然语言路径用 docyrus dsql ask "..."(生成并运行),仅生成 SQL 用 docyrus dsql generate "...",可用 --agentId 覆盖生成代理。

关键规则:表名必须是 appSlug.dataSourceSlug,裸表名会被拒绝;每张表都要起别名,多表查询中所有列都要限定;仅当只有一个逻辑源时才能用裸 *;只读,INSERT/UPDATE/DELETE/DDL 均被拒绝;不支持物理表与 schema 限定函数;按当前会话身份过滤须用 tenant 伪函数;tenant.user 与 tenant.enum 为系统源;base.task 与 base.event 继承 base.activity 字段;默认行数上限 100,硬上限 1000,LIMIT ALL 不能绕过;写连接前必须先读模式,字段名错误会报错。

适用场景:查询、报表、按自然语言取数等。限制:仅限 CLI 使用,不得用于前端页面,底层端点未在 Swagger 中记录,不适用于 React/前端应用代码。完整语言规范与查询模式见 references/dsql-language-reference.md 与 references/query-patterns.md。