跳转至

数据工程

数据工程中,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 亿行上可能超时或产生内存溢出。

陷阱:不考虑幂等性

在约束中明确要求"重复运行不产生重复数据",这是数据管道的基本要求。