news 2026/9/14 14:10:00

使用 MCP Toolbox 的 dataplex-search-dq-scans 工具检索 Dataplex 数据质量扫描

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 MCP Toolbox 的 dataplex-search-dq-scans 工具检索 Dataplex 数据质量扫描

使用 MCP Toolbox 的 dataplex-search-dq-scans 工具检索 Dataplex 数据质量扫描

【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox

dataplex-search-dq-scans是 MCP Toolbox(Dataplex/Knowledge Catalog 集成)提供的一个只读工具,用于根据过滤条件、数据扫描资源名、目标表等参数,在 Google Cloud Dataplex 中检索满足条件的数据质量扫描(Data Quality Scan)。本文以该工具的官方文档为主体,结合仓库内工具实现、数据源实现与测试用例,完整讲解其参数语义、YAML 配置方式、底层调用链与典型使用场景,帮助开发者与 AI Agent 快速掌握在 MCP 会话中检索数据质量扫描的完整方法。

工具概述与适用场景

dataplex-search-dq-scans的作用是:返回符合给定条件的数据质量扫描。它归属于 Knowledge Catalog(原 Dataplex)集成,在 Dataplex 预置配置 中作为search_dq_scans工具随--prebuilt dataplex一起提供,并被纳入discovery工具集(toolset),与search_entrieslookup_entrysearch_aspect_typeslookup_context共同构成元数据发现与搜索能力。

典型使用场景包括:

  • 在元数据治理会话中回答"当前项目里有哪些针对某张 BigQuery 表的数据质量扫描";
  • 在 Agent 编排数据质量工作流(如先创建质量扫描、再获取扫描结果)之前,先确认是否已存在同名或同表的扫描,避免重复创建;
  • display_name、资源名或数据实体(表/存储桶)定位扫描,为后续get_data_quality_results等操作提供dataScanId

前置条件:兼容数据源与 IAM 权限

兼容数据源

该工具必须运行在类型为dataplex的数据源之上。数据源的最小配置如下(详见 Knowledge Catalog 数据源文档):

kind: source name: my-dataplex-source type: "dataplex" project: "my-project-id"

其中project为必填项,用于确定配额与计费所属的 GCP 项目。

从源码结构看,工具通过接口约束来校验数据源兼容性:dataplexsearchdqscans包定义了compatibleSource接口,要求数据源实现SearchDataQualityScans(context.Context, string, int, string)方法(见 dataplexsearchdqscans.go)。若在配置中为工具指定的source指向其他不兼容的数据源,ValidateSource会直接报错"source is not a compatible type"。

IAM 权限与身份认证

Dataplex 使用 Identity and Access Management(IAM)控制用户和组对 Dataplex 资源的访问。Toolbox 在与 Dataplex 交互时,会使用你的应用默认凭据(Application Default Credentials,ADC)完成授权与认证。

  • 需要在启动服务器前为运行环境配置好 ADC;
  • 需要确保该 IAM 身份被授予执行相应任务所需的 Dataplex 权限。

