Использование потоков данных в конвейерах

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

Параллельное выполнение потоков данных

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

Если потоки данных выполняются параллельно, рекомендуется не включать время Azure IR в свойство 'live', так как это приводит к нескольким неиспользуемым тёплым пуллам.

Подсказка

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

Последовательное выполнение потоков данных

Если вы выполняете действия потока данных в последовательности, рекомендуется задать TTL в конфигурации Azure IR. Служба повторно использует вычислительные ресурсы, что приводит к более быстрому запуску кластера. Каждое действие по-прежнему изолировано и получает новый контекст Spark для каждого выполнения.

Перегрузка одного потока данных

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

Параллельное выполнение обработчиков данных

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

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

В конвейере выполните действие потока данных в разделе "Свойства приемника" — это возможность включить параллельную загрузку приемника. При включении функции "параллельное выполнение" вы указываете потокам данных записывать информацию в подключенные приемники одновременно, а не поочередно. Чтобы использовать параллельный параметр, приёмники должны быть сгруппированы и подключены к одному потоку через новую ветвь или условное разделение.

Доступ к шаблонам базы данных Azure Synapse в конвейерах

Вы можете использовать шаблон базы данных Azure Synapse при создании конвейера. При создании нового потока данных в параметрах источника или приемника выберите "Рабочая база данных". В раскрывающемся списке базы данных перечислены базы данных, созданные с помощью шаблона базы данных. Опция базы данных рабочей области доступна только для новых потоков данных. Она недоступна при использовании существующего конвейера из коллекции студии Synapse.

См. другие статьи потока данных, связанные с производительностью: