Копировать данные и отправлять уведомления по электронной почте при успехе и сбое.

ПРИМЕНИМО К: Azure Data Factory Azure Synapse Analytics

Совет

Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

В этом руководстве вы создаете пакет Data Factory, который демонстрирует некоторые функции управления потоком. Этот конвейер выполняет простую копию из контейнера в Azure Blob Storage в другой контейнер в той же учетной записи хранения. Если действие копирования завершается успешно, конвейер отправляет по электронной почте подробную информацию об успешной операции копирования (например, количество записанных данных). Если происходит сбой действия копирования, конвейер отправляет по электронной почте данные об ошибке копирования (например, текст сообщения об ошибке). В этом руководстве вы научитесь передавать параметры.

Общие сведения о сценарии: Диаграмма отображает хранилище Azure Blob Storage, которое является целью копирования. При успешном выполнении отправляется электронное письмо с подробностями, а в случае ошибки — с информацией об ошибке.

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

  • Создали фабрику данных.
  • Создайте связанную службу Azure Storage.
  • Создание набора данных BLOB Azure
  • Создайте конвейер, содержащий действие копирования и веб-действие.
  • Отправка результатов действий для последующих действий.
  • Использование передачи параметров и системных переменных.
  • Запуск конвейера.
  • Следите за процессами конвейера и активностями.

В этом руководстве используется портал Azure. Для взаимодействия с Azure Data Factory можно использовать другие механизмы, см. статью "Краткие руководства" в разделе оглавления.

Предварительные условия

  • подписка Azure. Если у вас нет подписки Azure, создайте учетную запись free перед началом работы.
  • учетная запись Azure Storage. Blob-хранилище используется как источник данных. Если у вас нет учетной записи хранения Azure, см. статью Создание учетной записи хранения с инструкциями по её созданию.
  • База данных SQL Azure. Вы используете базу данных как хранилище данных приемник. Если у вас нет базы данных в Azure SQL Database, ознакомьтесь со статьей Create a database in Azure SQL Database для получения пошаговых инструкций по её созданию.

Создать таблицу больших двоичных объектов

  1. Запустите Блокнот. Скопируйте следующий текст и сохраните его в файл input.txt на диске.

    John,Doe
    Jane,Doe
    
  2. Используйте такие средства, как Azure Storage Explorer выполните следующие действия:

    1. Создайте контейнер adfv2branch.
    2. Создайте папку input в контейнере adfv2branch.
    3. Передайте файл input.txt в этот контейнер.

Создание конечных точек рабочего процесса электронной почты

Чтобы активировать отправку сообщения электронной почты из конвейера, используйте Azure Logic Apps для определения рабочего процесса. Дополнительные сведения о создании рабочего процесса приложения логики см. в статье "Создание примера рабочего процесса приложения логики потребления".

Рабочий процесс успешной отправки сообщения электронной почты

Создайте рабочий процесс приложения логики потребления с именем CopySuccessEmail. Добавьте триггер запроса с именем Когда получен HTTP-запрос и добавьте действие Office 365 Outlook с именем Отправить электронное письмо. При появлении запроса войдите в учетную запись Office 365 Outlook.

Снимок экрана рабочего процесса обработки успешных электронных писем.

Для триггера запроса заполните схему тела запроса JSON следующим кодом JSON:

{
    "properties": {
        "dataFactoryName": {
            "type": "string"
        },
        "message": {
            "type": "string"
        },
        "pipelineName": {
            "type": "string"
        },
        "receiver": {
            "type": "string"
        }
    },
    "type": "object"
}

Триггер запроса в конструкторе рабочих процессов должен выглядеть следующим образом:

Снимок экрана конструктора рабочих процессов с триггером запроса.

Для действия отправки электронной почты настройте способ форматирования электронной почты, используя свойства, переданные в схеме JSON текста запроса. Рассмотрим пример:

Снимок экрана конструктора рабочих процессов с действием с именем

Сохраните рабочий процесс. Запишите URL-адрес запроса HTTP Post для рабочего процесса успешной электронной почты.

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Рабочий процесс сбоя отправки сообщения электронной почты

Выполните те же действия, чтобы создать другой рабочий процесс приложения логики с именем CopyFailEmail. В триггере «Запрос» значение схемы JSON тела запроса такое же. Измените формат вашего электронного письма, как Subject, чтобы адаптировать его на случай неудачи. Рассмотрим пример:

Снимок экрана конструктора рабочих процессов с рабочим процессом обработки ошибок электронной почты.

