Параллельно обрабатывать таблицы, используя Azure Data Factory, один конвейер, один блокнот данных? - PullRequest
1 голос
/ 13 января 2020

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

У меня уже есть конвейер Azure фабрики данных (ADF), который получает список таблиц в качестве параметра, устанавливает каждую таблицу из списка таблиц в качестве переменной, а затем вызывает один отдельный блокнот (который выполняет простые преобразования ) и передает каждую таблицу последовательно в этот блокнот. Проблема в том, что он преобразует таблицы последовательно (одна за другой), а не параллельно (все таблицы одновременно). Мне нужно, чтобы таблицы обрабатывались параллельно.

Итак, у меня следующие вопросы: 1) Можно ли запускать один и тот же блокнот Databricks несколько раз в один и тот же момент времени (каждый раз с другая таблица в качестве параметра) из Azure Фабрика данных? 2) Если да, то что мне нужно изменить в моем конвейере или записной книжке, чтобы он работал?

Заранее спасибо:)

Параметры

ADF Parameters

Переменные

variables

Установить переменные таблицы и записную книжку

enter image description here

Настроить последовательный

Configure Sequential

Последовательное отключено с счетчиком пакетов = пусто

Если задано значение "последовательный" и счетчик партий = пусто, и при пропуске двух таблиц конвейер "успешно работает" msgstr "но только одна таблица преобразуется (даже если я добавлю несколько таблиц в список таблиц). «Задать переменную» правильно отображается дважды, по одному разу для каждой таблицы. Но Orchestrate показывает дважды для одной и той же таблицы.

enter image description here

Последовательное отключение с счетчиком партий = 2

Когда настроенный как "последовательный" и Batch Count = 2, и передающий две таблицы, конвейер завершается ошибкой на второй итерации, но он также пытается преобразовать ту же таблицу два раза. «Задать переменную» правильно отображается дважды, по одному разу для каждой таблицы. Но Orchestrate показывает дважды для одной и той же таблицы.

Sequential Unchecked with Batch Count = 2

Последовательная проверка или Количество партий = 1

Если Я оставляю Sequential Checked или Batch Count = 1, тогда конвейер работает правильно и выполняет преобразования для всех таблиц, но обработка происходит последовательно (как и ожидалось). Пример ниже для 5 таблиц.

Sequential Checked or Batch Count =1

Example of Sequential Checked or Batch Count =1

Установить переменную задачу

Set Variable Task Overview

Таблица переменных передана со значением @item ()

Variable table passed with value @item()

Переменная "таблица", определенная как строка

Variable

Параметр "table_list"

Parameter

Параметры трубопровода

Pipeline Run Parameters

1 Ответ

2 голосов
/ 14 января 2020

Я решил это, используя «Lookup» для SQL таблиц вместо «Set Variable». На рисунке ниже показан параллельный запуск 5 таблиц с использованием одного ноутбука.

enter image description here

...