Вложенные действия в Фабрике данных Azure и Azure Synapse Analytics

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этой статье представлены сведения о вложенных действиях в Фабрике данных Azure и Azure Synapse Analytics, а также об их использовании, ограничениях и лучших методиках применения.

Обзор

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

См. следующий пример с действием "If", содержащим одно действие.

Screenshot showing an example If Condition activity with a contained activity inside.

Действия в потоке управления

Следующие действия потока управления поддерживают вложенные действия:

Действие управления Description
Для каждого Действие ForEach определяет повторяющийся поток управления в конвейере. Это действие используется для выполнения итерации коллекции и выполняет указанные в цикле действия. Реализация цикла этого действия аналогична структуре цикла Foreach на языках программирования.
Действие условия If Это действие можно использовать для создания ветви на основе условия, результатом расчета которого является значение True или False. Действие условия If предоставляет те же функциональные возможности, что и инструкция if в языках программирования. Оно определяет один набор действий, если условие принимает значение true, и другой набор действий, если условие принимает значение false..
Действие Until Реализует цикл Do Until, который аналогичен циклической структуре Do-Until в языках программирования. Оно выполняет набор действий в цикле, пока условие, связанное с действием, не получит значение true. Можно указать значение времени ожидания для действия until.
Действие Switch Действие Switch выполняет те же функции, что и инструкция switch в языках программирования. Оно оценивает набор действий, относящихся к варианту, которые соответствуют вычислению условия.

Существует два основных способа перехода к действиям, содержащимся во вложенном действии.

  1. Каждое действие потока управления, поддерживающее вложенные действия, имеет вкладку действий. При выборе вкладки действий появится значок карандаша, который можно нажать для детализации на панели внутренних действий. Screenshot showing an example If Condition activity with a highlight on the pencil icon to navigate.

  2. В действии на холсте конвейера можно выбрать значок карандаша, чтобы перейти далее на панель внутренних действий. Кроме того, для действий ForEach и Until поддерживается двойной щелчок мыши на действии для перехода к внутренней панели действий. Screenshot showing an example If Condition activity on the pipeline canvas highlighting the pencil icon.

Затем холст конвейера переключится на контекст выбранного контейнера внутреннего действия. В верхней части также будет цепочка навигации, который можно выбрать, чтобы вернуться к родительскому конвейеру. Screenshot showing an example If Condition activity inside the true branch with a highlight on the breadcrumb to navigate back to the parent pipeline.

Ограничения внедрения вложенных действий

Существуют ограничения на действия, поддерживающие вложение (ForEach, Until, Switch и If Condition), для вложения другого вложенного действия. В частности:

  • Если и переключатель можно использовать внутри ForEach или До действий.
  • Если и переключатель нельзя использовать внутри действий If и Switch.
  • ForEach или Until поддерживает только один уровень вложения.

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

Если и переключатель можно использовать внутри ForEach или До действий. ForEach или Until поддерживает только одноуровневую вложенную вложенную функцию If и Switch нельзя использовать внутри действий If и Switch.

Рекомендации для нескольких уровней вложенных действий

Чтобы иметь логику, поддерживающую вложение более одного уровня, можно использовать действие Execute Pipeline внутри вложенного действия для вызова другого конвейера, который затем может иметь другой уровень вложенных действий. Типичным вариантом использования этого шаблона является цикл ForEach, в котором необходимо дополнительно выполнять цикл на основе логики во внутренних действиях.

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

  1. Сначала используйте Действие Get Metadata для получения списка только папок.
  2. Передайте результат действия Get Metadata в список элементов действия ForEach. Далее каждая итерация представляет собой одну папку для обработки.
  3. На панели внутренних действий действия ForEach используйте другое действие Get Metadata для получения списка файлов в папке.
  4. Вызовите действие Execute Pipeline, которое имеет параметр массива, и передайте ему массив этих имен файлов.
  5. Затем в дочернем конвейере можно использовать другое вложенное действие (например, ForEach) с переданным списком массивов для итерации файлов и выполнения одного или нескольких наборов внутренних действий.

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

Screenshot showing an example parent pipeline calling a child pipeline in a ForEach loop.

Дочерний конвейер будет выглядеть примерно так, как в приведенном ниже примере.

Screenshot showing an example child pipeline with a ForEach loop.

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