Руководство по выполнению пакетного задания с помощью фабрики данных с помощью пакетной Обозреватель, Обозреватель службы хранилища и Python

В этом руководстве описывается создание и запуск конвейера Фабрика данных Azure, выполняющего рабочую нагрузку пакетная служба Azure. Скрипт Python выполняется на узлах пакетной службы, чтобы получить входные данные, разделенные запятыми (CSV) из контейнера Хранилище BLOB-объектов Azure, управления данными и записи выходных данных в другой контейнер хранилища. Пакетная Обозреватель используется для создания пула и узлов пакетной службы, а также служба хранилища Azure Обозреватель для работы с контейнерами и файлами хранилища.

В этом руководстве описано следующее:

  • Используйте пакетную Обозреватель для создания пула и узлов пакетной службы.
  • Используйте Обозреватель службы хранилища для создания контейнеров хранилища и отправки входных файлов.
  • Разработка скрипта Python для обработки входных данных и создания выходных данных.
  • Создайте конвейер фабрики данных, который запускает рабочую нагрузку пакетной службы.
  • Используйте пакетную Обозреватель для просмотра выходных файлов журнала.

Необходимые компоненты

Создание пула и узлов пакетной службы с помощью пакетной службы Обозреватель

Используйте пакетную Обозреватель для создания пула вычислительных узлов для выполнения рабочей нагрузки.

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

  2. Выберите учетную запись пакетной службы.

  3. Выберите пулы на левой боковой панели и щелкните + значок, чтобы добавить пул.

    Screenshot of creating a pool in Batch Explorer.

  4. Заполните форму добавления пула в форму учетной записи следующим образом:

    • В поле "Идентификатор" введите custom-activity-pool.
    • В разделе "Выделенные узлы" введите 2.
    • Чтобы выбрать конфигурацию операционной системы, перейдите на вкладку "Обработка и анализ данных", а затем выберите Dsvm Win 2019.
    • Для выбора размера виртуальной машины выберите Standard_F2s_v2.
    • Для задачи "Начать" выберите "Добавить задачу запуска". На начальном экране задачи в командной строке введите cmd /c "pip install azure-storage-blob pandas"и нажмите кнопку "Выбрать". Эта команда устанавливает azure-storage-blob пакет на каждом узле по мере запуска.
  5. Выберите Сохранить и закрыть.

Создание контейнеров BLOB-объектов с помощью Обозреватель службы хранилища

Используйте Обозреватель службы хранилища для создания контейнеров BLOB-объектов для хранения входных и выходных файлов, а затем отправки входных файлов.

  1. Войдите в Обозреватель службы хранилища с помощью учетных данных Azure.
  2. На левой боковой панели найдите и разверните учетную запись хранения, связанную с учетной записью пакетной службы.
  3. Щелкните правой кнопкой мыши контейнеры BLOB-объектов и выберите "Создать контейнер BLOB-объектов" в нижней части боковой панели.
  4. Введите входные данные в поле записи.
  5. Создайте другой контейнер больших двоичных объектов с именем выходные данные.
  6. Выберите входнойконтейнер и нажмите кнопку "Отправить>файлы" в правой области.
  7. На экране "Отправить файлы" в разделе "Выбранные файлы" выберите многоточие ... рядом с полем записи.
  8. Перейдите к расположению скачаемого файла iris.csv , выберите "Открыть" и нажмите кнопку "Отправить".

Screenshot of Storage Explorer with containers and blobs created in the storage account.

Разработка скрипта Python

Следующий скрипт Python загружает файл набора данных iris.csv из контейнера ввода Обозреватель службы хранилища, управляет данными и сохраняет результаты в выходном контейнере.

Сценарий должен использовать строка подключения для учетной записи служба хранилища Azure, связанной с учетной записью пакетной службы. Чтобы получить строка подключения, выполните следующие действия.

  1. В портал Azure найдите и выберите имя учетной записи хранения, связанной с учетной записью пакетной службы.
  2. На странице учетной записи хранения выберите ключи доступа в левой области навигации в разделе "Безопасность и сеть".
  3. В разделе key1 выберите "Показать рядом с строкой Подключение ion", а затем щелкните значок "Копировать", чтобы скопировать строка подключения.

Вставьте строка подключения в следующий скрипт, заменив <storage-account-connection-string> заполнитель. Сохраните скрипт в виде файла с именем main.py.

Внимание

Предоставление ключей учетной записи в источнике приложения не рекомендуется для использования в рабочей среде. Необходимо ограничить доступ к учетным данным и ссылаться на них в коде с помощью переменных или файла конфигурации. Рекомендуется хранить ключи учетной записи пакетной службы и служба хранилища в Azure Key Vault.

# Load libraries
from azure.storage.blob import BlobClient
import pandas as pd

# Define parameters
connectionString = "<storage-account-connection-string>"
containerName = "output"
outputBlobName	= "iris_setosa.csv"

# Establish connection with the blob storage account
blob = BlobClient.from_connection_string(conn_str=connectionString, container_name=containerName, blob_name=outputBlobName)

