数据库结构 - 训练任务流与分布式训练

查任务流编排(pipeline/task/run)、argo workflow、nni 超参搜索及 tfjob/pytorchjob/xgbjob 等训练 CRD 表字段时

06-二次开发 / 数据库结构
任务流pipelinetaskrunworkflowargonni超参搜索分布式训练tfjobpytorchjobxgbjobCRDdag_jsonschedule_typecrontab

数据库结构 - 训练任务流与分布式训练

任务流编排域:pipeline 任务流(带 dag_json 上下游、调度配置、argo 关联)、task 任务节点、run 定时运行记录、workflow argo workflow 记录、nni 超参搜索,以及 tfjob / pytorchjob / xgbjob 等分布式训练 CRD 实例记录。对应 myapp/models/model_job.py(repository/images/job_template/pipeline/task/run/workflow)、model_nni.py(nni)。

CRD 记录表均复用 model_job.py 中的 Crd 基类(model_job.py:902),结构高度一致,为 k8s 自定义资源的本地快照(name/cluster/namespace/status/spec/labels/annotations/info_json/foreign_key 等)。当前代码中以该基类实际定义的只有 Workflowmodel_job.py:967__tablename__='workflow')。

说明:快照中的 tfjob / pytorchjob / xgbjob 三张表在当前 myapp/models/已无对应 ORM 模型(仅 workflow 留存,见 model_job.py:967),且已由迁移 ff850cfc62f3upgrade() 显式 drop_table(仅其 downgrade() 中重建),属历史遗留表。以下快照为这三张表的历史结构留存。

pipeline任务流表: pipeline

列名 类型 是否为空 默认值 描述 是否唯一 外键
created_on datetime YES None No No
changed_on datetime YES None No No
id int NO None id主键 Yes No
name varchar(100) NO None 英文名 No No
describe varchar(200) NO None 描述 No No
project_id int NO None 项目组id No project(id)
dag_json text NO None 上下游关系 No No
namespace varchar(100) YES None 命名空间 No No
global_env varchar(500) YES None 全局环境变量 No No
schedule_type enum('once','crontab') NO once 调度类型 No No
cron_time varchar(100) YES None 调度周期 No No
cronjob_start_time varchar(300) YES None 定时调度补录起点 No No
pipeline_file mediumtext YES None workflow yaml文件 No No
pipeline_argo_id varchar(100) YES None argo workflow id No No
version_id varchar(100) YES None workflow version id No No
run_id varchar(100) YES None workflow run id No No
node_selector varchar(100) YES None 机器选择器 No No
image_pull_policy enum('Always','IfNotPresent') NO None 镜像拉取策略 No No
parallelism int NO 1 同一个pipeline,最大并行的task数目 No No
alert_status varchar(100) YES None 哪些状态会报警Pending,Running,Succeeded,Failed,Unknown,Waiting,Terminated No No
alert_user varchar(300) YES None 报警接收人 No No
expand mediumtext YES None 扩展参数 No No
depends_on_past tinyint(1) YES None 是否依赖过往实例 No No
max_active_runs int NO 3 最大同时运行的pipeline实例 No No
expired_limit int NO 0 过期保留个数,此数值有效时,会优先使用,覆盖max_active_runs的功能 No No
parameter mediumtext YES None 前端保留参数,用于记录编排样式 No No
created_by_fk int YES None No ab_user(id)
changed_by_fk int YES None No ab_user(id)
priority varchar(100) YES None 优先级 No No

已按代码补全默认值:schedule_type 默认 onceparallelism 默认 1max_active_runs 默认 3expired_limit 默认 0(快照中均记为 None),见 myapp/models/model_job.py:378,387,393,394

pipeline任务表: task

列名 类型 是否为空 默认值 描述 是否唯一 外键
created_on datetime YES None No No
changed_on datetime YES None No No
id int NO None id主键 Yes No
name varchar(100) NO None 英文名 No No
label varchar(100) NO None 中文名 No No
job_template_id int YES None 任务模板id No job_template(id)
pipeline_id int YES None 任务流id No pipeline(id)
working_dir varchar(1000) YES None 启动目录 No No
command varchar(1000) YES None 启动命令 No No
overwrite_entrypoint tinyint(1) YES None 是否覆盖模板中的入口点 No No
args text YES None 任务启动参数 No No
volume_mount varchar(2000) YES None 挂载 No No
node_selector varchar(100) YES None 机器选择器 No No
resource_memory varchar(100) YES None 申请内存 No No
resource_cpu varchar(100) YES None 申请cpu No No
resource_gpu varchar(100) YES None 申请gpu No No
resource_rdma varchar(100) YES None rdma的资源数量 No No
timeout int NO None 超时 No No
retry int NO None 重试次数 No No
outputs text YES None task的输出,会将输出复制到minio上 No No
monitoring text YES None 该任务的监控信息 No No
expand mediumtext YES None 扩展参数 No No
skip tinyint(1) YES None 是否跳过 No No
created_by_fk int YES None No ab_user(id)
changed_by_fk int YES None No ab_user(id)

