You've already forked DataMate
* refactor: remove db table management from LS adapter (mv to scripts later); change adapter to use the same MySQL DB as other modules. * refactor: Rename LS Adapter module to datamate-python
DataMate 数据模型结构
本文档列出了根据 scripts/db 中的 SQL 文件创建的所有 Python 数据模型。
模型组织结构
app/models/
├── __init__.py # 主模块导出文件
├── dm/ # 数据管理 (Data Management) 模块
│ ├── __init__.py
│ ├── annotation_template.py # 标注模板
│ ├── labeling_project.py # 标注项目
│ ├── dataset.py # 数据集
│ ├── dataset_files.py # 数据集文件
│ ├── dataset_statistics.py # 数据集统计
│ ├── dataset_tag.py # 数据集标签关联
│ ├── tag.py # 标签
│ └── user.py # 用户
├── cleaning/ # 数据清洗 (Data Cleaning) 模块
│ ├── __init__.py
│ ├── clean_template.py # 清洗模板
│ ├── clean_task.py # 清洗任务
│ ├── operator_instance.py # 算子实例
│ └── clean_result.py # 清洗结果
├── collection/ # 数据归集 (Data Collection) 模块
│ ├── __init__.py
│ ├── task_execution.py # 任务执行明细
│ ├── collection_task.py # 数据归集任务
│ ├── task_log.py # 任务执行记录
│ └── datax_template.py # DataX模板配置
├── common/ # 通用 (Common) 模块
│ ├── __init__.py
│ └── chunk_upload_request.py # 文件切片上传请求
└── operator/ # 算子 (Operator) 模块
├── __init__.py
├── operator.py # 算子
├── operator_category.py # 算子分类
└── operator_category_relation.py # 算子分类关联
模块详情
1. Data Management (DM) 模块
对应 SQL: data-management-init.sql 和 data-annotation-init.sql
模型列表:
- AnnotationTemplate (
t_dm_annotation_templates) - 标注模板 - LabelingProject (
t_dm_labeling_projects) - 标注项目 - Dataset (
t_dm_datasets) - 数据集(支持医学影像、文本、问答等多种类型) - DatasetFiles (
t_dm_dataset_files) - 数据集文件 - DatasetStatistics (
t_dm_dataset_statistics) - 数据集统计信息 - Tag (
t_dm_tags) - 标签 - DatasetTag (
t_dm_dataset_tags) - 数据集标签关联 - User (
users) - 用户
2. Data Cleaning 模块
对应 SQL: data-cleaning-init.sql
模型列表:
- CleanTemplate (
t_clean_template) - 清洗模板 - CleanTask (
t_clean_task) - 清洗任务 - OperatorInstance (
t_operator_instance) - 算子实例 - CleanResult (
t_clean_result) - 清洗结果
3. Data Collection (DC) 模块
对应 SQL: data-collection-init.sql
模型列表:
- TaskExecution (
t_dc_task_executions) - 任务执行明细 - CollectionTask (
t_dc_collection_tasks) - 数据归集任务 - TaskLog (
t_dc_task_log) - 任务执行记录 - DataxTemplate (
t_dc_datax_templates) - DataX模板配置
4. Common 模块
对应 SQL: data-common-init.sql
模型列表:
- ChunkUploadRequest (
t_chunk_upload_request) - 文件切片上传请求
5. Operator 模块
对应 SQL: data-operator-init.sql
模型列表:
- Operator (
t_operator) - 算子 - OperatorCategory (
t_operator_category) - 算子分类 - OperatorCategoryRelation (
t_operator_category_relation) - 算子分类关联
使用方式
# 导入所有模型
from app.models import (
# DM 模块
AnnotationTemplate,
LabelingProject,
Dataset,
DatasetFiles,
DatasetStatistics,
DatasetTag,
Tag,
User,
# Cleaning 模块
CleanTemplate,
CleanTask,
OperatorInstance,
CleanResult,
# Collection 模块
TaskExecution,
CollectionTask,
TaskLog,
DataxTemplate,
# Common 模块
ChunkUploadRequest,
# Operator 模块
Operator,
OperatorCategory,
OperatorCategoryRelation
)
# 或者按模块导入
from app.models.dm import Dataset, DatasetFiles
from app.models.collection import CollectionTask
from app.models.operator import Operator
注意事项
- UUID 主键: 大部分表使用 UUID (String(36)) 作为主键
- 时间戳: 使用
TIMESTAMP类型,并配置自动更新 - 软删除: 部分模型(如 AnnotationTemplate, LabelingProject)支持软删除,包含
deleted_at字段和is_deleted属性 - JSON 字段: 配置信息、元数据等使用 JSON 类型存储
- 字段一致性: 所有模型字段都严格按照 SQL 定义创建,确保与数据库表结构完全一致
更新记录
- 2025-10-25: 根据
scripts/db中的 SQL 文件创建所有数据模型 - 已更新现有的
annotation_template.py、labeling_project.py、dataset_files.py以匹配 SQL 定义