数据处理核心库,提供数据库连接和Ibis数据处理能力
Project description
Warehouse Core 项目指南
📦 项目简介
基于 Ibis 的数据处理核心库,提供统一的数据库连接与数据处理能力。支持 SQLite、MySQL、Spark 等多种数据后端。
🚀 快速开始
环境要求
- Python 3.11+
一键设置
# 克隆项目后进入目录
cd data-business-warehouse
# 完整项目设置(检查环境+安装依赖+验证)
make setup
📚 项目结构
warehouse-core/
├── Makefile # 项目管理命令
├── pyproject.toml # Poetry 配置
├── warehouse_core/ # 核心库代码
│ ├── db/ # 数据库连接与管理
│ ├── engine/ # 作业基类与调度器
│ └── utils/ # 日志等工具
├── examples/ # 示例代码
├── test/ # 测试验证代码
├── config/ # 配置文件
└── data/ # 数据文件
💻 使用示例
1. 数据库连接管理
from warehouse_core.db import DatabaseManager
manager = DatabaseManager()
connection = manager.get_sqlalchemy_connection("sqlite_default")
rows = connection.execute_query("SELECT 1")
2. 数据处理作业
from warehouse_core.engine import JobBase
class ExampleJob(JobBase):
def process(self) -> None:
dataframe = self.query_to_dataframe("SELECT * FROM source_table")
self.insert("target_table", dataframe)
🔧 项目管理
Makefile 命令(推荐)
# 完整项目设置
make setup
# 安装依赖
make install
# 验证项目功能
make verify
# 运行示例作业
make test
# 初始化数据库
make init
# 清理临时文件
make clean
# 激活虚拟环境
make shell
# 查看所有命令
make help
Poetry 命令
# 添加依赖
poetry add package-name
# 更新依赖
poetry update
# 查看依赖树
poetry show --tree
🌐 镜像源配置
项目已配置阿里云镜像源以加速下载:
https://mirrors.aliyun.com/pypi/simple/
验证配置
poetry source show
poetry config --list
恢复官方源
poetry config repositories.main https://pypi.org/simple/
🐳 Docker 部署
Dockerfile 示例
FROM python:3.11-slim
# 安装 Poetry
RUN pip install poetry
WORKDIR /app
# 复制依赖文件
COPY pyproject.toml poetry.lock ./
# 安装依赖
RUN poetry config virtualenvs.create false \
&& poetry install --no-interaction --no-ansi
# 复制项目文件
COPY . .
CMD ["poetry", "run", "python", "your_main.py"]
📦 依赖配置
核心依赖
- pandas - 数据处理
- sqlalchemy - 数据库抽象层
- pyyaml - YAML 配置解析
- ibis-framework - 数据分析框架(支持 sqlite、mysql、pyspark)
数据库支持
- SQLite - 默认支持,轻量级本地数据库
- MySQL - 通过 ibis-framework[mysql] 支持
- Spark - 通过 ibis-framework[pyspark] 支持
📄 打包发布
# 构建包
poetry build
# 发布到 PyPI
poetry publish --username __token__ --password <pypi-token>
⚠️ 注意事项
- 虚拟环境位置:默认在
~/.cache/pypoetry/virtualenvs/ - 自定义位置:
poetry config virtualenvs.in-project true(创建 .venv) - 首次安装:需要 2-5 分钟解析依赖
- 版本控制:建议提交
poetry.lock文件
🤝 开发工作流
VS Code 开发环境
项目已配置完整的 VS Code 开发环境:
调试配置(.vscode/launch.json):
- 调试项目验证
- 调试简单作业示例
- 调试数据库初始化
- 调试当前文件
任务配置(.vscode/tasks.json):
- 项目设置(Ctrl+Shift+P → Tasks: Run Task)
- 安装依赖、验证项目、运行示例等
推荐扩展:
- Python、Black、isort、YAML、Makefile Tools
示例配置
库中 examples/ 目录提供:
- SQLite 初始化脚本
- 示例
db_config.yaml - 可作为业务工程的参考模板
验证测试
# 运行完整验证
make verify
# 运行示例测试
make test
Git 提交建议
git add poetry.lock pyproject.toml
git commit -m "chore: 更新依赖版本"
License: MIT
Python 版本: ^3.11
主要依赖: pandas, sqlalchemy, pyyaml, ibis-framework
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yyxxdata_warehouse_core-0.1.2.tar.gz.
File metadata
- Download URL: yyxxdata_warehouse_core-0.1.2.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.14.0 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26891bc2bc078ca65c885fec17e5ab1459af2cef72abaf93832bc48b985a0404
|
|
| MD5 |
6b504aaa7800b09874f6de9f0be7fa3c
|
|
| BLAKE2b-256 |
6293392d7adbc4749a54eeb6dd76f0e0b43765f6fd99925c0bbfe94cb1809df2
|
File details
Details for the file yyxxdata_warehouse_core-0.1.2-py3-none-any.whl.
File metadata
- Download URL: yyxxdata_warehouse_core-0.1.2-py3-none-any.whl
- Upload date:
- Size: 17.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.14.0 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a28c3c971250f6e5632bf569d6f26ed04e36ab91d9f9cc897585d97364fde90
|
|
| MD5 |
e247cf1b9ae28270d2ffadd78fa5522d
|
|
| BLAKE2b-256 |
becb390c5d5e096d9dcd5cbb1b787f0d52c4df9b4afeba502f2d75184b096c3d
|