Поделиться через


Сохранение заданий и результатов задач

Задача, выполняемая в Azure Batch, может производить выходные данные во время выполнения. Данные вывода задачи часто необходимо сохранять для последующего использования другими задачами в работе, клиентским приложением, которое выполняло задачу, или обоими. Задачи записывают выходные данные в файловую систему вычислительного узла Batch, но все данные на узле теряются при его повторном создании или когда узел выходит из пула. Задачам может быть установлен период хранения файлов, по истечении которого файлы, созданные задачей, удаляются. For these reasons, it's important to persist task output that you'll need later to a data store such as Azure Storage.

Для получения информации о вариантах учетных записей хранилища в Batch см. учетные записи Batch и учетные записи хранилища Azure.

Ниже приведены некоторые распространенные примеры выходных данных задачи:

  • Файлы, созданные при обработке входных данных задачи.
  • Файлы журнала, связанные с выполнением задачи.

В этой статье описаны различные варианты сохранения выходных данных. Выходные данные из Batch задач и заданий можно сохранить в Azure хранилище или других хранилищах.

Параметры сохранения выходных данных

Существует несколько способов сохранения выходных данных. Выберите лучший метод для вашего сценария:

API пакетной службы

API пакетной службы можно использовать для сохранения выходных данных. Укажите выходные файлы в службе хранилища Azure для данных задач при добавлении задачи в задание или добавлении коллекции задач в задание.

Для получения дополнительной информации см. Сохранение данных задачи в Azure Storage с использованием API службы Batch.

Библиотека стандартов Batch-файлов

Стандарт соглашений для пакетных файлов — это необязательный набор соглашений для задания имен выходных файлов задач в Azure Storage. Стандарт предоставляет правила именования для контейнера назначения и пути к blob файла на основе имен задачи и подзадачи.

Необязательно использовать стандартные соглашения о файлах для именования выходных файлов данных. Вместо этого можно указать имя целевого контейнера и путь к объекту BLOB. Если вы используете стандартные соглашения о файлах, вы можете просмотреть выходные файлы на портале Azure.

Если вы создаете пакетное решение с помощью C# и .NET, вы можете использовать библиотеку соглашений о пакетных файлах для .NET. Библиотека перемещает выходные файлы в службу хранилища Azure и называет целевые контейнеры и BLOB-объекты в соответствии со стандартом Batch File Conventions.

Для получения более подробной информации ознакомьтесь с разделом "Сохранение данных заданий и задач в Azure Storage с использованием библиотеки Batch File Conventions для .NET".

Стандартные соглашения о пакетном файле

Если вы используете язык, отличный от .NET, вы можете реализовать стандартные соглашения о пакетных файлах в собственном приложении. Используйте этот подход, когда:

  • Вы хотите использовать общую схему именования.
  • Вы хотите просмотреть выходные данные задачи на портале Azure.

Индивидуальное решение для перемещения файлов

Вы также можете реализовать собственное полное решение для перемещения файлов. Используйте этот подход, когда:

  • Вы хотите сохранить данные задачи в хранилище данных, отличном от службы хранилища Azure. Например, вы хотите передать файлы в хранилище данных, например Azure SQL или Azure DataLake. Создайте пользовательский скрипт или исполняемый файл для загрузки в указанное место. Затем вызовите пользовательский скрипт или исполняемый файл в командной строке после запуска основного исполняемого файла. Например, на узле Windows вызовите doMyWork.exe && uploadMyFilesToSql.exe.
  • Вы хотите выполнить постановку контрольной точки или раннюю загрузку начальных результатов.
  • Вы хотите обеспечить детальный контроль над обработкой ошибок. Например, вы хотите использовать действия зависимости задач для выполнения определенных действий загрузки на основе конкретных кодов выхода задачи.

Рекомендации по проектированию

При разработке пакетного решения учитывайте следующие факторы.

Вычислительные узлы часто являются преходящими, особенно в пулах службы Batch с включенным автомасштабированием. Вы можете видеть выходные данные только из задачи:

  • Хотя узел, на котором выполняется задача, существует.
  • В течение периода хранения файла, заданного для задачи.

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

Если вы хотите сохранить выходные данные задачи дольше, настройте задачу для отправки выходных файлов в хранилище данных. Рекомендуется использовать хранилище Azure в качестве хранилища данных. Существует интеграция для записи выходных данных задач в Azure Storage через API Batch-службы. Для хранения данных можно использовать другие устойчивые варианты хранения. Однако вам нужно самостоятельно написать логику приложения для других вариантов хранения.

Чтобы просмотреть выходные данные в службе хранилища Azure, используйте портал Azure или клиентское приложение службы хранилища Azure, например Обозреватель службы хранилища Azure. Запишите расположение выходного файла и перейдите непосредственно в это расположение.

Следующий шаг