数据湖计算 DLC DLC MCP 实践

数据湖计算 DLC(Data Lake Compute,DLC)提供基于 Model Context Protocol(MCP)的标准化接入能力。通过 DLC MCP Server,可以以在支持 MCP 协议的 AI Agent(例如 WorkBuddy 及其他兼容 MCP 的智能体应用)中,以自然语言对话的方式直接操作 DLC,无需编写代码即可完成数据查询、元数据浏览、Spark 作业管理、任务运维诊断与权限查询等。

相关产品
数据湖计算 DLC 产品页,含版本规格、价格与购买入口。

一、功能简介

DLC MCP Server 采用 Streamable HTTP 传输协议,服务地址如下:

https://tcmcpserver.cloud.tencent.com/dlc/mcp

注意:说明:

二、前提条件

在使用 DLC MCP Server 前,请你确保已完成以下准备:

1. 已注册腾讯云账号并完成实名认证。

2. 已开通数据湖计算 DLC 服务。如未开通,请登录 数据湖计算 DLC 控制台 按指引开通。

3. 已在目标地域购买并配置可用的数据引擎(标准引擎或 SuperSQL 引擎),且引擎处于运行中状态。详情请参见 标准引擎配置指引。

4. 你的账号(或子账号)已具备 DLC 相关 CAM 权限,且在 DLC 中已授予目标库表的数据权限与目标引擎的使用权限。权限配置详情请参见 DLC 权限管理相关文档。

三、支持的能力

DLC MCP Server 当前提供 21 个工具(Tool),覆盖以下六大能力域:

四、SQL 执行与结果获取

工具 说明
DLCExecuteQuery 提交只读 SQL / Spark SQL 查询任务(异步),返回任务 ID
DLCDescribeMCPTask 查询任务状态与详情,任务完成后可直接预览结果集
DLCDescribeMCPTaskResult 获取任务完整结果集(单次最多 1000 行,支持分页)

五、元数据查询

工具 说明
DLCListDatasourceConnections 查询数据源 / Catalog 连接列表
DLCListDatabases 查询数据库列表
DLCListTableNames 查询指定数据库下的表名列表
DLCListTables 查询单表完整元数据(列定义、分区、存储信息等)
DLCDescribeTablePartitions 查询 Hive / Iceberg 表分区信息

六、数据引擎与资源组

工具 说明
DLCListEngines 查询数据引擎列表
DLCDescribeDataEngine 查询单个数据引擎详情(状态、规格、网络配置等)
DLCDescribeStandardEngineResourceGroups 查询标准引擎资源组

七、Spark 作业管理

工具 说明
DLCCreateSparkApp 创建 Spark 作业
DLCCreateSparkAppTask 启动 Spark 作业运行
DLCDescribeSparkAppJobs 查询 Spark 作业列表
DLCDescribeSparkAppJob 查询单个 Spark 作业详情

八、任务运维与性能诊断

工具 说明
DLCDescribeTaskList 查询历史任务列表(支持按引擎、状态、关键字、时间范围过滤)
DLCDescribeTasksAnalysis Spark 任务性能洞察与诊断(资源抢占、Shuffle 异常、慢任务、数据倾斜、资源不足)
DLCListTaskJobLogName 获取任务日志文件名列表
DLCListTaskJobLogDetail 分页读取任务日志内容

九、用户与权限

工具 说明
DLCDescribeUserInfo 查询用户详情及权限(工作组、数据权限、引擎权限、行级权限等)
DLCDescribeMCPSubUin 获取当前调用方的子账号 UIN,用于权限自查询

十、典型使用场景

接入后,你可以直接以自然语言向 Agent 发起以下类型的请求:

·帮我查一下 ap-guangzhou 地域下有哪些数据库和表。

·在数据引擎上执行 SELECT COUNT(*) FROM db.table,并告诉我结果。

·帮我看看任务 xxx 为什么失败了,拉取日志分析根因。

·查询我在 ap-chongqing 地域的数据权限和引擎权限,整理成表格。

·找出最近执行最慢的 5 个任务,分析是排队久还是计算慢,并给出优化建议。

·创建一个 Spark 作业并提交运行,运行完成后告诉我结果。

十一、使用限制与注意事项

使用 DLC MCP Server 时,请你关注以下限制:

1. 地域参数必填:所有工具均须传入地域参数(如 ap-guangzhou、ap-shanghai),请确保与资源所在地域一致。

2. 异步任务模型:SQL 任务提交后异步执行,需通过任务 ID 轮询获取结果。任务状态轮询频率限制为每秒最多 1 次,建议间隔 3 – 5 秒。