按 预置配置文档 的说明,搜索数据质量扫描属于只读操作,授予Dataplex Reader(roles/dataplex.viewer即可满足search_dq_scans的检索需求(该角色也用于search_entrieslookup_entry等只读搜索工具)。若后续还要创建或修改条目,则需要 Dataplex Editor(roles/dataplex.editor)等更高级别的角色。

参数详解

dataplex-search-dq-scans的所有参数均为可选参数,官方文档定义的参数如下:

字段类型必填说明
filterstring用于搜索/过滤数据质量扫描的过滤字符串(例如display_name = "my-scan")。
data_scan_idstring用于过滤的数据扫描资源名(projects/{project}/locations/{locationId}/dataScans/{dataScanId})。
table_namestring用于过滤的表名,映射到data.entity(例如//bigquery.googleapis.com/projects/P/datasets/D/tables/T)。
pageSizeinteger单页返回的数据质量扫描数量,默认值为 10。
orderBystring指定结果的排序方式。

参数的实际语义与过滤字符串组装逻辑

对照 工具实现源码,可以更精确地理解上述参数在运行时如何被转换为 Dataplex 过滤条件:

  1. filter:用户传入的过滤字符串会原样保留;
  2. dataScanId:若提供,会组装成name = "projects/{project}/locations/{locationId}/dataScans/{dataScanId}"形式;
  3. resourcePath(对应文档中的table_name场景):若提供,会组装成data.resource = "//bigquery.googleapis.com/projects/P/datasets/D/tables/T"形式;
  4. 最终将所有非空条件用AND拼接为完整的finalFilter传给 Dataplex 后端。

需要注意两点:

  • 文档中以用户视角命名参数为data_scan_idtable_name,而在 MCP 工具的运行时参数清单(Manifest)中,源码注册的参数名是dataScanIdresourcePath(见 Initialize 中的参数定义),resourcePath的官方注释即为"要过滤的表或存储桶的资源路径,映射到过滤字符串中的data.entity"。在 MCP 客户端实际调用时,请以运行时参数名dataScanIdresourcePath为准,同时参考文档中的data_scan_idtable_name语义。
  • pageSizeorderBy直接透传:pageSize控制单页返回条数(默认 10),orderBy控制排序字段与方向。

底层实现:跨区域列出数据扫描

dataplex-search-dq-scans最终调用的是 Dataplex 数据源上的SearchDataQualityScans方法(见 dataplex.go 源码)。该方法内部构造一个ListDataScansRequest

  • Parentprojects/{project}/locations/-,其中-表示跨所有区域进行检索;
  • FilterPageSizeOrderBy直接取自工具传入的参数;
  • 通过DataScanClient.ListDataScans返回一个迭代器(iterator),源码在len(results) < pageSize的循环内逐条取出结果,遇到iterator.Done时提前结束,遇到其他错误时会携带 gRPC 错误码与消息返回。

此外,从源码可以推断出两个边界行为:pageSize <= 0会被视为非法输入并直接返回错误("pageSize must be positive");返回结果的条数不会超过pageSize,即使后端存在更多匹配项,也只会返回当前页的数据。

配置示例:在 Toolbox 中声明该工具

在 Toolbox 的配置文件中,以kind: tool声明该工具即可将其注册到 MCP 服务器:

kind: tool name: search_dq_scans type: dataplex-search-dq-scans source: my-dataplex-source description: Use this tool to search for data quality scans.

字段说明如下:

字段类型必填说明
typestring固定为"dataplex-search-dq-scans"
sourcestring工具要执行的数据源名称(即上文声明的dataplex类型数据源名)。
descriptionstring传给 LLM 的工具描述,用于让模型理解何时调用该工具。

name是该工具在 MCP 会话中的标识名,可按需命名;description建议写得具体一些,例如"搜索 Dataplex 中的数据质量扫描",便于 LLM 在合适的时机自动选择调用。

使用预置配置快速启用

如果不希望手写数据源与工具配置,可以直接使用仓库提供的 Dataplex 预置配置文件:它以kind: source声明了dataplex-sourceproject: ${DATAPLEX_PROJECT}环境变量注入),并预置了search_dq_scans工具,同时将其纳入discovery工具集。启用方式为在启动 Toolbox 服务器时传入--prebuilt dataplex,并提前设置环境变量DATAPLEX_PROJECT为你的 GCP 项目 ID。

调用示例与典型工作流

按显示名称检索

向 LLM/Agent 提出类似"帮我查一下名为 my-scan 的数据质量扫描"时,模型会以display_name = "my-scan"作为filter参数调用本工具,返回匹配的扫描及其资源信息。

按目标表检索

当需要确认某张 BigQuery 表是否已配置质量扫描时,可传入resourcePath(文档语义为table_name)参数,例如:

resourcePath: "//bigquery.googleapis.com/projects/P/datasets/D/tables/T"

该参数会被组装为data.resource = "//bigquery.googleapis.com/projects/P/datasets/D/tables/T"过滤条件,只返回针对该数据实体的扫描。

与数据质量工具链协同

search_dq_scans在 Dataplex 数据质量工作流中扮演"检索/定位"角色,可与同集成的其他工具形成完整闭环:

  • check_data_quality 工具:创建数据质量扫描模板并触发执行,返回长时运行操作(LRO);
  • get_data_quality_results 工具:按dataScanId获取扫描完成后的质量得分与规则评估结果。

推荐的 Agent 编排顺序是:先用search_dq_scans判断是否存在目标扫描,若不存在再创建,创建完成后轮询get_operationget_run_status,最后用get_data_quality_results获取结果——这样既能避免重复创建扫描,也能在检索时直接拿到已有的dataScanId

实现与测试佐证

仓库为工具提供了完整的解析测试:dataplexsearchdqscans_test.go 中的TestParseFromYamlDataplexSearchDQScans验证了以下 YAML 能被正确解析为Config结构:

kind: tool name: example_tool type: dataplex-search-dq-scans source: my-instance description: some description

测试断言了解析结果中的NameDescriptionType(固定为dataplex-search-dq-scans)与Source字段,确认了配置格式与字段映射与本文描述一致。工具通过init()中的tools.Register(resourceType, newConfig)完成注册(见 dataplexsearchdqscans.go),并在Invoke中对不兼容数据源返回客户端错误,保证调用链的类型安全。

小结

dataplex-search-dq-scans是 MCP Toolbox 中检索 Dataplex 数据质量扫描的标准入口:它以可选的filterdataScanIdresourcePathpageSizeorderBy参数覆盖了按名称、按资源名、按目标表等多种检索方式,底层通过跨区域ListDataScans调用实现,并与check_data_qualityget_data_quality_results等工具共同支撑完整的数据质量治理闭环。配置时只需确保数据源类型为dataplex、IAM 身份具备 Dataplex Reader 权限,即可在 MCP 会话中直接使用。

参考文档

  • knowledge-catalog-search-dq-scans 官方文档
  • Knowledge Catalog(Dataplex)数据源配置
  • Dataplex 预置配置文档
  • Dataplex 预置配置文件
  • 工具实现源码
  • 数据源实现源码(SearchDataQualityScans)
  • 工具解析测试

【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 14:07:59

HP1213tx仁宝代工笔记本非标维修实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 14:07:44

SpringBoot+Vue+Node.js医学竞赛管理系统开发实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 14:05:57

30+程序员转型大模型开发:优势、路线与实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 14:05:55

宁波小松鼠壁挂炉保养维修电话|清洗检修需求咨询|欧米到家客服电话

宁波壁挂炉出现不点火、热水忽冷忽热、地暖不热、反复掉压或漏水&#xff0c;应结合设备型号与采暖系统检查。欧米到家提供壁挂炉维修、清洗保养预约服务&#xff0c;常见故障、平台资质、上门流程及维修场景&#xff0c;帮助用户清楚报修、明白维修。壁挂炉维修不能只看故障代…

作者头像 李华
网站建设 2026/9/14 14:04:40

MATLAB语音滤波GUI:Kaiser窗FIR实时设计与零相位滤波

简介&#xff1a;本资源是一套基于MATLAB GUI的FIR滤波器设计实践项目&#xff0c;面向信号处理初学者、电子信息专业学生及语音算法入门者&#xff0c;聚焦窗函数法实现高通、低通、带通与带阻滤波器的设计与语音滤波应用。压缩包共8个文件&#xff0c;含4个核心MATLAB源码&am…

作者头像 李华