mcpField
D
datalens

datalens

github.com/datalens-tech数据与数据库12162 次安装3 周前更新
代码仓库

关于 datalens

DataLens 是商业智能与数据可视化系统,此技能负责引导用户选择合适的操作接口。它区分 Python SDK、MCP 服务、HTTP API 和 Web UI,并说明不同部署方式的注意事项。

主要功能

  1. 01说明实体的数据流转
  2. 02区分不同部署类型
  3. 03为任务选择操作接口
  4. 04指导使用对象 ID
  5. 05界定不支持的任务

适用场景

  1. 01选择 DataLens 自动化接口
  2. 02规划数据集和仪表板操作
  3. 03确认部署相关的 API 要求
  4. 04避免对 ID 或容器作出假设

MCP 相关

此技能将 Agent 会话中的交互式任务引导至 `@datalens-tech/mcp` 服务。该服务启动时获取 API 的 OpenAPI 规范,并通过 `list_commands`、`describe_commands` 和 `invoke_command` 三个工具提供命令网关。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/datalens-tech/datalens-skills --skill datalens

安装后在 Claude Code 中输入/datalens确认已加载。

详细介绍

DataLens

DataLens 是一个商业智能和数据可视化系统:它连接数据库,将数据建模为数据集,并基于数据集生成图表和仪表板。它以托管服务的形式在 Yandex Cloud 中提供,也可部署在本地,并由 Yandex 内部运行。

本文件用于引导和路由,不会讲解任何单一接口——请从下方选择相应接口,并遵循负责该接口的技能。

数据流

database → connection → source → dataset → chart → dashboard
  • 连接 — 一个数据库的凭据和驱动程序。
  • 数据源 — 通过该连接公开的表或 SQL 查询。
  • 数据集 — 建模层:字段、计算字段、联接、参数、行级安全。
  • 图表 — 一种可视化。向导图表基于数据集;QL图表跳过数据集,直接查询连接;编辑器图表使用自定义 JavaScript。
  • 仪表板 — 基于图表的标签页、组件、选择器和布局。

从左向右构建,并通过 ID 引用。删除上游对象会导致所有下游对象失效。

对象 ID 和 URL

具有明确类型的对象,其 DataLens URL 可以采用以下任一形式:

  • /<object_type>/<object_id>-<readable_slug> — 仅将可读后缀之前的对象 ID 传递给 API。
  • /<object_type>/<object_id> — 没有可读后缀时,最后一个路径段整体就是对象 ID。

仪表板链接还有一种简短形式:https://datalens.ru/<dashboard_id>。当 URL 被识别为仪表板链接时,唯一的路径段就是仪表板 ID;其中没有对象类型段。例如,https://datalens.ru/bgquq1234567 指向 ID 为 bgquq1234567 的仪表板。

对于明确标注类型的对象,https://datalens.ru/connections/r6wa2j1ww5cad-demo 指向 ID 为 r6wa2j1ww5cad 的连接;demo 是便于阅读的 URL 后缀。如果 URL 为 https://datalens.ru/connections/r6wa2j1ww5cad,则将完整路径段用作 ID。连接、数据集和图表均适用同一规则。不要将根路径级别的简短形式用于这些对象类型。

将对象 ID 视为不透明值。若有 Copy ID 的值或 API 响应中的 id 字段,请优先使用。如果 URL 有歧义或不符合这些形式,不要猜测 ID。不要将对象 ID 与显示名称、可读 URL 后缀或字段 UUID 混淆。

对象模型

对象的归属位置与上述数据流是不同的维度。连接、数据集、图表和仪表板都是条目,条目存放在容器树中。有两种方案,具体安装提供哪一种各不相同:

newer    collection
           ├── collection …            nested, arbitrarily deep
           └── workbook
                 └── entries           connection, dataset, chart, dashboard

older    folder tree, path-addressed   e.g. Users/someone/reports
           └── entries                 held directly, no workbook in between

