DataTransferStep クラス

ストレージ オプション間でデータを転送する Azure ML パイプライン ステップを作成します。

DataTransferStep は、Azure Blob Storage や Azure Data Lake などの一般的なストレージの種類をソースおよびシンクとしてサポートします。 詳細については、「注釈」セクションを参照してください。

DataTransferStep の使用例については、ノートブック https://aka.ms/pl-data-trans を参照してください。

ストレージ オプション間でデータを転送する Azure ML パイプライン ステップを作成します。

継承
azureml.pipeline.core._data_transfer_step_base._DataTransferStepBase
DataTransferStep

コンストラクター

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
Union[InputPortBinding, DataReference, PortDataReference, PipelineData]
既定値: None

[必須] データ転送操作のソースとして機能する入力接続。

destination_data_reference
Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference]
既定値: None

[必須] データ転送操作の転送先として機能する出力接続。

compute_target
DataFactoryCompute, str
既定値: None

[必須] データの転送に使用する Azure Data Factory。

source_reference_type
str
既定値: None

source_data_reference の種類を指定する文字列 (省略可能)。 指定できる値は "file"、"directory" です。 指定しない場合は、既存のパスの種類が使用されます。 このパラメーターは、同じ名前のファイルとディレクトリを区別するために使用します。

destination_reference_type
str
既定値: None

destination_data_reference の種類を指定する文字列 (省略可能)。 指定できる値は "file"、"directory" です。 指定しない場合、Azure ML では既存のパス、ソース参照、"ディレクトリ" の種類がこの順で使用されます。

allow_reuse
bool
既定値: True

同じ設定で再実行されたときに、ステップで前の結果を再利用するかどうかを示します。 再利用は既定で有効になっています。 ステップ引数が変更されていない場合は、このステップの前の実行からの出力が再利用されます。 ステップを再利用する場合は、データを再度転送するのではなく、直前の実行の結果を後続のステップですぐに利用できるようになります。 Azure Machine Learning データセットを入力として使用する場合、再利用は、基になるデータが変更されたかどうかではなく、データセットの定義が変更されたかどうかによって決まります。

name
str
必須

[必須] ステップの名前。

source_data_reference
Union[InputPortBinding, DataReference, PortDataReference, PipelineData]
必須

[必須] データ転送操作のソースとして機能する入力接続。

destination_data_reference
Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference]
必須

[必須] データ転送操作の転送先として機能する出力接続。

compute_target
DataFactoryCompute, str
必須

[必須] データの転送に使用する Azure Data Factory。

source_reference_type
str
必須

source_data_reference の種類を指定する文字列 (省略可能)。 指定できる値は "file"、"directory" です。 指定しない場合は、既存のパスの種類が使用されます。 このパラメーターは、同じ名前のファイルとディレクトリを区別するために使用します。

destination_reference_type
str
必須

destination_data_reference の種類を指定する文字列 (省略可能)。 指定できる値は "file"、"directory" です。 指定しない場合、Azure ML では既存のパス、ソース参照、"ディレクトリ" の種類がこの順で使用されます。

allow_reuse
bool
必須

同じ設定で再実行されたときに、ステップで前の結果を再利用するかどうかを示します。 再利用は既定で有効になっています。 ステップ引数が変更されていない場合は、このステップの前の実行からの出力が再利用されます。 ステップを再利用する場合は、データを再度転送するのではなく、直前の実行の結果を後続のステップですぐに利用できるようになります。 Azure Machine Learning データセットを入力として使用する場合、再利用は、基になるデータが変更されたかどうかではなく、データセットの定義が変更されたかどうかによって決まります。

注釈

このステップでは特に明記されている場合を除き、以下のストレージ タイプがソースおよびシンクとしてサポートされています。

  • Azure Blob Storage

  • Azure Data Lake Storage Gen1 と Gen2

  • Azure SQL データベース

  • Azure Database for PostgreSQL

  • Azure Database for MySQL

Azure SQL Database の場合は、サービス プリンシパルの認証を使用する必要があります。 詳細については、「サービス プリンシパルの認証」を参照してください。 Azure SQL Database でサービス プリンシパルの認証を使用する例については、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 の出力や PipelineDataas_mount メソッドを組み合わせます。


   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
Graph
必須

ノードを追加するグラフ オブジェクト。

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
必須

既定のデータストア。

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_input または as_mount ヘルパー メソッドと組み合わせます。


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

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