全局中后台

tanjingyu ae5808257e style 4 weeks ago
app ae5808257e style 4 weeks ago
tests f0669247a0 first commit 4 weeks ago
.env.example f0669247a0 first commit 4 weeks ago
.gitignore f0669247a0 first commit 4 weeks ago
README.md f0669247a0 first commit 4 weeks ago
requirements.txt f0669247a0 first commit 4 weeks ago
轻量级数据中台 (Data-Hub) 实现方案设计文档.md f0669247a0 first commit 4 weeks ago

README.md

DataNexus - 轻量级数据中台

基于 Git Webhook 的自动化数据归集系统,实现代码仓库产出数据的自动提取、版本化存储和统一管理。

功能特性

  • 自动归集 - Git Push 触发自动数据采集,无需手动操作
  • 版本化存储 - 每次 Commit 独立存储,支持历史回溯
  • 增量更新 - 基于 Git SHA 智能去重,只存储变化的文件
  • 多 Stage 支持 - 单仓库可配置多个数据环节(选题、清洗、分析等)
  • REST API - 提供项目、版本、文件的查询和下载接口

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 配置环境变量

编辑 .env 文件:

# 数据库
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=data_nexus

# Gogs
GOGS_URL=https://your-gogs-server.com
GOGS_TOKEN=your_access_token
GOGS_SECRET=optional_webhook_secret

# 存储
STORAGE_ROOT=./storage

3. 启动服务

uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload

4. 配置 Webhook

在 Gogs 仓库设置中添加 Webhook:

  • URL: http://your-server:8000/webhook
  • Content Type: application/json

5. 添加 manifest.yaml

在仓库根目录创建 manifest.yaml

project_name: "my_project"

stages:
  - name: "data_collection"
    outputs:
      - path: "./results/"
        pattern: "*.csv"
      - path: "./report.pdf"

API 接口

接口 方法 说明
/webhook POST 接收 Gogs Webhook
/projects GET 列出所有项目
/projects/{id}/versions GET 列出项目版本
/versions/{id}/files GET 获取版本文件树
/files/{id}/content GET 下载文件内容

文档

详细设计请参阅 实现方案设计文档