用途:当需要构建数据管道、ETL/ELT 工作流或数据转换层时启用,适用于从零设计 ETL/ELT 管道、编写或调试 Airflow DAG、创建 dbt 模型与测试、优化 Spark 作业、决定流式还是批量、实现增量加载或 CDC、规划数仓或湖仓架构、以及数据质量检查与管道监控。不适用于 BI 看板设计与可视化,也不适用于机器学习模型训练或特征工程。
主要能力:围绕数据工程五大支柱给出决策框架——摄取模式(ETL 与 ELT)、编排(Airflow)、转换(dbt)、大规模处理(Spark)、架构选择(流式与批量),并说明各模式的适用时机与取舍。核心原则包括:幂等性不可妥协;现代栈优先 ELT;分区与增量而非全量重载;用编排器而非脚本;像测试代码一样测试数据。
使用方式:根据约束选择模式,例如落地前需过滤 PII 用 ETL,希望分析师迭代转换用 ELT,单次加载超 1TB 用 ELT 加 Spark,小于 100MB 的参考数据直接加载。标准 ELT 流程为抽取、加载原始数据到暂存层、用 dbt 分层转换(staging 到 intermediate 到 mart)、在层边界测试数据质量、从 mart 层服务下游。Airflow 中保持编排与业务逻辑分离,多数生产 DAG 设 catchup=False,并设置 execution_timeout。dbt 项目按 staging、intermediate、marts 三层组织,增量模型必须定义 unique_key。Spark 优化关注数据倾斜、过多 shuffle 和小文件。数据质量可用 dbt 测试、Great Expectations 或自定义断言在每个阶段设卡。
限制与注意事项:流式并非总是更优,除非有明确的亚分钟级实时需求,否则先用批量;dbt 增量模型未设 unique_key 会导致重复;Airflow catchup=True 可能触发大量回填;硬编码日期破坏幂等性;Spark 数据倾斜会使单个任务耗时十倍;缺少告警会导致静默失败。详细模式可参考 airflow-patterns、dbt-patterns、spark-tuning、streaming-architecture 等文件,按需加载以免占用上下文。首次激活时会检查配套技能并提示安装命令 npx skills add AbsolutelySkilled/AbsolutelySkilled --skill <name>。