在本教程中,我们将学习如何通过 VSCode 扩展使用 GPT-5.2 Codex 创建端到端的数据工程管道。我们不会一次性让模型构建所有内容,而是采用分层方式搭建 MVP,按部就班地引导代理完成设计、实现与测试。
这种方法契合 GPT-5.2 Codex 在实践中的最佳使用方式,也贴近真实世界的数据工程工作流。别忘了查阅我们关于模型新版本 GPT-5.3 Codex 和 OpenAI 全新思维模型 GPT-5.4 的指南。
如果您想进一步了解如何使用 OpenAI 生态,建议查看 Working with the OpenAI API 课程 。
What is GPT-5.2 Codex?
GPT 5.2 Codex 是 OpenAI 最新一代 的代理式编码模型,为真实的软件工程工作流而构建。它在长上下文理解、大型重构与迁移、稳定的工具调用,以及对 Windows 的原生支持等方面有显著提升。
这些改进让它在 VSCode 等 IDE 中进行长时间、端到端的开发时特别高效。过去几个月里, OpenAI Codex VSCode 扩展显著进步,现在已能与 Claude Code 在复杂、代理驱动的开发中直接竞争。
1. Create the GitHub Repository
首先,我们为数据工程 MVP 创建一个新的 GitHub 仓库。
访问 https://github.com/new
输入 仓库名称(Repository name) 和可选的 描述(description)
将仓库可见性设置为 Public
启用 Initialize this repository with a README
点击 Create repository
创建完成后,复制仓库 URL。下一步我们将使用该 URL 在本地克隆项目。
开始之前,请确保已安装 Visual Studio Code,并拥有有效的 ChatGPT Plus 账户。免费和 Go 套餐无法通过 VSCode 扩展访问 Codex 模型。
1. 使用之前复制的 URL 克隆仓库。
2. 进入仓库目录并启动 VSCode。
git clone https://github.com/kingabzpro/data-engineering-analytics-mvp.git
cd data-engineering-analytics-mvp
code .技术支持
3. 打开扩展(Ctrl + Shift + X),搜索 OpenAI Codex 并安装。只需几秒钟。
4. 点击左侧面板的 OpenAI 图标以启动 Codex 扩展。系统会提示您使用 ChatGPT 账户或 API 账户登录。请选择 ChatGPT 账户,浏览器会打开以请求授权。授权后回到 VSCode,即可开始使用 Codex。
3. Build the Data Engineering Project
本项目的范围刻意限定为最小可行产品(MVP)。 目标不是打造生产级数据平台,而是构建一个完整的端到端数据工程切片,演示真实分析系统的结构。
在本 MVP 中,我们将构建一个简单但可信的分析管道,它可以:
摄取一个包含事件数据的 CSV 文件
将数据加载到 DuckDB 作为原始数据仓表(raw_events)
应用基于 SQL 的转换 以生成干净、可用于分析的事实表(fct_events)
使用 DuckDB SQL 计算三项核心指标
在本地 Streamlit 仪表盘中展示这些指标
完整流程如下:
CSV file
↓
raw_events ( raw ingestion, 1 :1 with source )
↓
fct_events ( typed, deduplicated, transformed)
↓
metrics ( daily count, 7 -day rolling avg, top category)
↓
Streamlit UI ( local dashboard) 技术支持
4. Scaffold the Project with GPT-5.2 Codex
本步骤使用 GPT-5.2 Codex 生成项目的初始骨架。目标不是立刻实现功能,而是创建一个干净、可运行的基础,我们将按步骤逐步扩展。
为让 Codex 聚焦,我们使用一个名为 Codex Harness 的小型控制块。将其粘贴在每个提示的顶部,以确保 Codex 遵循 MVP 范围、输出一致,并提交干净、可审阅的变更。
Codex Harness(粘贴到每个任务中):
You are GPT-5.2 Codex working in my GitHub repository.
MVP ONLY:
CSV → raw table → transform → 3 metrics → Streamlit dashboard.
SCOPE RULES:
- Implement ONLY what this task asks.
- No auth, schedulers, cloud services, or extra pages.
OUTPUT:
- Be descriptive.
- After changes include:
1 ) What changed
2 ) Files touched
3 ) How to run locally
4 ) Quick verification step
- Commit after each major step with a clear message.技术支持
在编写代码前,明确指示 Codex 使用网络搜索来验证所有依赖的最新版,并确保兼容 Python 3.11。这样可避免安装过时或不兼容的包。
IMPORTANT: USE WEB SEARCH FIRST
TASK 1 ( SCAFFOLD) :
Use Python 3.11 + uv + DuckDB + Streamlit + Pydantic + pytest.
Create repo structure:
- backend/
- db.py
- ingest.py
- pipeline.py
- models.py
- sql/
- app/
- app.py
- data/
- sample.csv
- tests/
Add:
1 ) data/sample.csv ( ~50 rows) with columns:
event_time, user_id, event_name, category, amount
2 ) DuckDB schema for raw_events
3 ) a command to ingest sample.csv and print row count
4 ) pyproject.toml for uv
5 ) README with exact local run steps
Stop after scaffolding. Commit.技术支持
脚手架任务将创建:
清晰的文件夹结构,包括后端逻辑、SQL 转换、UI、数据与测试
一个小型 sample.csv 数据集
DuckDB 的 raw_events 表模式
一个可运行的摄取命令,打印行数
可用的 pyproject.toml 与 README
粘贴提示后,将模型切换为 Agent(Full Access),并确认已选择 GPT-5.2 Codex(默认为此)。
任务完成后,您会看到所有文件夹和文件已自动创建。
为验证脚手架,请让 Codex 在本地执行安装与验证步骤。
您应能看到所有依赖成功安装,且快速验证脚本确认从示例数据集中摄取了 50 行。
此阶段示例数据刻意较小。后续步骤我们会替换为更大、更贴近真实的数据集。
最后,若您查看 https://chatgpt.com/codex/settings/usage,会发现大部分使用配额依然可用,这意味着您可以从容地继续构建和迭代本项目,必要时将其扩展为更接近生产的管道。
5. Implement Idempotent Data Ingestion
本步骤确保摄取过程具备幂等性,即可安全地重复运行而不会产生重复数据。这是数据工程中的基本要求,因为摄取作业常需要重试或重新执行。
TASK 2 ( IDEMPOTENT INGEST) :
Make CSV ingestion idempotent.
- Rerunning ingest must not duplicate rows
- Validate required columns
- Validate event_time parseable and amount numeric
Add pytest:
- ingest twice → row count unchanged
Update README verification section.
Commit.技术支持
本步骤达成的目标:
当同一 CSV 被多次摄取时,摄取逻辑将防止重复行产生
在摄取阶段实施基础数据校验
通过 pytest 测试两次摄取并检查行数不变,从而确认幂等性
任务完成后,您可以在 VSCode 中查看 Git 历史,看到 AI 代理在重要更新后自动提交变更,形成干净、可追溯的开发历史。
我们让 GPT-5.2 Codex 在本任务中运行测试套件。结果显示测试成功执行,所有检查均通过。
本步骤为管道加入转换层。转换使用 DuckDB SQL 实现,将原始摄取数据转换为干净、可用于分析的事实表。
TASK 3 ( TRANSFORM SQL) :
Create backend/sql/010_fct_events.sql:
- typed columns
- deterministic dedupe
Execute transform from backend/pipeline.py.
Add sanity checks to README:
- raw_events count
- fct_events count
Commit.技术支持
本步骤达成的目标:
基于 SQL 的转换,将 raw_events 转换为 fct_events
显式类型转换,确保模式一致
确定性的去重,防止分析记录重复
在 README 中记录清晰的验证步骤,对比原始与转换后的行数
7. Build the Metrics Layer with Pydantic
本步骤添加指标层,负责从转换后的数据中计算分析结果。指标通过 DuckDB SQL 生成,并以带类型的 Python 接口对外提供。
TASK 4 ( METRICS) :
Create backend/sql/020_metrics.sql.
Expose metrics via a Python function returning a Pydantic model.
Add pytest validating:
- keys exist
- types correct
Commit.技术支持
本步骤达成的目标:
一个专用 SQL 文件定义核心分析指标
一个 Python 函数,作为数据层与 UI 之间清晰的契约
使用 Pydantic 对指标输出进行强类型约束
自动化测试同时确认指标的结构与正确性
8. Visualize with a Streamlit Dashboard
本步骤使用 Streamlit 构建本地分析仪表盘。仪表盘仅负责可视化,不计算指标、不做数据转换。所有数值均来自上一步创建的指标层。
TASK 5 ( STREAMLIT UI) :
Build app/app.py:
- 3 KPI cards
- line chart for daily_count
- UI calls backend metrics function
Add a minimal smoke test.
Commit.技术支持
任务完成后,Codex 会提供重建 DuckDB 数据库并运行完整数据管道的指引。此步骤我们使用一个由更大数据集填充的新数据库。
python backend\ ingest.py --csv data\ sample.csv
python backend\ pipeline.py技术支持
运行摄取后,输出会确认加载到 DuckDB 的原始事件数量:
raw_events row count: 3738 技术支持
管道完成后,启动 Streamlit 应用:
streamlit run app\ app.py技术支持
在浏览器中打开 http://localhost:8501 即可访问仪表盘。
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://192.168.18.10:8501技术支持
若仪表盘首次加载时出现错误,这在早期迭代中是正常的。复制错误信息并提供给 GPT-5.2 Codex。
Codex 会定位问题并应用必要修复。修正后,应用可成功运行并显示:
事件总数
唯一用户数
交易总金额
展示多年每日事件计数的折线图
此时,端到端的 MVP 管道已构建完成且完全可用。
9. Testing and Confidence
最后一步专注于验证与可靠性。目标是提供一个能从摄取到指标与测试,全方位证明整个管道正确运行的单一命令。
TASK 6 ( VERIFY) :
Add a verify command that:
- rebuilds DB from scratch
- ingests sample.csv
- runs transforms
- runs pytest
Document as "Local Demo" and "Verify" in README.
Commit.技术支持
本步骤达成的目标:
一个验证端到端管道的单一命令
自动按正确顺序执行摄取、转换与测试
清晰文档,便于任何人本地复现结果
我们让 Codex 更新 README、提交所有变更,并推送到 GitHub 远程仓库。
最终得到的是一个完整、结构良好的 GitHub 仓库,包含所有脚本、测试、后端逻辑及清晰的运行与验证说明。
来源: kingabzpro/data-engineering-analytics-mvp
Final Thoughts
过去我偶尔会通过 CLI 和 VSCode 使用 Codex,但伴随 GPT-5.2 Codex 的近期更新,体验有了显著提升。该模型在构建完整系统、调试问题,以及与 MCP 和内部工具协作方面更胜一筹。它对既有代码库的理解也更强,使迭代开发高效许多。
从头到尾,完成这个 MVP 的脚手架、调试并端到端运行,我花了不到三十分钟。Codex 基本无需手动干预,就处理了仓库设置、依赖管理、数据摄取、SQL 转换、测试以及 Streamlit 仪表盘。开发闭环紧凑而可预期,正是快速构建时所需要的。
本项目刻意保持为 MVP。要达到生产级仍需进一步打磨。但其核心结构非常贴近真实数据工程系统的设计,是一个扎实的可扩展基础。
如果您希望将本项目延展为更面向生产的数据平台,以下组件是自然的后续方向,但为聚焦范围,本文有意未纳入:
工作流编排工具 ,如 Airflow 、Prefect 或 Dagster
云数据仓库 ,如 Snowflake 、BigQuery、Redshift 或 Databricks
dbt 作为独立的转换框架(本文直接在 DuckDB 中编写 SQL 模型)
流式与实时摄取平台 ,如 Kafka 、Pulsar、Kinesis 或 Flink
语义层与指标存储 ,如 Looker、Cube、Druid 或 Pinot
认证 、授权与多租户
云基础设施、CI/CD 管道与基础设施即代码 ,使用 Terraform 或 GitHub Actions
高级性能调优与大规模优化
数据治理与可观测性工具 ,包括血缘、目录与数据质量平台
这些工具在生产系统中很常见,但在此排除有助于保持项目简单、本地化、易于理解,同时仍能反映真实的数据工程模式。
在本教程中,我们将学习如何通过 VSCode 扩展使用 GPT-5.2 Codex 创建端到端的数据工程管道。我们不会一次性让模型构建所有内容,而是采用分层方式搭建 MVP,按部就班地引导代理完成设计、实现与测试。
这种方法契合 GPT-5.2 Codex 在实践中的最佳使用方式,也贴近真实世界的数据工程工作流。别忘了查阅我们关于模型新版本 GPT-5.3 Codex 和 OpenAI 全新思维模型 GPT-5.4 的指南。
如果您想进一步了解如何使用 OpenAI 生态,建议查看 Working with the OpenAI API 课程。
What is GPT-5.2 Codex?
GPT 5.2 Codex 是 OpenAI 最新一代的代理式编码模型,为真实的软件工程工作流而构建。它在长上下文理解、大型重构与迁移、稳定的工具调用,以及对 Windows 的原生支持等方面有显著提升。
这些改进让它在 VSCode 等 IDE 中进行长时间、端到端的开发时特别高效。过去几个月里,OpenAI Codex VSCode 扩展显著进步,现在已能与 Claude Code 在复杂、代理驱动的开发中直接竞争。
1. Create the GitHub Repository
首先,我们为数据工程 MVP 创建一个新的 GitHub 仓库。
创建完成后,复制仓库 URL。下一步我们将使用该 URL 在本地克隆项目。
2. Install and Configure GPT-5.2 Codex in VSCode
开始之前,请确保已安装 Visual Studio Code,并拥有有效的 ChatGPT Plus 账户。免费和 Go 套餐无法通过 VSCode 扩展访问 Codex 模型。
1. 使用之前复制的 URL 克隆仓库。
2. 进入仓库目录并启动 VSCode。
3. 打开扩展(Ctrl + Shift + X),搜索 OpenAI Codex 并安装。只需几秒钟。
4. 点击左侧面板的 OpenAI 图标以启动 Codex 扩展。系统会提示您使用 ChatGPT 账户或 API 账户登录。请选择 ChatGPT 账户,浏览器会打开以请求授权。授权后回到 VSCode,即可开始使用 Codex。
3. Build the Data Engineering Project
本项目的范围刻意限定为最小可行产品(MVP)。 目标不是打造生产级数据平台,而是构建一个完整的端到端数据工程切片,演示真实分析系统的结构。
在本 MVP 中,我们将构建一个简单但可信的分析管道,它可以:
raw_events)fct_events)完整流程如下:
4. Scaffold the Project with GPT-5.2 Codex
本步骤使用 GPT-5.2 Codex 生成项目的初始骨架。目标不是立刻实现功能,而是创建一个干净、可运行的基础,我们将按步骤逐步扩展。
为让 Codex 聚焦,我们使用一个名为Codex Harness 的小型控制块。将其粘贴在每个提示的顶部,以确保 Codex 遵循 MVP 范围、输出一致,并提交干净、可审阅的变更。
Codex Harness(粘贴到每个任务中):
在编写代码前,明确指示 Codex 使用网络搜索来验证所有依赖的最新版,并确保兼容 Python 3.11。这样可避免安装过时或不兼容的包。
脚手架任务将创建:
sample.csv数据集raw_events表模式pyproject.toml与 README粘贴提示后,将模型切换为 Agent(Full Access),并确认已选择 GPT-5.2 Codex(默认为此)。
任务完成后,您会看到所有文件夹和文件已自动创建。
为验证脚手架,请让 Codex 在本地执行安装与验证步骤。
您应能看到所有依赖成功安装,且快速验证脚本确认从示例数据集中摄取了 50 行。
此阶段示例数据刻意较小。后续步骤我们会替换为更大、更贴近真实的数据集。
最后,若您查看 https://chatgpt.com/codex/settings/usage,会发现大部分使用配额依然可用,这意味着您可以从容地继续构建和迭代本项目,必要时将其扩展为更接近生产的管道。
5. Implement Idempotent Data Ingestion
本步骤确保摄取过程具备幂等性,即可安全地重复运行而不会产生重复数据。这是数据工程中的基本要求,因为摄取作业常需要重试或重新执行。
本步骤达成的目标:
任务完成后,您可以在 VSCode 中查看 Git 历史,看到 AI 代理在重要更新后自动提交变更,形成干净、可追溯的开发历史。
我们让 GPT-5.2 Codex 在本任务中运行测试套件。结果显示测试成功执行,所有检查均通过。
6. Add the Transformation Layer (DuckDB SQL)
本步骤为管道加入转换层。转换使用 DuckDB SQL 实现,将原始摄取数据转换为干净、可用于分析的事实表。
本步骤达成的目标:
raw_events转换为fct_events7. Build the Metrics Layer with Pydantic
本步骤添加指标层,负责从转换后的数据中计算分析结果。指标通过 DuckDB SQL 生成,并以带类型的 Python 接口对外提供。
本步骤达成的目标:
8. Visualize with a Streamlit Dashboard
本步骤使用 Streamlit 构建本地分析仪表盘。仪表盘仅负责可视化,不计算指标、不做数据转换。所有数值均来自上一步创建的指标层。
任务完成后,Codex 会提供重建 DuckDB 数据库并运行完整数据管道的指引。此步骤我们使用一个由更大数据集填充的新数据库。
运行摄取后,输出会确认加载到 DuckDB 的原始事件数量:
管道完成后,启动 Streamlit 应用:
在浏览器中打开 http://localhost:8501 即可访问仪表盘。
若仪表盘首次加载时出现错误,这在早期迭代中是正常的。复制错误信息并提供给 GPT-5.2 Codex。
Codex 会定位问题并应用必要修复。修正后,应用可成功运行并显示:
此时,端到端的 MVP 管道已构建完成且完全可用。
9. Testing and Confidence
最后一步专注于验证与可靠性。目标是提供一个能从摄取到指标与测试,全方位证明整个管道正确运行的单一命令。
本步骤达成的目标:
我们让 Codex 更新 README、提交所有变更,并推送到 GitHub 远程仓库。
最终得到的是一个完整、结构良好的 GitHub 仓库,包含所有脚本、测试、后端逻辑及清晰的运行与验证说明。
来源: kingabzpro/data-engineering-analytics-mvp
Final Thoughts
过去我偶尔会通过 CLI 和 VSCode 使用 Codex,但伴随GPT-5.2 Codex 的近期更新,体验有了显著提升。该模型在构建完整系统、调试问题,以及与 MCP 和内部工具协作方面更胜一筹。它对既有代码库的理解也更强,使迭代开发高效许多。
从头到尾,完成这个 MVP 的脚手架、调试并端到端运行,我花了不到三十分钟。Codex 基本无需手动干预,就处理了仓库设置、依赖管理、数据摄取、SQL 转换、测试以及 Streamlit 仪表盘。开发闭环紧凑而可预期,正是快速构建时所需要的。
本项目刻意保持为 MVP。要达到生产级仍需进一步打磨。但其核心结构非常贴近真实数据工程系统的设计,是一个扎实的可扩展基础。
如果您希望将本项目延展为更面向生产的数据平台,以下组件是自然的后续方向,但为聚焦范围,本文有意未纳入:
这些工具在生产系统中很常见,但在此排除有助于保持项目简单、本地化、易于理解,同时仍能反映真实的数据工程模式。