Azure Ограничения фабрики данных - PullRequest
0 голосов
/ 29 мая 2020

Я создал простой конвейер, который работает как таковой:

  1. Генерирует токен доступа через функцию Azure. Нет проблем.

  2. Использует действие Lookup для создания таблицы для итерации по строкам (4 столбца по 0,5 млн строк). Нет проблем.

  3. Для каждого действия (последовательное выключение, размер партии = 10):
  4. (внутри For Each): установите несколько переменных для проверки важных значений.
  5. (внутри For Each): передать значения через веб-активность, чтобы вернуть json.
  6. (внутри For Each): скопировать части сопоставления действий данных из json в набор данных-приемник (postgres).

Проблема: конвейер замедляется до обхода примерно после 1000 записей / вставок.

Я смотрел эту документацию относительно ограничений ADF.

  • ForEach items: 100,000
  • ForEach parallelism: 20

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

Кто-нибудь с большим опытом сможет дать мне некоторое представление о том, что здесь происходит?

1 Ответ

2 голосов
/ 01 июня 2020

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

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

Надеюсь, это помогло!

...