1

我们目前有一个数据工厂管道,它能够成功调用我们的 ML Studio 管道之一。ML Studio Pipeline 完成后,我们希望 Azure 数据工厂获取 ML Studio Pipeline 的结果并将结果存储在 SQL Server 中。

我们发现 PipelineData 类根据子运行 id 将结果存储在 blob 中的文件夹中,这使得数据工厂很难获取结果。然后我们发现了 OutputFileDatasetConfig,它允许 ML Studio 将结果保存到数据工厂的静态位置。这对数据工厂很有用,除了 OutputFileDatasetConfig 并不总是有效 :( 因为它是实验类。我们花了一段时间才弄清楚这一点,我们甚至为此创建了一个 stackoverflow 问题,我们解决了这个问题,可以在这里找到: Azure ML Studio ML 管道 - 异常:未找到临时文件

我们返回使用 PipelineData 类,该类根据子运行 id 将结果存储在 blob 中的文件夹中,但我们无法弄清楚如何让数据工厂根据 ML Studio Pipeline 的子运行 id 找到 blob刚跑。

所以我的问题是,你如何让数据工厂获取从数据工厂管道触发的 ML Studio 管道的结果???

这是我们正在尝试构建的数据工厂管道的简单视图。

Step 1: Store Data in azure file store -->
Step 2: Run ML Studio scoring Pipeline -->
Step 3: Copy Results to SQL Server

第3步是我们无法弄清楚的步骤。任何帮助将不胜感激。感谢和快乐的编码!

4

1 回答 1

1

我想我回答了我自己的问题。原来我的问题与几个月前提出的另一个问题相似,他们的最佳解决方案对我有用。

如何将 Azure 机器学习批量评分结果写入数据湖?

我能够使用 DataTransferStep 如下。

transfer_ml_to_blob = DataTransferStep(
    name="transfer_ml_to_blob",
    source_data_reference=output_dir,
    destination_data_reference=blob_data_ref,
    compute_target=data_factory_compute,
    source_reference_type='directory', 
    destination_reference_type='directory'
) 

其他一些有用的资源:

https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-data-transfer.ipynb

https://social.msdn.microsoft.com/Forums/en-US/026b9b1d-6961-4217-b179-0c1973ac1fa2/data-transfer-job-failed-with-unexpected-error-systeminvalidoperationexception-blob-contains-both?论坛=AzureMachineLearningService#7b46c5eb-b7f1-4c2f-a6d0-553672a83e7a

带有 DataTransferStep 的 Azure ML PipelineData 生成 0 字节文件

于 2020-12-21T16:55:20.540 回答