数据工程¶
数据工程中,Vibe Coding 在 ETL 脚本、分析查询和数据质量检查上效果显著。
高效场景¶
ETL 管道¶
# 任务简报示例:构建订单数据 ETL 管道
# 背景:
# - 源数据:PostgreSQL orders 表,每天增量约 10 万条
# - 目标:BigQuery analytics.orders_daily 表
# - 调度:Airflow DAG,每天 UTC 02:00 运行
# 目标:
# 实现增量 ETL,只同步前一天的新增和更新记录
# 约束:
# - 使用现有的 db_conn 和 bq_client 工具函数
# - 幂等性:重复运行不产生重复数据
# - 失败时发送告警到 Slack(使用现有 alert() 函数)
# 验收:
# - 本地测试:python test_orders_etl.py
# - 数据验证:源表和目标表记录数一致
SQL 分析查询¶
背景:电商数据仓库,主要表:
- orders(id, user_id, created_at, total_amount, status)
- order_items(order_id, product_id, quantity, price)
- products(id, name, category_id)
- users(id, created_at, country)
目标:计算过去 30 天各品类的 GMV、订单数、客单价,
按 GMV 降序排列,只显示 GMV > 10000 的品类
约束:
- 使用 BigQuery SQL 语法
- 查询执行时间 < 10 秒(数据量约 1 亿行)
- 添加注释说明每个 CTE 的用途
验收:在测试数据集上结果与手工计算一致
数据质量检查¶
# 任务:为 orders 表添加数据质量检查
# 检查项:
# 1. total_amount 不能为负数
# 2. created_at 不能是未来时间
# 3. user_id 必须在 users 表中存在
# 4. 同一用户同一分钟内不能有超过 10 笔订单(防刷单)
# 框架:使用 Great Expectations(已安装)
# 输出:生成 HTML 报告,失败时发送告警
# 验收:
# pytest tests/test_data_quality.py
# 报告生成在 reports/data_quality_YYYYMMDD.html
数据工程特有的上下文要素¶
| 要素 | 说明 |
|---|---|
| 数据字典 | 表结构、字段含义、业务规则 |
| 数据量级 | 行数、增量速度,影响查询策略 |
| 调度系统 | Airflow、Prefect 等的约定 |
| 数据仓库方言 | BigQuery、Snowflake、Redshift 的 SQL 差异 |
| 分区策略 | 表的分区字段和查询过滤要求 |
验证清单¶
- 幂等性测试:重复运行结果一致
- 边界情况:空数据集、单条记录
- 性能测试:在生产数据量级上的执行时间
- 数据一致性:源和目标的记录数、关键指标对比
- 错误处理:网络中断、源数据异常时的行为
常见陷阱¶
陷阱:忽略数据量级
在上下文中明确数据量级。在 1 万行上正确的查询,在 1 亿行上可能超时或产生内存溢出。
陷阱:不考虑幂等性
在约束中明确要求"重复运行不产生重复数据",这是数据管道的基本要求。