数据工程
用途
该技能面向数据工程领域的开发与设计工作,帮助处理数据管道构建、数据仓库模式设计以及实时数据处理等任务。其覆盖范围包括 ETL/ELT 管道、数据仓库(BigQuery、Snowflake、Redshift)、流处理(Kafka、Spark Streaming)、编排(Airflow、Dagster、Prefect)、dbt 转换和数据湖架构。
主要能力
管道架构
技能中对比了 ETL 与 ELT 两种模式:
| 模式 | 适用场景 | 工具 |
|---|---|---|
| ETL | 加载前转换,数据质量关键 | Airflow + 自定义、Spark |
| ELT | 原始数据 → 仓库 → 就地转换 | Fivetran + dbt、Airbyte + dbt |
编排
提供 Apache Airflow 与 Dagster 的代码示例。Airflow 示例使用 @dag 与 @task 装饰器定义每日调度的管道,包含 extract、transform、load 三个任务。Dagster 示例使用 @asset 定义资产,并注明“推荐用于新项目”。
dbt 转换
提供 dbt 模型 SQL 示例,展示如何通过 {{ config(materialized='table', schema='marts') }} 配置物化方式,并使用 {{ ref(...) }} 引用上游模型,构建客户维度表(含生命周期订单数与生命周期价值)。
流处理
提供 Apache Kafka 的 Python 示例,使用 confluent_kafka 库分别展示 Producer(生产事件到 events 主题)与 Consumer(订阅 events 主题、设置消费组与偏移重置策略)的写法。
数据仓库模式设计
- 星型模式: 事实表(可度量事件,如订单、点击、交易)、维度表(描述性上下文,如客户、产品、日期)、缓慢变化维度(Type 1 覆盖、Type 2 版本化行、Type 3 前一列)。
- 数据质量: Great Expectations(模式验证、统计测试、自定义期望)、dbt tests(
not_null、unique、accepted_values、relationships、自定义 SQL 测试)、数据契约(模式演进策略、向后兼容要求)。
关键模式
- 幂等管道: 相同输入始终产生相同输出,可安全重跑。
- 增量模型: 仅处理新增/变更数据,使用
updated_at水位线。 - 死信队列: 将失败记录路由出去以供检查,不阻塞管道。
- 回填策略: 时间分区表支持有针对性的历史重处理。
使用方式
该技能以文档与代码示例形式提供,用户可参考其中的模式对比、代码片段与设计原则,将其应用于实际的数据工程任务中。具体安装或调用方式暂未提供。
适用场景
适用于构建数据管道、设计仓库模式或实现实时数据处理的场景。
限制
资料中未提供该技能的收费、价格、平台支持范围、效果保证或具体使用步骤等信息。