news 2026/9/13 2:21:37

如何用 mlflow migrate-filestore 把 MLflow 文件存储(mlruns)迁移到 SQLite 数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 mlflow migrate-filestore 把 MLflow 文件存储(mlruns)迁移到 SQLite 数据库

如何用 mlflow migrate-filestore 把 MLflow 文件存储(mlruns)迁移到 SQLite 数据库

【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow

如果你的 MLflow 元数据一直存放在文件后端(./mlruns目录),现在想把它们迁移到数据库后端,MLflow 内置了mlflow migrate-filestore迁移命令来完成这件事。文件存储后端目前处于维护模式、不再获得功能更新,MLflow 建议通过这条迁移路径把已有数据无损地转入数据库。这篇文章给出从执行迁移、启动服务到验证结果的完整操作路径。

前提条件

需要安装 MLflow 3.10 或更高版本。用以下命令升级:

pip install 'mlflow>=3.10'

如果正在运行 MLflow tracking server,迁移前必须先停掉它。

执行迁移命令

mlflow migrate-filestore --source /path/to/mlruns --target sqlite:///path/to/mlflow.db

两个参数都需要替换为你自己的值:

  • --source:包含mlruns/FileStore 数据的根目录。/path/to/mlruns替换为你的mlruns目录实际路径,例如fs2db/README.md中给出的./mlruns
  • --target:目标 SQLite URI,必须以sqlite:///开头,例如sqlite:///mlflow.db。URI 中数据库文件的父目录必须已经存在,否则命令会直接报Parent directory does not exist错误。

此外还有一个可选参数--progress/--no-progress,默认开启,迁移过程中按实验输出进度信息。

命令会读取指定目录中的全部数据并写入指定的 SQLite 数据库。迁移对已迁移的数据是原子的:如果过程中出现任何错误,所有已插入的行都会回滚、不提交任何迁移数据,因此你可以在修复问题后安全地重新执行该命令。

需要注意两点限制(见 migrate-from-file-store.mdx):

  • 目标数据库必须为空。工具拒绝写入已包含数据的数据库以防冲突。如果目标文件已经存在,会提示是否覆盖(见 CLI 实现)。
  • 只支持 SQLite 作为目标。原因是 FileStore 会生成超出 PostgreSQL 和 MySQL 32 位整数上限的大型实验 ID,而 SQLite 可以原生处理这些 ID。

迁移了哪些数据

工具会迁移文件后端中的全部元数据

类别实体
Experiments实验、实验 tags
Runsrun、params、metrics、latest metrics、tags
Datasets数据集、inputs、input tags
Run I/O模型输入(run → model)、模型输出(run → model)
Tracestrace 信息、trace tags、trace 请求元数据
Assessments评估(feedback、expectations)
Logged Models日志模型及其 tags
Model Registry注册模型、模型版本、tags、别名
Prompts提示词(以注册模型和模型版本形式存储)

迁移是无损的:实验、run、trace、model 等所有 ID 原样保留,creation_timestart_timeend_timelast_update_time等时间戳保留原有的毫秒精度,.trash目录中已删除的实验和 run 也会带着deleted生命周期阶段一并迁移,artifact URI 保持不变。

不会迁移的内容:

  • Artifacts(模型文件、图片等)留在原位置不动,数据库里存储的 artifact URI 仍指向原有文件。
  • Trace spans以 artifact 文件形式存储,不进入数据库。

用新数据库启动服务并验证

迁移完成后,显式指定新数据库启动 tracking server:

mlflow server --backend-store-uri sqlite:///path/to/mlflow.db

这里要显式指定--backend-store-uri是有原因的:如果没有显式设置,tracking server 在./mlruns中检测到已有文件后端实验数据时会优先使用./mlruns,否则回退到sqlite:///mlflow.db。依赖这种默认行为容易让服务继续读旧的文件存储,因此迁移后应始终显式指向新数据库。

启动后打开 MLflow UI,确认你的实验、runs 和模型都在,即表示迁移成功。

边界说明与相关路径

  • mlflow-export-import的区别:后者是另一个独立工具,用于在两个运行中的 MLflow server 之间复制对象(runs、实验、注册模型等)。它不保留原始 ID 和时间戳,且要求源和目标 server 都在运行。如果你要保留 ID 和时间戳、从文件存储迁到数据库,用migrate-filestore,而不是mlflow-export-import

  • 确有必要继续用文件系统后端时的逃生口:在极少数无法迁移的场景(例如浏览从无法运行数据库的 HPC 集群同步过来的只读mlruns数据,或用rsync在机器间共享目录快照),可以在启动 server 或运行客户端代码之前设置环境变量来关闭该异常:

    export MLFLOW_ALLOW_FILE_STORE=true mlflow server --backend-store-uri ./mlruns

    这个选项仅用于确实受约束的工作流,正常情况下仍应使用上面的迁移工具。

  • 源码入口可参考 迁移命令 CLI 定义 与 fs2db/README.md。

  • 如果遇到 PostgreSQL/MySQL 支持相关的问题或想反馈,文档指引到 MLflow 的 GitHub issue #18534(详见 migrate-from-file-store.mdx 的 Feedback 一节)。

【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 2:14:39

AI模型部署四大方式实战指南:本地/服务器/无服务器/混合部署

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 2:13:18

Java实现12306转移仓库:表结构设计与并发一致性实践

简介:基于Java的12306转移仓库设计与源码实现方案,面向需要了解铁路售票系统后端架构及多语言协同开发的Java开发者与架构师。方案以Java为主,结合Python与Shell脚本,覆盖数据处理、自动化任务与系统部署等环节,旨在优…

作者头像 李华
网站建设 2026/9/13 2:12:44

零刻小主机+fnOS打造家庭NAS:从安装到启动引导全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 2:11:27

旅游景点评论情感分析系统构建:从爬虫到前后端分离

简介:基于Python的旅游景点评论情感分析系统,属于毕业设计级项目,集成了携程与马蜂窝评论爬虫,并采用前后端分离架构。面向计算机、通信、人工智能、自动化等专业的学生、老师或从业者,适合用于课程设计、大作业、毕业…

作者头像 李华
网站建设 2026/9/13 2:08:41

基于Hadoop MapReduce的好友推荐系统设计与实现

简介:基于Hadoop实现的好友推荐系统毕业设计项目,包含Java源码与文档说明,适合计算机、人工智能等专业学生用于课程设计、期末大作业或毕设参考,也适合大数据离线计算初学者。压缩包共2000个文件、约79.46MB,含1260个P…

作者头像 李华