Я выполняю пользовательский код активности в ADF v2, используя пакетную службу. Всякий раз, когда это выполняется, создается только один CloudTask в моем пакетном задании, хотя у меня запущено более двух десятков параллельных методов. Есть ли способ создать несколько задач из одной пользовательской операции из ADF, чтобы обработка могла распространяться на все узлы в пакетном пуле
Я исправил пул с двумя узлами. Максимальные задачи также установлены на 8 для узла, а политика планирования также установлена на «Распространение». У меня есть только одна пользовательская задача в моем конвейере с Multiple Parallel.Invoke (почти две дюжины). Я надеялся, что это создаст несколько облачных задач и будет распределен по обоим моим узлам, так как оба узла являются одноядерными. Похоже, что когда каждое пользовательское действие выполняется в ADF, оно создает только одну задачу (CloudTask) для пакетной службы.
Моя другая надежда заключалась в использовании
https://docs.microsoft.com/en-us/azure/batch/tutorial-parallel-dotnet
и вручную создайте CloudTasks в моем консольном приложении и создайте несколько задач программно, а затем запустите это консольное приложение с пользовательской активностью ADF, но CloudTask использует JobId и Cmd. Хотелось что-то вроде следующего, но вместо передачи taskCommandLine я хотел передать имя метода C # и параметры для выполнения
string taskId = "task" + i.ToString().PadLeft(3, '0');
string taskCommandLine = "ping -n " + rand.Next(minPings, maxPings +
1).ToString() + " localhost";
CloudTask task = new CloudTask(taskId, taskCommandLine);
// Wanted to do CloudTask task = new CloudTask(taskId,
SomeMethod(args));
tasks.Add(task);
Кроме того, похоже, что мы не можем создавать облачные задачи с помощью .NET API для пакетной обработки в пользовательской активности ADF
Чего я хотел достичь?
У меня есть данные в таблице SQL Server, и я хочу выполнить для них различные преобразования, разрезая их по горизонтали или по вертикали (выбирая строки или столбцы). Я хочу запустить эти преобразования в Parallel (хочет иметь несколько экземпляров CloudTask, чтобы каждый из них мог работать с определенным столбцом независимо и после преобразования загрузить его
в другую таблицу). Но проблема в том, что, похоже, мы не можем использовать .NET Batch Service API в ADF, и кажется, что единственным способом является использование нескольких пользовательских действий в моем конвейере фабрики данных.