用途:在 Domo 环境中对 manifest.json 里映射的数据集别名执行原始 SQL,替代直接调用 domo.post('/sql/v1/')。适用于需运行原始 SQL、或使用 AIClient.text_to_sql 生成 SQL 后再执行的场合。
主要能力:SqlClient 是 Domo SQL API 的封装。通过 new SqlClient() 实例化。get(alias, query) 对数据集执行 SQL,alias 为 manifest.json 中的别名,返回 Promise<Response<SqlResponse>>。parsePageFilters(datasets, produceClauses?) 将 Domo 页面筛选器转为 SQL 谓词,第二参数为 true 时返回 WHERE/HAVING 子句字符串,否则返回对象。
使用方式:导入 import { SqlClient } from '@domoinc/toolkit'。执行如 await sqlClient.get('datasetAlias', 'SELECT * FROM datasetAlias')。可与 AIClient 组合:先用 AIClient.text_to_sql(question, [{ dataSourceName, description, columns }]) 生成 SQL,再交给 SqlClient 执行。
响应解析:SQL API 返回列式格式,含 columns、rows、metadata、numRows、numColumns、datasource、fromcache,而非行对象数组。需把 columns 与 rows 按索引聚合成对象用于界面渲染。响应可能位于 .body、.data 或直接返回,应防御式解析。
限制:SQL 端点会忽略页面筛选器,需要时用 parsePageFilters() 手动注入。SQL 的 FROM 别名必须与 manifest 别名一致。返回始终为列式结构。收费、价格及平台支持等资料暂未提供。