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

如何在Azure Machine Learning Studio注册ADLS Gen1的指定版本Delta Table

核心问题说明

无法直接在ADLS路径中添加参数指向指定Delta Table版本的parquet文件:Delta的版本映射逻辑存储在表目录下_delta_log文件夹的元数据中,原生文件系统路径无法解析该元数据,因此直接读取根目录会抓到所有历史版本的parquet文件。

可选实现方案(均无需修改Delta保留周期配置)

  • 方案1:导出指定版本到独立路径后注册
    在Databricks中用Delta时间旅行读取指定版本,仅导出该版本的有效parquet文件到独立路径,再注册该路径到Azure ML Studio即可,示例代码:

    from delta.tables import DeltaTable
    
    # 读取版本号为N的Delta表,也可替换为option("timestampAsOf", "2024-01-01 00:00:00")按时间戳选版本
    delta_df = spark.read.format("delta").option("versionAsOf", N).load("adl://organisation.azuredatalakestore.net/folder_name/my_data")
    
    # 写入仅包含当前版本文件的独立目录
    delta_df.write.mode("overwrite").parquet("adl://organisation.azuredatalakestore.net/folder_name/my_data_version_N")
    

    优势:导出后的目录仅含所需版本的parquet文件,无需修改训练侧代码。

  • 方案2:注册全量Delta目录,训练侧指定版本读取
    直接将包含_delta_log的整个Delta表根目录注册为File Dataset,在训练脚本中用轻量deltalake库(无需依赖Spark)指定版本读取,示例代码:

    from deltalake import DeltaTable
    
    # path为Azure ML File Dataset挂载后的本地路径,指定对应版本号即可读取仅该版本的有效数据
    dt = DeltaTable(path="./mounted/path/to/my_data", version=N)
    df = dt.to_pandas()
    

    优势:无需额外存储多版本副本,无数据导出步骤,操作成本最低。

  • 方案3:生成符号链接清单,注册清单路径
    在Databricks中执行Delta的generate命令,生成仅含指定版本有效文件路径的符号链接清单,直接注册清单路径即可,无需复制全量数据:

    from delta.tables import DeltaTable
    
    delta_table = DeltaTable.forPath(spark, "adl://organisation.azuredatalakestore.net/folder_name/my_data")
    # 生成全版本的符号链接清单
    delta_table.generate("symlink_format_manifest")
    

    生成的清单存储在Delta表根目录下的_symlink_format_manifest文件夹中,按版本号划分目录,注册Azure ML File Dataset时直接选择对应版本的清单目录即可。
    优势:仅新增KB级别的清单文件,存储开销几乎为0,无需修改训练侧读取逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:06:00