如何通过Azure ML SDK列出Azure ML Dataset所有版本并获取上一版本
使用Azure ML SDK列出数据集所有版本并获取上一版本
前置准备
- 安装Azure ML SDK v2:
pip install azure-ai-ml - 已通过SDK完成Azure ML工作区的身份验证与连接
1. 列出数据集的所有可用版本
通过MLClient的data.list()方法,指定list_all_versions=True即可获取目标数据集的全部版本:
from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential # 初始化工作区客户端 ml_client = MLClient( credential=DefaultAzureCredential(), subscription_id="<你的订阅ID>", resource_group_name="<资源组名称>", workspace_name="<工作区名称>" ) # 目标数据集名称 target_dataset = "<数据集名称>" # 获取所有版本 all_versions = ml_client.data.list(name=target_dataset, list_all_versions=True) # 遍历打印版本详情 for version in all_versions: print(f"版本号: {version.version}, 创建时间: {version.created_on}, 描述: {version.description or '无'}")
注:默认list()方法仅返回最新版本,必须加上list_all_versions=True参数才能获取全量版本。
2. 获取最新版本的上一版本
先将所有版本按创建时间(或版本号)降序排序,再取排序后的第二个元素即可:
# 转换为列表并按创建时间倒序排列(最新版本在前) sorted_versions = sorted(all_versions, key=lambda x: x.created_on, reverse=True) # 判断版本数量是否满足条件 if len(sorted_versions) >= 2: previous_version = sorted_versions[1] print(f"上一版本信息:版本号={previous_version.version}, 创建时间={previous_version.created_on}") # 如需加载该版本数据集,执行以下代码 # loaded_dataset = ml_client.data.get(name=target_dataset, version=previous_version.version) else: print("该数据集仅1个版本或无版本,无法获取上一版本")
如果你的数据集版本号采用递增数字命名(如v1、v2、v3),也可以按版本号排序:
sorted_versions = sorted(all_versions, key=lambda x: int(x.version.lstrip('v')), reverse=True)
用于识别数据趋势变化的思路
拿到相邻版本的数据集后,可通过以下方式分析趋势变化:
- 对比特征的统计指标(均值、方差、分位数)差异
- 检查样本量、特征数量的增减
- 计算数据漂移指标(PSI、KL散度)量化分布变化
- 对比标签(若有)的分布差异
这些分析能帮你判断数据是否发生了显著变化,进而决定是否需要调整模型训练流程或数据处理逻辑。
内容的提问来源于stack exchange,提问作者Imperial_J
相关产品推荐
相关产品推荐

