飞球 ETL GUI 管理系统
一个基于 PySide6 的图形化 ETL 管理工具。
功能特性
- 任务配置: 选择和配置 ETL 任务,支持参数设置和 CLI 命令预览
- 任务管理: 任务队列管理、执行历史记录、自动执行
- 环境配置: 图形化编辑
.env配置文件 - 数据库查看: 浏览表结构、执行 SQL 查询
- ETL 状态: 实时查看 ODS/DWD 数据状态和执行记录
- 日志查看: 实时日志输出、过滤、导出
快速开始
1. 安装依赖
cd etl_billiards
pip install -r requirements.txt
2. 运行 GUI
方法一:使用启动脚本
# Windows 命令行
run_gui.bat
# 或 PowerShell
.\run_gui.ps1
方法二:直接运行 Python
cd etl_billiards
python -m gui.main
打包为 EXE
安装打包工具
pip install pyinstaller
执行打包
# 目录模式(推荐,启动更快)
python build_exe.py
# 单文件模式
python build_exe.py --onefile
# 显示控制台(调试用)
python build_exe.py --console
# 清理并重新打包
python build_exe.py --clean
打包完成后,EXE 文件位于 dist/ETL管理系统/ 目录。
目录结构
gui/
├── main.py # 应用入口
├── main_window.py # 主窗口
├── widgets/ # UI 组件
│ ├── task_panel.py # 任务配置面板
│ ├── task_manager.py # 任务管理器
│ ├── env_editor.py # 环境变量编辑器
│ ├── log_viewer.py # 日志查看器
│ ├── db_viewer.py # 数据库查看器
│ └── status_panel.py # ETL 状态面板
├── workers/ # 后台工作线程
│ ├── task_worker.py # 任务执行线程
│ └── db_worker.py # 数据库查询线程
├── models/ # 数据模型
│ └── task_model.py # 任务数据模型
├── utils/ # 工具模块
│ ├── cli_builder.py # CLI 命令构建器
│ └── config_helper.py # 配置辅助
└── resources/ # 资源文件
└── styles.qss # 样式表
使用说明
任务配置
- 在左侧选择任务分类
- 勾选要执行的任务
- 配置运行参数(Pipeline 模式、时间窗口等)
- 查看底部的 CLI 命令预览
- 点击「立即执行」或「添加到队列」
环境配置
- 打开「环境配置」面板
- 编辑各项配置(数据库、API、路径等)
- 点击「保存」
数据库查看
- 打开「数据库」面板
- 输入或使用 .env 中的 DSN
- 点击「连接」
- 浏览表结构或执行 SQL 查询
常见问题
Q: 启动时提示缺少 PySide6
pip install PySide6
Q: 连接数据库失败
检查 .env 中的 PG_DSN 配置是否正确。
Q: 打包后运行闪退
使用 --console 参数重新打包,查看错误信息:
python build_exe.py --console
技术栈
- Python 3.10+
- PySide6 (Qt for Python)
- psycopg2 (PostgreSQL)
- PyInstaller (打包)