在较新的方案中,工作簿是分组和权限的基本单位;在较旧的方案中,文件夹路径承担这一角色。绝不要假设当前提供的是哪一种——某个安装可能提供其中一种,也可能两种都提供。因此,请按照接口技能的说明确认,而不要针对仅支持工作簿的部署编写基于路径的逻辑。

安装类型

绝不要假设当前使用的是哪种安装类型——主机、身份验证方式以及可用的连接器和图表类型都各不相同。在编写任何与 API 交互的内容之前,请先确认安装类型。

安装类型UIAPI 主机身份验证
Yandex Clouddatalens.ruapi.datalens.techyc CLI IAM 令牌,以及组织 ID
本地部署询问用户询问用户因部署而异;通常为环境变量中的 OAuth 令牌
Yandex Team(内部)datalens.yandex-team.ruapi.datalens.yandex.net内部身份验证

Yandex Cloud 是托管服务。本地部署包括开源自托管版本(docker compose,UI 位于 :8080)和商业企业版。Yandex Team 是 Yandex 的内部安装版本——回答任何与其相关的具体问题之前,请先参阅下方的安装专属说明。

特定工具的技能会为你检测安装类型——例如,SDK 自带一个可报告安装类型的预检程序。不要自行编写检测逻辑。

选择接口

想要使用技能
使用 Python 管理实体——创建、更新、检查、导出、克隆Python SDK(PyPI 上的 datalens-sdk)datalens-sdk
让 Agent 通过工具直接调用 DataLens APIMCP 服务(@datalens-tech/mcp)— 请参阅其 README
其他编程需求公共 HTTP API— 请参阅下文
浏览、点击操作、查看渲染后的图表Web UI— 供人使用,不适用于 Agent

SDK 与 MCP。 对于任何脚本化、可重复或提交到代码仓库的任务,SDK 都是默认选择——它有类型定义和完善的对象模型,而且工作成果会以代码形式保留下来。MCP 服务适合在 Agent 会话中进行交互式的一次性操作:它会在启动时获取 API 的 OpenAPI 规范,并提供一个包含三个工具的网关(list_commands → describe_commands → invoke_command),而不是数百个工具。不要在同一任务中混用两者。

两者都不适用时,使用 HTTP API。 SDK 和 MCP 服务都基于该 API 构建,因此只有在它们无法满足需求时,才直接调用 HTTP API。它采用 RPC 风格而非 REST 风格:你需要使用 JSON 负载调用具名命令,而不是操作资源。它还支持自描述——从安装环境的 API 主机上的 /json/ 获取 OpenAPI 规范(参见上文的 安装环境;云端地址为 https://api.datalens.tech/json/),并根据规范操作,不要猜测命令名称或负载结构。在云端,必须提供组织 ID,并通过 x-dl-org-id 标头发送。

特定安装环境的说明

有两种安装环境不会提供你需要的信息,遇到这两种情况时,都应询问,而不是自行补全。

Yandex Team 通过单独分发的技能 datalens-yateam 扩展。如果可用技能列表中包含该技能,且环境面向该安装环境,请调用它:该技能会补充并覆盖本文档中的特定安装环境说明;若两者有冲突,以该技能为准。如果任务涉及 Yandex Team,但列表中没有该技能,请停止并请用户按照 https://datalens.yandex-team.ru/get-skills 中的说明安装。与此同时,不要自行推断其内容——说明答案中的哪部分取决于安装环境,并将其留待确认。

本地部署版不会公布任何端点,而且 API 不一定与 UI 位于同一主机上。在编写任何会与这两者通信的内容之前,请停止并向用户询问 DataLens 端点和 DataLens API 端点。不要根据其中一个推导另一个,不要回退到云端默认值,也不要使用占位符继续操作。

不在讨论范围内

明确说明边界,并停止操作,不要临时拼凑相邻解决方案:

  • 指标在业务上代表什么,或某个数值看起来是否正确。
  • 对 Web UI 截图或进行自动化操作。
  • 将 DataLens 嵌入其他产品,或使用 iframe。
  • 不涉及 DataLens 实体的 SQL 和分析。

评论

支持 Markdown