非科班大二做的电商数仓数据模拟平台(支持Docker一键运行)的经历

我做了一个开源的电商数据模拟平台(非科班转数据工程)

最近把自己做了几个月的项目整理开源了,想记录一下整个过程。

我是广告学背景,大二开始转向数据工程方向。

一开始学习数仓、Hive、SQL 时,很快遇到一个特别现实的问题:

没有数据。

很多教程默认数据已经存在,但真正自己练习时发现:

- 培训班给的数据太简单
- 没有真实业务流程
- 很难做数仓分层练习
- ETL、建模基本练不起来

当时的感受就是:

学的东西很多,但没有可以真正动手的数据。
---

第一阶段:用 MySQL 硬模拟数据(踩坑阶段)

最开始我直接用 MySQL 写 SQL 生成数据。

大概折腾了一个多月:

- 用笛卡尔积拼用户、订单数据
- 一批一批 insert
- 不断调 SQL

结果非常痛苦:

- SQL 极其复杂
- 数据关系难维护
- 插入 10 万订单还能忍
- 想生成 100 万订单时数据库经常直接卡死或超时

那时候我第一次意识到:

数据库适合查询数据,但不适合生成复杂业务数据。

---

第二阶段:改用 Python 重写模拟器

后来我把整个逻辑改成 Python。

体验直接发生变化:

- 数据规模可以自由控制
- 业务逻辑可以写成代码
- 订单生命周期可以真实模拟
- 生成速度比 SQL 快很多

当时甚至有点无语:

早知道就不该用 SQL 硬写一个月 😂

写完后我已经能随便生成数据做数仓练习了。

但新的问题出现了:

每次都要改参数、跑脚本。

于是我开始想:

能不能把它做成一个网站?

---

第三阶段:把模拟器做成 Web 平台

后来开始学习 FastAPI,把模拟器做成 Web 控制台。

目标很简单:

- 不写代码也能生成数据
- 点一下按钮就能出数据
- 参数可配置
- 可以重复实验

于是就有了现在的 Web UI。

---

第四阶段:从个人工具到开源项目

在自学过程中我越来越确定一件事:

很多数据工程初学者真正缺的不是教程,而是:

可用的数据。

所以我决定把这个项目开源。

它从:

个人学习脚本
→ 数据模拟工具
→ 可公开使用的平台

慢慢演化出来。

---

第五阶段:加入 Docker 一键运行

后来又发现一个问题:

很多人环境装不起来。

于是又加了 Docker。

现在基本可以做到:

docker run data-sim

直接启动。

---

为什么做这个项目

因为我自己经历过:

学数仓的时候,没有数据真的很难受。

如果这个项目能帮到后来的人,那它就有意义了。

GitHub(欢迎交流):
https://github.com/learner2638/ecommerce-data-simulator#牛客AI配图神器#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务