Skip to main content

数据处理核心库,提供数据库连接和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>

⚠️ 注意事项

  1. 虚拟环境位置:默认在 ~/.cache/pypoetry/virtualenvs/
  2. 自定义位置poetry config virtualenvs.in-project true(创建 .venv)
  3. 首次安装:需要 2-5 分钟解析依赖
  4. 版本控制:建议提交 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yyxxdata_warehouse_core-0.1.2.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yyxxdata_warehouse_core-0.1.2-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

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

Hashes for yyxxdata_warehouse_core-0.1.2.tar.gz
Algorithm Hash digest
SHA256 26891bc2bc078ca65c885fec17e5ab1459af2cef72abaf93832bc48b985a0404
MD5 6b504aaa7800b09874f6de9f0be7fa3c
BLAKE2b-256 6293392d7adbc4749a54eeb6dd76f0e0b43765f6fd99925c0bbfe94cb1809df2

See more details on using hashes here.

File details

Details for the file yyxxdata_warehouse_core-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for yyxxdata_warehouse_core-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4a28c3c971250f6e5632bf569d6f26ed04e36ab91d9f9cc897585d97364fde90
MD5 e247cf1b9ae28270d2ffadd78fa5522d
BLAKE2b-256 becb390c5d5e096d9dcd5cbb1b787f0d52c4df9b4afeba502f2d75184b096c3d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page