用途:发现并检查 BigQuery Data Transfer Service(DTS)配置,识别已有摄取管道,并在需要时提取数据源相关元数据。
主要能力与规则:所有新的 DTS 配置必须通过 gcp pipeline 资源供给框架以声明式方式创建,并生成 deployment.yaml;不得使用 bq mk 或 gcloud 等命令式 CLI 创建或更新配置。CLI 仅允许用于发现(列出/查看)和触发手动运行。
使用方式:先发现环境参数,项目用 gcloud config get project,区域用 gcloud config get compute/region;若仓库根目录已有 deployment.yaml,优先从中提取目标环境的项目与区域。检查已有传输:bq ls --transfer_config --transfer_location=<REGION> --project_id=<PROJECT_ID>。分析已有传输时,用 bq ls --transfer_run --transfer_config=<RESOURCE_NAME> 查看是否至少有一次成功运行;多个传输需结合上下文猜测并请用户确认;发现已禁用传输时询问用户是否启用或新建。新建传输前,用 python3 scripts/bigquery_dts.py --project_id=<PROJECT_ID> <DATA_SOURCE_ID> <REGION> 通过 REST API 检查数据源参数;若未知数据源 ID,可省略该参数列出可用来源。Google 生态数据源若使用最终用户凭据,需生成 OAuth URI 让用户授权,并将返回的 versionInfo 作为 definition.versionInfo;涉及认证的参数需用户提供 Secret Manager 资源 ID。所有必填参数须在生成配置前逐项向用户确认,并确认要摄取的资产/表。之后用 bq show --format=prettyjson --transfer_config <RESOURCE_NAME> 提取配置,部署后触发手动运行:bq mk --transfer_run --transfer_config=<RESOURCE_NAME> --run_time=$(date -u +"%Y-%m-%dT%H:%M:%SZ"),并以 bq ls --format=prettyjson --transfer_run --transfer_config=<RESOURCE_NAME> 每 30-60 秒轮询,最多 5 分钟。
限制:运行失败需分析日志并求助用户;超过 5 分钟仍在进行须停止并等待用户提供 proceed guidance;未获用户确认前不得继续后续任务。完成标准为配置已发现或声明式供给、参数已确认、手动运行已触发并监控且成功或用户给出继续指引。具体数据源参数、收费与平台细节暂未提供。