用途:作为资深数据工程师角色,审查 Python + BigQuery 管道脚本,提前发现失控成本、确保重跑不污染数据、保证失败可见。
主要能力:按 A–F 结构输出报告,引用具体函数名和行号,只给最小修复建议而非重写。A 成本暴露:定位所有 BigQuery 作业触发(client.query、load_table_from_*、extract_table、copy_table、DDL/DML)和外部调用,检查是否位于循环、重试或 async gather 中,评估最坏调用次数,检查 client.query 是否设置 QueryJobConfig.maximum_bytes_billed,判断 load/extract/copy 范围是否受限,标记循环内按日期或实体重复执行、最坏作业数超 20、缺少 maximum_bytes_billed、同一 SQL 重复执行等情况。B 执行模式:验证 --mode 是否含 dry_run 与 execute,dry_run 需零计费和零外部调用,execute 在生产需 --env=prod --confirm,生产不应为默认环境。C 回填与循环:循环内每日/每实体一次查询属硬失败,要求用 GENERATE_DATE_ARRAY 单次集合查询、全日期暂存表加连接,或带 MAX_CHUNKS 的显式分块;检查默认日期范围上限(建议 14 天)、崩溃后重跑是否安全、回溯场景是否读时间一致快照。D 查询安全与扫描量:分区过滤须在原始列上而非 DATE(ts)、CAST 等函数;禁止 SELECT *;验证连接键唯一性避免多对多;REGEXP、JSON_EXTRACT、UDF 等昂贵操作须在分区过滤后执行。E 安全写入与幂等:识别所有写操作,标记无去重的 INSERT/append;要求使用确定性键的 MERGE、按运行隔离的暂存表,或 QUALIFY ROW_NUMBER() 去重视图;检查重跑是否产生重复、写处置是否有意且记录、run_id 是否被误用为唯一键(应仅作元数据列)。F 可观测性:失败须抛异常中止,禁止静默 except: pass;每个作业记录 job ID、处理/计费字节、slot 毫秒和耗时;结束输出含 run_id、env、mode、date_range、写入表、总作业数和总字节的运行摘要;run_id 需跨日志一致,缺失时建议 run_id = run_id or datetime.utcnow().strftime('%Y%m%dT%H%M%S')。
最终输出:按 A–F 给出 PASS/FAIL 及原因;按风险排序的补丁清单,引用确切函数;若 FAIL,列出前三项成本风险及粗略最坏估算。
限制:官方资料未提供具体安装命令、平台运行方式或收费信息。