定时运行记录表: run

列名 类型 是否为空 默认值 描述 是否唯一 外键
id int NO None id主键 Yes No
pipeline_id int YES None 任务流id No pipeline(id)
pipeline_file mediumtext YES None workflow yaml No No
pipeline_argo_id varchar(100) YES None 任务流 argo id No No
version_id varchar(100) YES None 上传的版本号 No No
experiment_id varchar(100) YES None 实验id No No
run_id varchar(100) YES None run id No No
message text YES None 消息 No No
created_on datetime NO None 创建时间 No No
execution_date varchar(200) NO None 执行时间 No No
status varchar(100) YES None 状态 No No

nni超参搜索表: nni

列名 类型 是否为空 默认值 描述 是否唯一 外键
created_on datetime YES None No No
changed_on datetime YES None No No
id int NO None id主键 Yes No
job_type enum('Job') YES None 任务类型 No No
project_id int NO None 项目组id No project(id)
name varchar(200) NO None 英文名 No No
namespace varchar(200) YES None 命名空间 No No
describe text YES None 描述 No No
parallel_trial_count int YES None 最大并行数 No No
max_exec_duration int YES None 最大执行时长 No No
max_trial_count int YES None 最大搜索次数 No No
max_failed_trial_count int YES None 最大失败次数 No No
objective_type enum('maximize','minimize') NO None 搜索目标类型 No No
objective_goal float NO None 搜索目标值 No No
objective_metric_name varchar(200) NO None 目标度量名称 No No
objective_additional_metric_names varchar(200) YES None 附加目标度量名 No No
algorithm_name varchar(200) NO None 算法名 No No
algorithm_setting text YES None 算法配置 No No
parameters text YES None 搜索超参的配置 No No
job_json text YES None 根据不同算法和参数写入的task模板 No No
trial_spec text YES None 根据不同算法和参数写入的task模板 No No
job_worker_image varchar(200) YES None 执行镜像 No No
job_worker_command varchar(200) YES None 执行命令 No No
working_dir varchar(200) YES None 启动目录 No No
volume_mount varchar(2000) YES None 挂载 No No
node_selector varchar(100) YES None 机器选择器 No No
image_pull_policy enum('Always','IfNotPresent') NO None 镜像拉取策略 No No
resource_memory varchar(100) YES None 申请内存 No No
resource_cpu varchar(100) YES None 申请cpu No No
resource_gpu varchar(100) YES None 申请gpu No No
experiment text YES None 构建出来的实验体 No No
alert_status varchar(100) YES None 哪些状态会报警Pending,Running,Succeeded,Failed,Unknown,Waiting,Terminated No No
created_by_fk int YES None No ab_user(id)
changed_by_fk int YES None No ab_user(id)
parallel_trial_type varchar(100) YES None 并行方式 No No

workflow表: workflow

argo workflow 在本地的快照记录(任务流运行实例)。

列名 类型 是否为空 默认值 描述 是否唯一 外键
id int NO None id主键 Yes No
name varchar(100) YES None 英文名 No No
cluster varchar(100) YES None k8s集群 No No
namespace varchar(100) YES None 命名空间 No No
create_time varchar(100) YES None 创建时间 No No
change_time varchar(100) YES None 修改时间 No No
status varchar(100) YES None 状态 No No
annotations text YES None 注释 No No
labels text YES None 标签 No No
spec mediumtext YES None 配置详情 No No
status_more text YES None 状态 No No
username varchar(100) YES None 用户名 No No
info_json text YES None 通知记录 No No
add_row_time datetime YES None 记录时间 No No
foreign_key varchar(100) YES None 外键 No No

tfjob表: tfjob

TensorFlow 分布式训练 CRD 的本地快照记录。字段与 workflow 表一致(id / name / cluster / namespace / create_time / change_time / status / annotations / labels / spec / status_more / username / info_json / add_row_time / foreign_key)。

pytorchjob表: pytorchjob

PyTorch 分布式训练 CRD 的本地快照记录。字段与 workflow 表一致。

xgbjob表: xgbjob

XGBoost 分布式训练 CRD 的本地快照记录。字段与 workflow 表一致。

最后更新 2026-06-30完整文档以官方仓库为准:GitHub Wiki