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

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

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

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

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

Совет

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

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

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

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

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

Параллельное выполнение приемников

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

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

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

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

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

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