# Load iris dataset from the task node
df = pd.read_csv("iris.csv")

# Take a subset of the records
df = df[df['Species'] == "setosa"]

# Save the subset of the iris dataframe locally in the task node
df.to_csv(outputBlobName, index = False)

with open(outputBlobName, "rb") as data:
    blob.upload_blob(data, overwrite=True)

Запустите скрипт локально для тестирования и проверки функциональности.

python main.py

Скрипт должен создать выходной файл с именем iris_setosa.csv , который содержит только записи данных с типом = setosa. Убедившись, что он работает правильно, отправьте файл скрипта main.py в контейнер ввода Обозреватель службы хранилища.

Настройка конвейера фабрики данных

Создайте и проверьте конвейер фабрики данных, использующий скрипт Python.

Получение данных об учетной записи

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

  1. На панели поиска Azure найдите и выберите имя учетной записи пакетной службы.

  2. На странице учетной записи пакетной службы выберите "Ключи " в области навигации слева.

  3. На странице "Ключи" скопируйте следующие значения:

    • Учетная запись пакетной службы
    • Конечная точка учетной записи
    • Первичный ключ доступа
    • Имя учетной записи хранения
    • Key1

Создание и запуск конвейера

  1. Если Фабрика данных Azure Studio еще не запущена, выберите "Запустить студию" на странице фабрики данных в портал Azure.

  2. В Студии фабрики данных щелкните значок карандаша "Автор " в области навигации слева.

  3. В разделе "Ресурсы фабрики + " щелкните значок и выберите "Конвейер".

  4. В области свойств справа измените имя конвейера на Запуск Python.

    Screenshot of Data Factory Studio after you select Add pipeline.

  5. В области действий разверните пакетную службу и перетащите настраиваемое действие в область конструктора конвейеров.

  6. Под холстом конструктора на вкладке "Общие " введите testPipeline в разделе "Имя".

    Screenshot of the General tab for creating a pipeline task.

  7. Выберите вкладку пакетная служба Azure и нажмите кнопку "Создать".

  8. Заполните форму новой связанной службы следующим образом:

    • Имя: введите имя связанной службы, например AzureBatch1.
    • Ключ доступа: введите первичный ключ доступа, скопированный из учетной записи пакетной службы.
    • Имя учетной записи: введите имя учетной записи пакетной службы.
    • URL-адрес пакетной службы: введите конечную точку учетной записи, скопированную из учетной записи пакетной службы, например https://batchdotnet.eastus.batch.azure.com.
    • Имя пула: введите настраиваемый пул действий, пул, созданный в пакетной Обозреватель.
    • служба хранилища имя связанной службы учетной записи: выберите "Создать". На следующем экране введите имя связанной службы хранилища, например AzureBlob служба хранилища 1, выберите подписку Azure и связанную учетную запись хранения, а затем нажмите кнопку "Создать".
  9. В нижней части экрана "Создать связанную службу пакетной службы" выберите "Проверить подключение". Когда подключение выполнено успешно, нажмите кнопку "Создать".

    Screenshot of the New linked service screen for the Batch job.

  10. Выберите вкладку Параметры и введите или выберите следующие параметры:

    • Команда: ВВОД cmd /C python main.py.
    • Связанная служба ресурсов: выберите созданную службу связанного хранилища, например AzureBlob служба хранилища 1, и проверьте подключение, чтобы убедиться, что это выполнено успешно.
    • Путь к папке: щелкните значок папки, а затем выберите входной контейнер и нажмите кнопку "ОК". Файлы из этой папки скачиваются из контейнера на узлы пула перед запуском скрипта Python.

    Screenshot of the Settings tab for the Batch job.

  11. Выберите " Проверить" на панели инструментов конвейера, чтобы проверить конвейер.

  12. Выберите "Отладка", чтобы проверить конвейер и убедиться, что он работает правильно.

  13. Выберите "Опубликовать все ", чтобы опубликовать конвейер.

  14. Выберите " Добавить триггер", а затем нажмите кнопку "Триггер" , чтобы запустить конвейер или создать или изменить , чтобы запланировать его.

    Screenshot of Validate, Debug, Publish all, and Add trigger selections in Data Factory.

Просмотр файлов журналов с помощью пакетной Обозреватель

Если при запуске конвейера возникают предупреждения или ошибки, можно использовать пакетную Обозреватель для просмотра stdout.txt и stderr.txt выходных файлов для получения дополнительных сведений.

  1. В пакетной Обозреватель выберите задания на левой боковой панели.
  2. Выберите задание adfv2-custom-activity-pool.
  3. Выберите задачу, у которой был код выхода из строя.
  4. Просмотрите stdout.txt и stderr.txt файлы для изучения и диагностики проблемы.

Очистка ресурсов

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

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

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

В этом руководстве вы узнали, как использовать скрипт Python с пакетной Обозреватель, Обозреватель службы хранилища и фабрикой данных для выполнения рабочей нагрузки пакетной службы. Дополнительные сведения о фабрике данных см. в статье "Что такое Фабрика данных Azure?"