该技能适用于对 Domo 数据集执行 SQL 查询,或配合 AIClient.text_to_sql 生成 SQL 后执行,也可用于任何需要对数据集别名运行原始 SQL 的场景。核心工具是 @domoinc/toolkit 提供的 SqlClient,作为 Domo SQL API 的封装,用于对 manifest.json 中映射的数据集执行查询。
主要能力:get(alias, query) 在指定数据集上执行 SQL,alias 为 manifest.json 中的别名,query 为 SQL 字符串,返回 Promise<Response<SqlResponse>>;parsePageFilters(datasets, produceClauses?) 将 Domo 页面过滤器转换为 SQL 谓词,produceClauses 为真时返回 WHERE/HAVING 子句字符串,否则返回谓词对象。
使用方式:从 @domoinc/toolkit 导入 SqlClient 并实例化,调用 get 执行查询。SQL 中 FROM 的别名必须与 manifest 别名一致,例如 SELECT * FROM vendorPayments。可与 AIClient.text_to_sql 组合:先生成 SQL,再用 SqlClient 执行。
响应解析:SQL API 返回列式格式而非行对象数组,包含 columns、rows、metadata、numRows、numColumns、datasource、fromcache。需要用 columns 与 rows 逐行 zip 成对象。响应可能位于 .body、.data 或直接在 result 上,需防御性解析。
限制:应使用 SqlClient 而非 domo.post('/sql/v1/');SQL 端点会忽略页面过滤器,需通过 parsePageFilters() 手动注入;响应始终为列式。其他信息暂未提供。