DataTransferStep 类

创建一个 Azure ML Pipeline 步骤,用于在存储选项之间传输数据。

DataTransferStep 支持常见的存储类型,例如 Azure Blob 存储和 Azure Data Lake 作为源和接收器。 有关详细信息,请参阅 “备注 ”部分。

有关使用 DataTransferStep 的示例,请参阅笔记本 https://aka.ms/pl-data-trans

创建一个 Azure ML Pipeline 步骤,用于在存储选项之间传输数据。

构造函数

DataTransferStep(name, source_data_reference=None, destination_data_reference=None, compute_target=None, source_reference_type=None, destination_reference_type=None, allow_reuse=True)

参数

名称 说明
name
必需
str

[必需]步骤的名称。

source_data_reference

[必需]用作数据传输作源的输入连接。

默认值: None
destination_data_reference

[必需]用作数据传输作目标的输出连接。

默认值: None
compute_target

[必需]用于传输数据的 Azure 数据工厂。

默认值: None
source_reference_type
str

一个指定类型为 可选字符串。 可能的值包括:“file”、“directory”。 如果未指定,则使用现有路径的类型。 使用此参数区分同名的文件和目录。

默认值: None
destination_reference_type
str

一个指定类型为 可选字符串。 可能的值包括:“file”、“directory”。 如果未指定,Azure ML 会按该顺序使用现有路径、源引用或“directory”的类型。

默认值: None
allow_reuse

指示使用相同设置重新运行时,该步骤是否应重复使用以前的结果。 默认情况下启用重用。 如果步骤参数保持不变,则重复使用上一次运行此步骤的输出。 重用步骤时,将立即向任何后续步骤提供上一次运行的结果,而不是再次传输数据。 如果使用 Azure 机器学习数据集作为输入,则重复使用取决于数据集的定义是否已更改,而不是由基础数据是否已更改决定。

默认值: True
name
必需
str

[必需]步骤的名称。

source_data_reference
必需

[必需]用作数据传输作源的输入连接。

destination_data_reference
必需

[必需]用作数据传输作目标的输出连接。

compute_target
必需

[必需]用于传输数据的 Azure 数据工厂。

source_reference_type
必需
str

一个指定类型为 可选字符串。 可能的值包括:“file”、“directory”。 如果未指定,则使用现有路径的类型。 使用此参数区分同名的文件和目录。

destination_reference_type
必需
str

一个指定类型为 可选字符串。 可能的值包括:“file”、“directory”。 如果未指定,Azure ML 会按该顺序使用现有路径、源引用或“directory”的类型。

allow_reuse
必需

指示使用相同设置重新运行时,该步骤是否应重复使用以前的结果。 默认情况下启用重用。 如果步骤参数保持不变,则重复使用上一次运行此步骤的输出。 重用步骤时,将立即向任何后续步骤提供上一次运行的结果,而不是再次传输数据。 如果使用 Azure 机器学习数据集作为输入,则重复使用取决于数据集的定义是否已更改,而不是由基础数据是否已更改决定。

注解

此步骤支持以下存储类型作为源和接收器,但以下存储类型除外:

  • Azure Blob 存储

  • Azure Data Lake Storage Gen1 和 Gen2

  • Azure SQL 数据库

  • 适用于 PostgreSQL 的 Azure 数据库

  • 适用于 MySQL 的 Azure 数据库

对于 Azure SQL 数据库,必须使用服务主体身份验证。 有关详细信息,请参阅 服务主体身份验证。 有关对 Azure SQL 数据库使用服务主体身份验证的示例,请参阅 https://aka.ms/pl-data-trans

若要在步骤之间建立数据依赖关系,请使用 get_output 该方法获取表示 PipelineData 此数据传输步骤输出的对象,并可用作管道中后续步骤的输入。


   data_transfer_step = DataTransferStep(name="copy data", ...)

   # Use output of data_transfer_step as input of another step in pipeline
   # This will make training_step wait for data_transfer_step to complete
   training_input = data_transfer_step.get_output()
   training_step = PythonScriptStep(script_name="train.py",
                           arguments=["--model", training_input],
                           inputs=[training_input],
                           compute_target=aml_compute,
                           source_directory=source_directory)

若要创建 InputPortBinding 具有特定名称的输出,可以将 get_output() 输出与 as_input 输出 as_mount 或方法 PipelineData组合在一起。


   data_transfer_step = DataTransferStep(name="copy data", ...)
   training_input = data_transfer_step.get_output().as_input("my_input_name")

方法

create_node

从 DataTransfer 步骤创建一个节点,并将其添加到给定的图形。

此方法不用于直接使用。 使用此步骤实例化管道时,Azure ML 会自动传递通过此方法所需的参数,以便可以将该步骤添加到表示工作流的管道图中。

get_output

获取步骤的输出作为 PipelineData。

create_node

从 DataTransfer 步骤创建一个节点,并将其添加到给定的图形。

此方法不用于直接使用。 使用此步骤实例化管道时,Azure ML 会自动传递通过此方法所需的参数,以便可以将该步骤添加到表示工作流的管道图中。

create_node(graph, default_datastore, context)

参数

名称 说明
graph
必需

要向其添加节点的图形对象。

default_datastore
必需

默认数据存储。

context
必需
<xref:azureml.pipeline.core._GraphContext>

图形上下文。

返回

类型 说明

创建的节点。

get_output

获取步骤的输出作为 PipelineData。

get_output()

返回

类型 说明

步骤的输出。

注解

若要在步骤之间建立数据依赖关系,请使用 get_output 方法获取表示 PipelineData 此数据传输步骤的输出的对象,并可用作管道中后续步骤的输入。


   data_transfer_step = DataTransferStep(name="copy data", ...)

   # Use output of data_transfer_step as input of another step in pipeline
   # This will make training_step wait for data_transfer_step to complete
   training_input = data_transfer_step.get_output()
   training_step = PythonScriptStep(script_name="train.py",
                           arguments=["--model", training_input],
                           inputs=[training_input],
                           compute_target=aml_compute,
                           source_directory=source_directory)

若要创建 InputPortBinding 具有特定名称的调用,可以结合 get_output() 调用 as_inputas_mount 帮助程序方法。


   data_transfer_step = DataTransferStep(name="copy data", ...)

   training_input = data_transfer_step.get_output().as_input("my_input_name")