You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Azure存储与SQL Server迁移Mlflow实验后,UI无数据求助

Mlflow迁移后UI无数据的排查与解决步骤

1. 验证元数据导入的完整性与Schema兼容性

  • 先确认新旧Mlflow版本一致:如果旧实例和新实例的Mlflow版本不同,直接导入SQL Server的数据会因为Schema差异导致无法识别。执行mlflow --version对比两边版本,若不一致,先把新实例升级/降级到对应版本,再执行mlflow db upgrade <postgresql_uri>确保PostgreSQL的Schema和旧版本匹配。
  • 核对核心表数据:检查PostgreSQL中的experiments、runs、metrics、params、tags表是否都有数据,且数据量和旧SQL Server一致。比如用SELECT COUNT(*) FROM experiments;对比两边的实验数量。
  • 检查数据类型兼容性:SQL Server的datetime要转换为PostgreSQL的timestamp,nvarchar(max)对应text或varchar,避免数据截断或类型不匹配导致Mlflow无法读取。

2. 批量更新Artifacts路径

旧元数据中的artifact_location(experiments表)和artifact_uri(runs表)指向旧Azure存储账户,必须替换为新账户路径:

-- 更新实验的artifact存储路径
UPDATE experiments 
SET artifact_location = REPLACE(artifact_location, 'old-account-name.blob.core.windows.net', 'new-account-name.blob.core.windows.net');

-- 更新运行记录的artifact路径
UPDATE runs 
SET artifact_uri = REPLACE(artifact_uri, 'old-account-name.blob.core.windows.net', 'new-account-name.blob.core.windows.net');

如果使用了不同的容器名,也要把容器名一起替换进去。

3. 确认新实例配置正确性

  • 检查数据库连接:确保Mlflow实例的MLFLOW_TRACKING_URI正确指向PostgreSQL,比如:
    export MLFLOW_TRACKING_URI="postgresql://username:password@postgres-host:5432/mlflow_db"
    
  • 验证存储账户访问权限:设置Azure存储的连接字符串或SAS令牌,确保Mlflow能读取新存储的artifacts:
    export AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;AccountName=new-account-name;AccountKey=your-key;EndpointSuffix=core.windows.net"
    
  • 重启Mlflow服务:修改配置后必须重启服务,确保配置生效。

4. 测试命令行可用性,排查UI缓存问题

  • 先用命令行测试:执行mlflow experiments list和mlflow runs list --experiment-id <id>,如果能返回数据,说明数据库连接和数据没问题,问题出在UI。
  • 清理UI缓存并重启:停止Mlflow UI进程,重新启动(执行mlflow ui --backend-store-uri <postgresql_uri> --default-artifact-root <new-azure-path>),避免UI使用旧缓存数据。

5. 检查数据关联完整性

  • 验证外键关联:确保所有runs都有对应的experiment,执行以下查询:
    SELECT COUNT(*) 
    FROM runs r 
    LEFT JOIN experiments e ON r.experiment_id = e.experiment_id 
    WHERE e.experiment_id IS NULL;
    
    如果结果大于0,说明存在无对应实验的无效运行记录,需要删除这些记录或者修复experiment_id。
  • 检查主键唯一性:确保experiments表的experiment_id和runs表的run_uuid没有重复,重复的主键会导致Mlflow无法正常读取数据。

内容的提问来源于stack exchange,提问作者Ravindra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:12:29