Сохраните рабочий процесс. Запишите URL-адрес запроса HTTP Post для вашего рабочего процесса отправки электронной почты при ошибке.

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Теперь у вас будут два URL-адреса рабочих процессов.

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Создание фабрики данных

  1. Запустите веб-браузер Microsoft Edge или Google Chrome. В настоящее время пользовательский интерфейс фабрики данных поддерживается только в Microsoft Edge и веб-браузерах Google Chrome.

  2. Разверните меню в левом верхнем углу и выберите "Создать ресурс". Затем выберите Аналитика>фабрика данных:

    Снимок экрана выбора Data Factory в панели «New».

  3. На странице Новая фабрика данных введите ADFTutorialDataFactory в поле Имя.

    Страница

    Имя фабрики данных Azure должно быть уникальным в мире. При возникновении указанной ниже ошибки измените имя фабрики данных (например, на ваше_имя_ADFTutorialDataFactory) и попробуйте создать фабрику данных снова. Ознакомьтесь со статьей Фабрика данных — правила именования, чтобы узнать правила именования для артефактов "Фабрики данных".

    Имя фабрики данных ADFTutorialDataFactory недоступно.

  4. Выберите подписку Azure, где вы хотите создать фабрику данных.

  5. Для группы ресурсов выполните одно из следующих действий.

  6. Укажите V2 при выборе версии.

  7. Укажите расположение фабрики данных. В раскрывающемся списке отображаются только поддерживаемые местоположения. Хранилища данных (Azure Storage, Azure SQL Database и т. д.) и вычислительные ресурсы (HDInsight и т. д.), используемые фабрикой данных, могут находиться в других регионах.

  8. Выберите Закрепить на панели управления.

  9. Нажмите кнопку Создать.

  10. Когда завершится создание, откроется страница Фабрика данных, как показано на рисунке ниже.

    Показан снимок экрана домашней страницы фабрики данных.

  11. Щелкните плитку Open Azure Data Factory Studio, чтобы запустить пользовательский интерфейс Azure Data Factory на отдельной вкладке.

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

