Оркестровка процессов Azure

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

  1. Увеличьте масштабирование пула пакетной службы Azure для предоставления необходимых узлов.
  2. Выполнить собственный код .Net, который вызывает сервер для получения списка задач. Эти задачи меняются ежедневно. Поместите эти задачи в очередь в пакетном пуле.
  3. Выполните каждую задачу (настраиваемый код .Net) в пуле пакетов. Каждая задача создает данные в учетной записи хранения Azure.
  4. Уменьшите пакетный пул, поскольку он больше не требуется.
  5. Запуск / масштабирование хранилища данных
  6. Массовый импорт данных в хранилище данных (предполагается, что будет использоваться комбинация PolyBase и BCP).
  7. Агрегируйте данные и создавайте выходные данные в учетной записи хранения Azure.
  8. Приостановить / уменьшить масштаб хранилища данных

В настоящее время я сравниваю хранилище данных с модулями Runbook, чтобы выполнить вышеуказанное.

Я считаю, что модули Runbook очень примитивны с точки зрения их визуализации во время разработки и выполнения.

Я считаю, что хранилище данных визуально намного удобнее. Однако нарезка данных кажется огромным излишеством. Я просто хочу, чтобы процесс выполнялся, скажем, в 8 утра каждое утро. Я не хочу, чтобы его пытались вывести за прошедшие дни (например, если я внесу поправки в шаблон). Я ожидаю, что хранилище данных также будет лучше справляться с сбоями / возобновлением работы на протяжении всей цепочки действий.

Есть ли какие-то другие подходы, которые я должен рассмотреть здесь / рекомендации?

Спасибо Дэвид


person DavidReid    schedule 11.05.2017    source источник


Ответы (1)


Это довольно широкий вопрос, поэтому я дам широкий ответ ...

Фабрика данных Azure (ADF), безусловно, может выполнять большую часть того, что вам нужно из приведенного выше списка, с некоторыми исключениями / настройками, как показано ниже.

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

Пользовательский код .Net, упомянутый в пунктах 3 и 4. Вы можете записать их как пользовательские действия ADF, которые передаются в пакетную службу для выполнения. Так что позвольте ADF обрабатывать эти DLL и т. Д. Вместо того, чтобы иметь что-то еще, что создает пакетные задачи, а ADF просто выполняет их. ADF справится со всем этим.

Подробнее о создании настраиваемых действий здесь: https://www.purplefrogsystems.com/paul/2016/11/creating-azure-data-factory-custom-activities/

Для хранилища данных ADF имеет готовую функциональность для выполнения ваших запросов и позволяет передавать параметры хранимой процедуре и т. Д.

Наконец, для масштабирования и приостановки DW, я думаю, вам понадобится здесь Azure Automation. Я не знаю ничего в ADF, что могло бы предложить такой уровень контроля, если вы снова не сломаете .Net.

Надеюсь, это подскажет вам, как прогрессировать.

person Paul Andrew    schedule 12.05.2017
comment
Спасибо за ваш ответ. Доволен написанием кастомного .Net. Прежде чем я помечу это как ответ, за исключением модулей Runbook, есть ли другие альтернативы фабрике данных, предназначенные для оркестрации процессов? Мне не нравится аспект срезов Фабрики данных (может быть, из-за непонимания), но я беспокоюсь о таких проблемах, как не запускать на сб / вс, или если я создаю конвейер с startDate в прошлом, он хочет запустить все предыдущие даты также ... когда на самом деле я просто хочу, чтобы это началось сегодня (я знаю, что могу создать его с правильным startDate, но обеспокоен изменением существующего). - person DavidReid; 13.05.2017
comment
PowerShell здесь ваш друг. При необходимости вы можете переопределить срезы с помощью командлетов ADF. - person Paul Andrew; 14.05.2017