Data Engineering Agent 数据管道与数仓建模指南

本文介绍如何使用 Data Engineering Agent 辅助设计数据管道和数仓分层,并生成 Studio 任务草稿。本文重点覆盖"方案设计 + SQL 草稿任务"阶段,不覆盖完整的调度发布、补数、DQC 和运维闭环。

适用场景

Data Engineering Agent 适合帮助完成以下数据管道和建模工作:

  • 根据源表设计 Bronze / Silver / Gold 分层方案
  • 根据业务目标设计 ODS / DWD / DWS / ADS 分层方案
  • 生成清洗、标准化、汇总、宽表加工等 SQL 草稿
  • 将一个管道拆成多个 Studio 任务草稿
  • 说明每层输入、输出、字段处理逻辑和上下游依赖
  • 在发布前帮助检查 SQL 类型、目标表、任务目录、依赖关系和运行风险

如果任务已经进入生产发布阶段,还需要进一步检查调度、依赖、重试、超时、数据质量规则和运行监控。

先探索,再设计管道

数据管道和数仓建模通常不是一开始就直接创建任务。

更自然的方式通常是:

  • 先探索源表结构、样例数据和关键字段含义
  • 先判断当前是否已有可复用任务或已有分层结果
  • 再输出分层方案
  • 最后再创建草稿任务

更适合先探索的场景通常包括:

  • 还不知道源表字段是否足够支撑目标建模
  • 不确定更适合做 Silver / Gold 还是 ODS / DWD / DWS
  • 不确定当前目录里是否已有类似管道草稿可以复用

这类问题更适合这样起手:

  • 帮我先看一下这张表适不适合做 Silver / Gold 分层。
  • 帮我先看一下当前目录里有没有相关的数据管道任务可以复用。
  • 帮我先判断这个需求更适合什么分层路径。

推荐工作流

先让 Agent 理解源表

建模前,Agent 通常需要查看表结构、字段名、字段类型和少量样例数据。这类只读探查用于理解数据,不会修改环境。

你可以这样提问:

如果你已经知道关键字段含义,建议直接写明:

如果你还不确定这张表是否值得直接进入建模,也可以先问:

先输出分层方案

不要一开始就让 Agent 直接创建任务。建议先要求它输出方案,包括:

  • 每一层的目标
  • 每一层的输入表和输出表
  • 每个 Studio 任务要放在哪个任务目录
  • 每一层处理哪些字段
  • 清洗、过滤、去重、标准化规则
  • 汇总维度和指标
  • 是否需要落表
  • 是否需要调度依赖

示例:

再创建 SQL 草稿任务

确认方案后,再让 Agent 创建任务草稿。草稿任务会写入 Studio IDE,但不会自动运行、建表或发布调度。创建前应明确指定 Studio 任务目录,避免多层任务散落在默认目录或错误业务目录下。如果目录尚未创建,建议先在 Studio 任务树中创建目录,再让 Agent 创建任务草稿。

建议明确边界:

在 IDE 中检查 SQL

创建草稿后,应重点检查:

  • 任务是否创建在正确目录下
  • SQL 是否引用了正确的源表
  • 输出表名是否符合分层命名规范
  • 字段清洗规则是否符合业务要求
  • 过滤条件是否会误删数据
  • 汇总维度和指标是否正确
  • Gold 层是否引用了正确的 Silver 层输出
  • SQL 是只读查询、建表、插入还是覆盖写入

如果 SQL 是

CREATE TABLE AS SELECT
CREATE TABLE AS SELECT
INSERT INTO
INSERT INTO
INSERT OVERWRITE
INSERT OVERWRITE
,运行后会改变数据或创建目标表。草稿阶段不会执行这些 SQL,但发布或手动运行前必须确认影响范围。

示例:Silver / Gold 销售汇总管道

以下示例展示如何让 Agent 查看源表上下文、生成 Silver / Gold 方案、创建 SQL 草稿任务,并在 IDE 中检查 SQL 内容和未调度状态。调度发布和运行产出应进入发布阶段后再单独确认。

源表:

public.demo_xe_sales
public.demo_xe_sales

目标:

  • Silver 层:对订单明细做字段标准化和基础清洗
  • Gold 层:按
    sale_date
    sale_date
    product_name
    product_name
    汇总最近 7 天销售额、订单数和客单价

Silver 层设计

Silver 层用于承接原始订单明细,并做最基础的可复用清洗。Agent 生成的草稿逻辑包括:

  • 保留订单 ID、商品名、销售额、销售日期、客户 ID、创建时间等字段
  • product_name
    product_name
    TRIM
    TRIM
    ,去除首尾空格
  • 过滤
    sale_amount <= 0
    sale_amount <= 0
    的异常记录
  • 过滤
    sale_date
    sale_date
    为空的记录
  • 过滤商品名为空的记录
  • 增加
    cleaned_at
    cleaned_at
    字段,记录清洗时间
  • 增加
    source_layer
    source_layer
    字段,标识数据来源层级

