Многопоточность не происходила на SQL Server, когда операция копирования запускалась из конвейера ADF с источником SQL Server и целью ADLS? - PullRequest
0 голосов
/ 20 июня 2019

У меня есть операция копирования в конвейере ADF (фабрика данных Azure) с локальным SQL Server в качестве источника и ADLS в качестве цели.

Мы передали SQL-запрос с простым условием where в операции копирования, которая будет выполняться на SQL Server, и результаты будут переданы в ADLS в паркет.

Когда SQL-запрос выполнялся на исходном сервере sql, мы видели, что многопоточность не происходит. то есть SPID, который работает на SQL Server, не отображается с несколькими потоками (параллельными потоками).

Очень редко мы наблюдали, что он работает с несколькими потоками (один и тот же spid отображается с несколькими потоками, т. Е. Больше строк на данный отдельный spid), и в большинстве случаев он не работает с многопоточностью (1 строка на каждый отдельный spid).

Мы не могли понять, на каком основании он решает использовать многопоточность или нет?

Есть ли какие-либо ограничения в конвейере ADF для запуска многопоточности или нет?

Следующая конфигурация также указывает, что параллелизм должен происходить для запросов SQL.

name                            value_in_use
cost threshold for parallelism       5
max degree of parallelism            4

Пример запроса SQL, который мы выполняем (замененные имена> ..

SELECT column1, <column2>, <column15>
FROM   FactTablename (NOLOCK)
WHERE  XXId between 8834 AND 8863
  AND  yyID % 4 = 2

Многопоточность должна выполняться для запросов SQL, выполняющихся каждый раз на SQL Server. Также обратите внимание, что выполняемый нами запрос возвращает ~ 24 миллиона записей, так что это хороший набор данных, который выполняется немного дольше и является хорошим кандидатом для параллелизма / многопоточности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...