数据与AI
当 BigQuery 表或视图损坏、过期或被修改时…
在需要评估某个 BigQuery 表/视图变更或故障会波及哪些下游表、看板和流程时,用数据血缘做下游影响分析。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
当 BigQuery 表或视图损坏、过期特定
解决思路
- 确认资产的完全限定名(FQN),格式为 `bigquery:{project_id}.{dataset_id}.{table_or_view_id}`,例如 `bigquery:my-prod-project.analytics.orders`。
- 确定资产所在位置并构造 Data Lineage API 请求:运行 `bq show --format=json {project_id}:{dataset_id}` 并提取 `location` 字段(如 `us-central1` 或 `us`);若因权限或工具缺失无法发现位置,则向用户询问数据集位置。
- 设置 parent 路径:使用项目 ID 和 MCP 服务器所在位置,格式为 `projects/{project_id}/locations/{mcp_server_location}`,可查阅 `DataLineageServer` 工具定义获取配置的区域/位置。
- 配置搜索范围:将发现到的资产位置加入 payload 的 `locations` 数组(如 `["us-central1"]` 或 `["us", "us-central1"]`)。
- 调用 `DataLineageServer:search_lineage` 工具获取下游血缘图:方向设为 `DOWNSTREAM`,搜索参数使用 `max_depth = 10` 和 `max_process_per_link = 5` 作为稳健默认值。
- 遍历返回的血缘链接构建影响图:每条链接的 `target` 代表依赖源资产的下游资产;检查每条链接的 `processes` 字段以识别传播数据的 ETL 管道、BigQuery 视图或定时查询。
- 区分直接影响与间接影响:深度为 1 的为直接消费源资产的资产,若链接的 `dependency_type: EXACT_COPY` 则将目标标记为“直接过期/完全相同副本”;深度大于 1 的为下游更远处会经历级联过期数据或失败的资产。
- 按以下结构清晰呈现结果:1) 执行摘要,说明受影响下游资产总数和最大影响深度;2) 关键路径,突出高优先级下游资产(如名称含 prod、dashboard、reporting、master 的资产);3) 爆炸半径表格,必须包含全部列:Downstream Asset、Transform Process、Depth、Impact Type;4) 分析元数据,提供搜索参数与边界以便用户选择扩展:Locations Searched、Parent Location、Depth Limit、Process per Link Limit,并提示用户可请求以扩展位置或更大深度限制重新运行分析。
- 若血缘响应为空,立即假定所查询位置中不存在依赖并如实报告给用户。
- 仅使用 `DataLineageServer:search_lineage` 工具获取下游关系,严禁绕过。
- 若 `bq show` 表明源表不存在,停止并直接报告给用户;除非用户明确指示,否则不要猜测其他表名。
- 在最终回复中直接呈现完整的下游爆炸半径表格,不要声称已创建单独的 Markdown 文件或产物,除非确实执行了文件写入工具。
适用边界 · 注意事项
- 不用于一般性的 BigQuery 查询或数据分析(应改用 BigQuery 相关工具)。
- 不用于非 BigQuery 资产(如 Cloud Storage 文件),除非它们是 BigQuery 血缘的一部分。
- 不用于直接创建或修改血缘链接。