这类任务适合命名为:

silver_order_clean

Gold 层设计

Gold 层面向业务分析,使用 Silver 层清洗后的数据做汇总。Agent 生成的草稿逻辑包括:

  • 从 Silver 输出表读取
  • 过滤最近 7 天数据
  • sale_date
    sale_date
    product_name
    product_name
    分组
  • 计算订单数
    order_count
    order_count
  • 计算销售额
    sales_amount
    sales_amount
  • 计算客单价
    avg_order_value
    avg_order_value
  • 增加
    summary_at
    summary_at
    字段,记录汇总时间

这类任务适合命名为:

gold_product_daily_summary

任务链路

这个管道应形成以下依赖关系:

public.demo_xe_sales -> silver_order_clean -> gold_product_daily_summary

如果后续进入调度阶段,应配置 Gold 任务依赖 Silver 任务成功后再运行,避免 Gold 读取到未更新或不存在的 Silver 数据。

分层设计建议

Bronze 层

Bronze 层通常保留原始数据或接近原始数据的入湖结果,重点是可追溯、少加工、保留来源信息。

适合处理:

  • 原始数据接入
  • 原始字段保留
  • 来源系统、导入时间、批次号记录
  • 基础格式兼容

Silver 层

Silver 层用于形成可复用的明细数据,重点是清洗、标准化和业务一致性。

适合处理:

  • 字段标准化
  • 空值、异常值过滤
  • 类型转换
  • 去重
  • 维表关联
  • 基础业务规则统一

Gold 层

Gold 层面向具体分析主题、指标或应用,重点是业务可直接消费。

适合处理:

  • 指标汇总
  • 宽表加工
  • 主题域数据集
  • 看板和报表支撑表
  • 下游服务或应用所需的数据产出

任务目录组织建议

数据管道通常包含多个任务。任务目录应能反映项目、业务域或分层关系,便于后续发布、依赖配置、权限管理和批量清理。

常见组织方式:

目录组织方式示例适用场景
按业务域
销售域/Silver
销售域/Silver
销售域/Gold
销售域/Gold
业务域长期维护
按项目
会员增长项目/数据管道
会员增长项目/数据管道
项目制开发
按分层
DWD/订单
DWD/订单
DWS/销售汇总
DWS/销售汇总
数仓任务数量较多
按环境
测试任务/临时开发
测试任务/临时开发
生产任务/销售
生产任务/销售
测试和生产需要隔离

对于 Silver / Gold 这类多任务管道,建议把同一条管道的任务放在同一业务目录下,或按分层放在清晰的子目录下。不要让 Agent 把部分任务创建在当前目录、部分任务创建在默认目录,否则后续配置依赖和清理测试任务都会变困难。

设计管道时应告诉 Agent 什么

为了减少返工,建议在提问中补充以下信息:

  • 源表和目标表所在的 catalog、schema
  • 目标分层,例如 Silver / Gold 或 DWD / DWS
  • Studio 任务目录
  • 每层目标表名
  • 关键字段含义
  • 过滤条件和时间范围
  • 指标口径
  • 是否需要落表
  • 是否只创建草稿
  • 是否允许执行 SQL 或发布调度

示例:

常见问题

为什么要先创建草稿,而不是直接运行?

数据管道通常会创建表、写入表或影响下游任务。先创建草稿可以让工程师检查 SQL、命名、字段口径、目标表和依赖关系,降低误写数据和误发布的风险。

Agent 生成了
CREATE TABLE AS SELECT
CREATE TABLE AS SELECT
,是否表示已经建表?

不是。只有 SQL 被执行后才会建表。创建任务草稿只是把 SQL 写入 IDE。用户手动运行、发布调度或要求 Agent 执行后,才会真正创建目标表。

多层任务是否会自动配置依赖?

创建草稿任务不等于配置调度依赖。进入发布阶段前,应明确要求 Agent 配置依赖,例如"Gold 任务依赖 Silver 任务成功后再运行"。

如何避免字段误用?

当表中存在相似字段时,应让 Agent 先解释字段含义和选择依据。也可以在提问中直接指定关键字段,例如"销售额使用

net_sales_amount
net_sales_amount
,不要使用
gross_sales_amount
gross_sales_amount
"。

推荐提问模板

只生成分层方案

创建分层草稿任务

检查管道草稿

准备进入调度发布

相关文档

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询