血缘与图谱 API
SQLink 接口以 SQLINK_BASE_URL=https://<host>/sqlink 为 Base 地址;跨对象图谱接口以 GRAPH_BASE_URL=https://<host>/graph 为 Base 地址。
血缘用于解释“数据来自哪里、如何加工、影响谁”;跨对象图谱还可表达标准、资产等关系。两者的标识、关系口径和服务不同,不能将任意关联边当作计算血缘。
SQLink 核心查询
| 方法与路径 | 关键输入 | 返回与用途 |
|---|---|---|
POST /sqlink/item/searchItems | Body:itemName、folderId、modelId(String)、typeId(String)、currentPage、pageSize | 分页搜索资源,返回 content、totalItems;用于确认 SQLink 侧对象 |
POST /sqlink/lineageGraph/query | JSON Body:id(String)、queryType、direction、depth、hasTemp | 返回 nodes、relationships,用于显示血缘子图 |
POST /sqlink/lineageGraph/getTransform | Query:isGraph(Boolean,默认 true);Body 为图查询条件 | 返回 startIds、endId、transforms、lineageId 等加工逻辑 |
POST /sqlink/lineageGraph/getImpact | JSON Body:id、direction、depth、resourceTypes | 返回影响对象列表,含 id、name、type、dataArea、direction |
SQLink 节点 id 由资源和血缘结果确定,不能直接用数字元数据 objectId 替代。在接入时核对来源系统、数据源、Schema、表/字段和节点标识之间的映射。
场景:发版前的字段影响检查
- 根据源系统、表字段范围找到 SQLink 对应节点,确认最新采集和解析状态。
- 使用
FORWARD查询下游子图,并限制深度和对象类型。 - 获取加工逻辑,复核连接节点和转换表达式是否对应目标字段。
- 调用影响分析,形成受影响表、字段、报表清单,交由责任人确认业务影响。
- 变更完成后重新采集、解析并复查关键链路。
以下是影响分析请求结构,节点标识为占位符:
{
"id": "example-sqlink-node-id",
"queryType": "COLUMN",
"direction": "FORWARD",
"depth": 3,
"resourceTypes": ["TABLE", "COLUMN", "REPORT"],
"hasTemp": false
}查询及影响分析通常支持 FORWARD、BACKWARD、ALL,类型包括 SCHEMA、TABLE、COLUMN、REPORT、REPORT_COLUMN、FILE;不同版本的枚举可能收窄,调用前按目标部署定义确认。本例选择下游方向,不依赖默认值。
没有查到某个下游对象,可能是采集/解析缺失、深度限制、过滤或权限所致,不足以证明不存在影响。字段必填约束和完整查询说明可参照 SQLink 查询接口,冲突时以目标部署的实际定义与验证结果为准。
图谱与统一资产访问
以下能力属于部署可选能力。路径中的 v1/v2 是接口命名,不是产品发行版本声明。目标环境未提供时,应使用相应业务服务查询,不假定存在自动兼容回退。
| 方法与路径 | 关键输入 | 主要返回 |
|---|---|---|
POST /graph/graph/v2/nodes/search | Body:keyword、typeId、page、size | 节点 content、total;起始页需联调确认 |
POST /graph/graph/v2/relations/query | Body:typeId、objectId(String)、sourceSystem、layers、scope | nodes、relations、lastUpdateTime、truncated |
POST /graph/asset-access/v1/discovery/search | Body:query、typeIds、limit、cursor,可带范围条件 | items、nextCursor、hasMore |
POST /graph/asset-access/v1/context/resolve | Body:assetKeys(数组)、profile | results,逐项检查可用性及结果 |
统一资产搜索结果中的 assetKey 包含 sourceSystem、typeId、objectId。读取详情时原样传递这组标识,不只保留名称,也不猜测 sourceSystem 的固定值:
{
"assetKeys": [
{
"sourceSystem": "<搜索结果中的 sourceSystem>",
"typeId": 123,
"objectId": "<搜索结果中的 objectId>"
}
]
}123 为示例类型,须一并替换为搜索结果返回的真实值。profile、scope 和范围类型的有效取值未在当前定义中完整枚举,需由部署方确认,不提供猜测的固定值。
图谱结果若 truncated=true,说明范围被截断,不能作为完整关系集。统一资产分页则跟随返回的 nextCursor,不要自行计算下一页 Token。保留 sourceVersion、sourceUpdatedAt 等可用字段以判断上下文新鲜度。
与 DIG 的边界
这些接口可为企业应用提供资产和关系查询,但不等于 DIG 已发布空间 MCP。需要围绕一个经过治理和验收的业务范围供 AI 使用时,应在 DIG 按上下文检查与发布配置空间范围与授权。直接读取图谱也不会自动获得空间文档、治理审批或知识库访问权。
本页仅核对接口定义,未发起解析、图谱修改、投影重建或对外发布;图谱和血缘业务结果仍需在目标环境用已知样本验收。
SQLink Parser 插件调用链
定制开发需要接入新的作业格式时,Parser 以 SQLink 插件 SPI 方式部署,不是普通 REST Controller。REST 负责上传、解析和读取结果,插件负责把文件内容转换为标准的 LineageContainer、步骤和关系。
上传、解析和读取
| 方法与路径 | 用途 |
|---|---|
POST /sqlink/lineage/getLineageParseEngines | 获取已安装 Parser 的 typeName、描述和插件信息 |
POST /sqlink/lineage/uploadLineageFile | 上传文件;表单包含 lineageEngine、objectType、file、folderId、defaultSchema、parse |
POST /sqlink/lineage/parseLineage | 对上传记录发起解析;支持 lineageIds、status、onlyFailed、incrementalParsing |
POST /sqlink/task/getTaskParseDetail | 查询解析进度、错误类型、错误消息和未找到的表 |
POST /sqlink/lineage/getLineageTableByPage | 分页读取解析出的表及状态 |
POST /sqlink/lineage/getLineage | 获取血缘文件及解析信息 |
POST /sqlink/lineageGraph/getTransform | 读取加工逻辑 |
POST /sqlink/lineageGraph/getImpact | 读取影响范围 |
已提供的插件示例
| 插件 | plugin.json 关键值 | 输入格式与能力 |
|---|---|---|
| WhaleTunnel | type=WHALETUNNEL;loadClass=com.datablau.sqlink.plugin.seatunnel.WhaleTunnelLineageParser;build=1.0.0;扩展名 .json | 读取 whaletunnel.job_config,遍历 exportData 的 source、transform、sink,识别 datasource_name、source_table_name、result_table_name 等字段 |
| Apache SeaTunnel | type=SEATUNNEL;loadClass=com.datablau.sqlink.plugin.seatunnel.SeatunnelLineageParser;build=1.0.0;扩展名 .json | 读取 seatunnel.job_config,解析 plugin_name、plugin_input、plugin_output、table_path、SQL/query、CTE、别名及字段变换 |
插件开发时只依赖 SPI 契约和标准结果对象,不复制 JAR 内部实现。对不支持的任务类型应记录可读错误并跳过,不应生成不完整的假血缘;需要默认 Schema 时显式传入或使用产品约定的 DEFAULT_SCHEMA。
完整表路径查询
查询某张表的全链路血缘时,必须传递完整定位键,至少包含命名空间、Schema 和表名。只传表名会在跨数据源、跨 Schema 场景产生歧义。
{
"namespace": "<catalog-or-source>",
"schema": "sales",
"table": "customer",
"direction": "ALL"
}请求:POST /sqlink/llm/getLineageOfTables。direction 可按目标定义使用 FORWARD、BACKWARD 或 ALL。返回结果应保留完整路径、节点类型和来源系统,供后续图谱查询或审批影响分析使用。
