DataTransferStep Класс

Создает этап конвейера Azure ML, который передает данные между разными видами хранилищ.

DataTransferStep поддерживает общие типы хранилищ, такие как служба Хранилище BLOB-объектов Azure и Azure Data Lake в качестве источников и приемников. Дополнительные сведения см. в разделе Примечания.

Пример использования DataTransferStep см. в записной книжке https://aka.ms/pl-data-trans.

Создайте шаг конвейера Машинного обучения Azure, который передает данные между вариантами хранения.

Наследование
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, используемая для передачи данных.

source_reference_type
str
значение по умолчанию: None

Необязательная строка, указывающая тип source_data_reference. Возможные значения: file, directory. Если не задано, используется тип существующего пути. Используйте этот параметр, чтобы различать файл и каталог с одинаковыми именами.

destination_reference_type
str
значение по умолчанию: None

Необязательная строка, указывающая тип destination_data_reference. Возможные значения: file, directory. Если не задано, Azure ML использует тип существующего пути, ссылку на источник или directory в указанном порядке.

allow_reuse
bool
значение по умолчанию: True

Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если аргументы этапа не изменяются, выходные данные из предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо повторной передачи данных немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных.

name
str
Обязательно

[Обязательно] Имя этапа.

source_data_reference
Union[InputPortBinding, DataReference, PortDataReference, PipelineData]
Обязательно

[Обязательно.] Входное подключение, которое служит источником операции по передаче данных.

destination_data_reference
Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference]
Обязательно

[Обязательно.] Выходное подключение, которое используется в качестве назначения операции по передаче данных.

compute_target
DataFactoryCompute, str
Обязательно

[Обязательно.] Фабрика данных Azure, используемая для передачи данных.

source_reference_type
str
Обязательно

Необязательная строка, указывающая тип source_data_reference. Возможные значения: file, directory. Если не задано, используется тип существующего пути. Используйте этот параметр, чтобы различать файл и каталог с одинаковыми именами.

destination_reference_type
str
Обязательно

Необязательная строка, указывающая тип destination_data_reference. Возможные значения: file, directory. Если не задано, Azure ML использует тип существующего пути, ссылку на источник или directory в указанном порядке.

allow_reuse
bool
Обязательно

Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если аргументы этапа не изменяются, выходные данные из предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо повторной передачи данных немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных.

Комментарии

Этот этап поддерживает следующие типы хранилищ в качестве источников и приемников, за исключением случаев, когда указано иное:

  • хранилище BLOB-объектов Azure

  • Azure Data Lake Storage 1-го и 2-го поколения

  • База данных SQL Azure

  • База данных Azure для PostgreSQL

  • База данных Azure для MySQL

Для Базы данных SQL Azure необходимо использовать проверку подлинности субъекта-службы. Дополнительные сведения см. в разделе Проверка подлинности субъекта-службы. Пример использования проверки подлинности субъекта-службы для Базы данных SQL Azure: 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
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")