用途:在 Dune 应用内嵌入 CDF 数据模型的交互式图谱,展示节点、直接关系、边和反向关系。不适用于静态图、纯数据流可视化或非 CDF 图谱。
前提:应用需包裹在 @cognite/dune 的 <DuneProvider> 中,使 useDune() 返回已认证 SDK;目标数据模型需存在于 CDF 且已知 space、externalId、version;使用 React 18+ 与 TypeScript。
集成流程:先检查目标应用的 package.json 与目录结构(如 src/features/、@/ 别名);用应用现有包管理器安装缺失依赖,复用应用已固定的 React 版本;将 skills/graph-viewer/code/ 下所有文件复制到应用本地功能目录(如 src/features/graph-viewer/);从本地目录导入而非 @skills/...,例如 import { useGraphViewer } from "@/features/graph-viewer";;在具有明确尺寸(必须设置高度)的容器中渲染 GraphCanvas;运行 tsc --noEmit 与构建并修复路径或类型问题。
依赖建议版本:react ^18.2.0、@cognite/sdk ^10.10.0、@cognite/dune ^2.1.0、reagraph ^4.30.8、lucide-react ^1.14.0。安装示例:npm install @cognite/sdk@^10.10.0 @cognite/dune@^2.1.0 reagraph@^4.30.8 lucide-react@^1.14.0。若应用已固定其他版本,以应用为准。
CDF 成本与性能:图谱扩展可能发起大量 CDF 请求,尤其涉及反向关系时。建议将 whitelistedRelationProps 限制为实际需要遍历的属性;降低 initialConnectionLimit(每次扩展获取连接数的硬上限);降低 maxNodes 以限制内存 LRU 缓冲;仅为核心反向查询声明必要关系,每项会增加每次扩展的额外查询。coreReverseQueries 元组为版本感知:[space, viewExternalId, viewVersion, propertyName, isList]。
更多配置表、返回值、布局、主题与示例见 code/README.md,实现细节见 code/ 源码。验证清单:应用已包裹 <DuneProvider>;code/ 文件已复制到本地目录;导入指向本地目录;依赖已加入 package.json;GraphCanvas 容器有明确高度;tsc --noEmit 与构建通过;未引入 dune-industrial-components 引用。