На данном этапе вы создадите конвейер с одной копировальной операцией и двумя веб-действиями. Вы используете следующие функции для создания пайплайна:

  • параметры конвейера, к которым осуществляется доступ с помощью наборов данных.
  • Веб-действие для запуска рабочих процессов логических приложений с целью отправки электронных писем о завершении — успешном или неудачном.
  • Соединение одной активности с другой (в случае успеха и неудачи)
  • использование выходных данных действия в качестве входных данных для последующего действия.
  1. На главной странице пользовательского интерфейса Data Factory выберите плитку Orchestrate (Оркестрация).

    Показан снимок экрана домашней страницы фабрики данных с подсвеченной плиткой Orchestrate.

  2. В окне свойств для конвейера перейдите на вкладку Параметры и нажмите кнопку Создать, чтобы добавить три строковых параметра sourceBlobContainer, sinkBlobContainer и receiver.

    • Параметр sourceBlobContainer в конвейере используется исходным набором данных BLOB-объекта.
    • sinkBlobContainer — параметр в конвейере, используемый набором данных контейнера приемника
    • получатель — этот параметр используется двумя веб-действиями в конвейере, отправляющим сообщения об успешном выполнении или сбое получателю, адрес электронной почты которого указан этим параметром.

    Снимок экрана: меню

  3. На панели элементов "Действия" найдите действие "Копировать" и перетащите действие копирования в область конструктора конвейеров.

    Показан снимок экрана, демонстрирующий перетаскивание операции копирования в конструктор конвейеров.

  4. Выберите операцию копирования, которую вы перетаскивали на рабочую поверхность конструктора конвейера. В окне Свойства для действия Копирование в нижней части окна перейдите на вкладку Источник и щелкните + Новый. На этом шаге вы создаете исходный набор данных для действия копирования.

    Снимок экрана: создание исходного набора данных для действия копирования.

  5. В окне New Dataset выберите вкладку Azure вверху и выберите Azure Blob Storage и выберите Continue.

    Показывает снимок экрана кнопки выбора Azure Blob Storage.

  6. В окне "Выбор формата" выберите "Текст с разделителями" и нажмите кнопку "Продолжить".

    Показан снимок экрана окна «Выбор формата» с выделенным форматом текст с разделителями.

  7. Вы увидите новую вкладку, названную Задать свойства. Измените имя этого набора данных на SourceBlobDataset. Выберите раскрывающийся список связанной службы и нажмите кнопку +Создать, чтобы создать связанную службу в исходном наборе данных.

    Снимок экрана окна

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

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

  9. В окне New Linked Service (Новая связанная служба) сделайте следующее:

    1. Введите AzureStorageLinkedService в поле Имени.
    2. Выберите учетную запись хранения Azure с именем учетной записи Storage.
    3. Нажмите кнопку Создать.
  10. В следующем окне Задать свойства выберите Открыть этот набор данных, чтобы ввести параметризованное значение для имени файла.

    Снимок экрана окна

  11. Введите @pipeline().parameters.sourceBlobContainer в качестве имени папки и emp.txt в качестве имени файла.

    Снимок экрана: параметры исходного набора данных.

  12. Вернитесь на вкладку конвейера (или щелкните конвейер на дереве просмотра слева) и выберите действие копирования в дизайнере. Убедитесь, что для исходного набора данных выбран новый набор данных.

    Снимок экрана: исходный набор данных.

  13. В окне свойств перейдите на вкладку Приемник и нажмите кнопку + Создать в поле Sink Dataset (Целевой набор данных). На этом этапе вы создаете приемный набор данных для копирования, так же, как вы создали исходный набор данных.

    Показан снимок экрана кнопки нового набора данных приемника

  14. В окне New Dataset выберите Azure Blob Storage и щелкните Continue, а затем снова выберите DelimitedText в формате Select и снова щелкните Continue еще раз.

  15. На странице свойств для набора данных, введите SinkBlobDataset для Имени и выберите AzureStorageLinkedService для LinkedService.

  16. Разверните раздел "Дополнительно" страницы свойств и выберите "Открыть этот набор данных".

  17. На вкладке Подключение измените путь к файлу. Введите @pipeline().parameters.sinkBlobContainer папку и @concat(pipeline().RunId, '.txt') имя файла. Это выражение использует идентификатор текущего запуска конвейера для создания имени файла. Списки поддерживаемых системных переменных и выражений вы найдете в статьях Системные переменные, поддерживаемые в фабрике данных Azure и Выражения и функции в фабрике данных Azure.

    На скриншоте показаны настройки набора данных

  18. Переключитесь обратно на вкладку конвейера в верхней части. Найдите Web в строке поиска и перетащите Web действие на поверхность конструктора конвейера. Присвойте этому действию имя SendSuccessEmailActivity. Веб-действие разрешает выполнять запрос к любой конечной точке REST. Дополнительные сведения о деятельности см. в разделе Веб-активность. Этот конвейер использует веб-активность для активации рабочего процесса электронной почты Logic Apps.

    Показан снимок экрана, демонстрирующий процесс перетаскивания первой веб-активности.

  19. Перейдите на вкладку Настройки из вкладки Общие и выполните следующие действия:

    1. В поле URL-адрес укажите URL-адрес для рабочего процесса приложений логики, который отправляет сообщение электронной почты об успешном выполнении.

    2. Выберите POST в поле Метод.

    3. Щелкните ссылку + Добавить заголовок в разделе Заголовки.

    4. Добавьте заголовок с именем Content-Type и значением application/json.

    5. Внесите следующий код JSON в поле Текст.

      {
          "message": "@{activity('Copy1').output.dataWritten}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

      Текст сообщения содержит следующие свойства.

      • Сообщение — передача значения @{activity('Copy1').output.dataWritten. Обращается к свойству предыдущего действия копирования и передает значение dataWritten. В случае сбоя передайте выходные данные ошибки вместо @{activity('CopyBlobtoBlob').error.message.

      • Имя фабрики данных — передаваемое значение @{pipeline().DataFactory} — это системная переменная, позволяющая получить доступ к соответствующему имени фабрики данных. Список системных переменных см. в статье Системные переменные.

      • Имя конвейера — передаваемое @{pipeline().Pipeline}значение . Это системная переменная, которая позволяет обращаться к соответствующему имени конвейера.

      • Получатель — передача значения "@pipeline().parameters.receiver"). Доступ к параметрам конвейера.

        Снимок экрана: параметры для первого веб-действия.

  20. Подключите действие Copy к действию Web, перетащив зеленый флажок рядом с Copy и отпустив его на веб-действие.

    Показывается снимок экрана, демонстрирующий, как подключить активность копирования к первой Web-активности.

  21. Перетащите ещё одно Веб-действие из панели элементов "Действия" в область конструктора конвейера и задайте для него имяSendFailureEmailActivity.

    Показывается снимок экрана с именем второго веб-действия.

  22. Перейдите на вкладку Настройки и выполните здесь следующие действия:

    1. Укажите URL-адрес для рабочего процесса в Logic Apps, который отправляет электронное письмо об ошибке.

    2. Выберите POST в поле Метод.

    3. Щелкните ссылку + Добавить заголовок в разделе Заголовки.

    4. Добавьте заголовок с именем Content-Type и значением application/json.

    5. Внесите следующий код JSON в поле Текст.

      {
          "message": "@{activity('Copy1').error.message}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

      Снимок экрана настроек второго веб-действия.

  23. Выберите красную кнопку X справа от активности Copy в pipeline designer и перетащите ее на только что созданную активность SendFailureEmailActivity.

    Скриншот, показывающий, как выбрать параметр «Ошибка» в действии копирования в конструкторе конвейеров.

  24. Чтобы проверить работу конвейера, нажмите кнопку Проверка на панели инструментов. Закройте окно Pipeline Validation Output, нажав кнопку >>.

    Показывает снимок экрана с кнопкой «Проверить конвейер».

  25. Чтобы опубликовать сущности (наборы данных, конвейеры и т. д.) в службу фабрики данных, щелкните Опубликовать все. Дождитесь, пока не увидите сообщение Успешно опубликовано.

    Снимок экрана: кнопка

Запустите выполнение конвейера, которое завершится успешно

  1. Чтобы запустить конвейер, щелкните Триггер на панели инструментов, а затем Trigger Now (Запустить сейчас).

    Снимок экрана: кнопка

  2. В окне Запуск конвейера выполните следующие действия.

    1. Введите adftutorial/adfv2branch/input в качестве значения для параметра sourceBlobContainer.

    2. Введите adftutorial/adfv2branch/output в качестве значения для параметра sinkBlobContainer.

    3. Введите адрес электронной почты для получателя.

    4. Нажмите кнопку Готово.

      Параметры запуска конвейера

Следите за успешным выполнением конвейера

  1. Чтобы отследить выполнение конвейера, перейдите на вкладку Мониторинг слева. Вы видите, что запуск конвейера был инициирован вручную вами. Нажмите кнопку Обновить, чтобы обновить этот список.

    Успешный запуск конвейера

  2. Чтобы просмотреть запуски действий, связанные с этим запуском конвейера, щелкните первую ссылку в столбце Действия. Вы можете переключиться к предыдущему представлению, щелкнув раздел Конвейеры вверху страницы. Нажмите кнопку Обновить, чтобы обновить этот список.

    Скриншот показывает, как просмотреть список запусков активностей.

Запуск конвейера, который завершится сбоем

  1. Перейдите на вкладку Правка слева.

  2. Чтобы запустить конвейер, щелкните Триггер на панели инструментов, а затем Trigger Now (Запустить сейчас).

  3. В окне Запуск конвейера выполните следующие действия.

    1. Введите adftutorial/dummy/input в качестве значения для параметра sourceBlobContainer. Убедитесь, что папка dummy не существует в контейнере adftutorial.
    2. Введите adftutorial/dummy/output в качестве значения для параметра sinkBlobContainer.
    3. Введите адрес электронной почты для получателя.
    4. Нажмите кнопку Готово.

Отследите неудачный запуск конвейера.

  1. Чтобы отследить выполнение конвейера, перейдите на вкладку Мониторинг слева. Вы видите, что запуск конвейера был инициирован вручную вами. Нажмите кнопку Обновить, чтобы обновить этот список.

    Неудачный запуск конвейера

  2. Щелкните ссылку Ошибка рядом с запуском конвейера, чтобы просмотреть сведения об этой ошибке.

    Ошибка конвейера

  3. Чтобы просмотреть запуски действий, связанные с этим запуском конвейера, щелкните первую ссылку в столбце Действия. Нажмите кнопку Обновить, чтобы обновить этот список. Обратите внимание, что "Copy activity" в конвейере завершилось сбоем. Веб-действию удалось отправить сообщение об ошибке указанному получателю.

    Выполнение действия

  4. Щелкните ссылку Ошибка в столбце Действия, чтобы просмотреть сведения об этой ошибке.

    Ошибка выполнения действия

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

  • Создали фабрику данных.
  • Создайте связанную службу Azure Storage.
  • Создание набора данных BLOB Azure
  • Создайте конвейер, который содержит действие копирования и веб-действие.
  • Отправка результатов действий для последующих действий.
  • Использование передачи параметров и системных переменных.
  • Запуск конвейера.
  • Следите за процессами конвейера и активностями.

Теперь вы можете перейти к разделу "Основные понятия" для получения дополнительных сведений о Azure Data Factory.