3. 结果集分页:单次查询结果最多返回 1000 行;结果集过大时请通过分页参数获取后续数据,或缩小查询范围。

4. 元数据列举:查询单表元数据时请传入明确的表名进行精准查询,不建议依赖空条件的全量列举。

5. 风险操作确认:创建 / 修改 / 删除 / 启动 Spark 作业、取消运行中任务等变更类操作会实际影响你的云上资源与计费,Agent 执行前应向你明确说明影响范围并征得确认。

6. 诊断数据范围:任务性能诊断仅适用于 Spark 引擎任务。

十二、在 WorkBuddy 中接入

WorkBuddy 已内置腾讯云数据湖计算 DLC 连接器,你可以通过以下步骤快速接入。

十三、步骤一:连接 DLC 连接器

1. 登录 WorkBuddy,在左侧边栏单击 专家·技能·连接器,并且进入连接器管理页面。

2. 在连接器列表中搜索 腾讯云数据湖计算 DLC。

3. 单击 + 连接,进入登录控制台指引页面,单击使用腾讯云账号登录,按指引完成控制台登录。

4. 登录完成后,在权限申请页面保持默认全选,单击授权。

5. 授权完成后自动跳转回 WorkBuddy 页面,弹窗提示连接器状态变更为“已连接”,即表示接入成功。

十四、步骤二:验证连通性

在 WorkBuddy 对话框中输入以下指令进行验证:

帮我列出 ap-guangzhou 地域下的数据库列表

若正常返回你账号下的数据库清单,即表示 DLC MCP 已成功接入,可以开始使用。

十五、通过密钥鉴权接入

对于不支持账号授权引导的 Agent,可使用腾讯云 API 密钥(SecretId / SecretKey)鉴权接入。

十六、步骤一:获取 API 密钥

1. 登录腾讯云控制台,单击页面右上角的账号头像,在弹出菜单中单击 API 密钥管理。

2. 在 API 密钥管理 页面,单击 新建密钥。

3. 在创建 SecretKey 页面,妥善保存生成的 SecretId 和 SecretKey。

十七、步骤二:在 Agent 中配置

以 OpenAI Codex 为例:

1. 单击左侧菜单栏的插件,进入插件页面后,单击右上角的齿轮图标。

2. 切换到 MCP 标签页,单击 + 添加服务器,进入连接至自定义 MCP 页面,按下表完成参数配置。

参数 是否必填 配置说明
名称 是 自定义连接名称,建议填写 DLC,便于后续识别。
类型 是 选择流式 HTTP(请勿选择 STDIO)。
URL 是 填写 https://tcmcpserver.cloud.tencent.com/dlc/mcp。
Bearer 令牌环境变量 否 密钥鉴权方式下无需配置,保持默认置灰状态即可。
标头 是 单击 + 添加标头,添加以下两行:• 标头名 X-Auth-SecretId,值为你的 SecretId。• 标头名 X-Auth-SecretKey,值为你的 SecretKey。
来自环境变量的标头 否 无需配置,适用于团队统一管理密钥的场景。

3. 单击页面右下角的保存。在 MCP 列表中看到刚保存的服务器,即表示配置成功。

对于无可视化配置页面的 Agent,可在其 MCP 配置文件中写入以下内容完成配置:

{ "mcpServers": { "dlc-aksk": { "transport": "streamable-http", "url": "https://tcmcpserver.cloud.tencent.com/dlc/mcp", "headers": { "X-Auth-SecretId": "替换为你的SecretId", "X-Auth-SecretKey": "替换为你的Secretkey" } } }}

十九、调用时提示 UnauthorizedOperation.NoEngineCamPermissions 如何处理?

该错误表示当前账号缺少 DLC 相关 CAM 动作权限。请联系主账号管理员在 访问管理 CAM 控制台 为你的账号授予对应 DLC 权限(至少包含 dlc:CreateTask 等执行任务所需动作),并确认你在 DLC 中已被授予目标引擎与库表的使用权限。

20、SQL 执行返回「仅支持只读 SQL / Spark SQL」如何处理?

DLC MCP Server 当前仅支持只读查询语句。如需执行数据写入、表结构变更等操作,请前往 DLC 控制台数据探索提交任务。

21、查询结果只有部分数据如何处理?

单次结果返回上限为 1000 行。你可以让 Agent 通过分页参数继续获取后续数据。

22、任务长时间处于排队状态如何处理?

可能原因包括:目标引擎处于挂起状态(冷启动需要时间)、引擎算力不足或资源组排队。你可以让 Agent 查询引擎状态与任务洞察指标进行归因,或更换为运行中的健康引擎重新提交。

赞 (0)
上一篇 5天前
下一篇 5天前