Я нашел способ добиться того, чего хочу. Возможно, это не лучший подход, но он работает.
Кажется, что трудно иметь дело с JSON, который имеет несколько иерархий в качестве источника для операций копирования данных. Вы можете выбрать один уровень повторяющихся данных для сопоставления со структурой таблицы (свойство «Ссылка на коллекцию» на вкладке «Сопоставление»).
В моем сценарии были дополнительные повторяющиеся данные в данных, которые я отображал в своей таблице. Я обновил отображение, чтобы записать дочерние данные JSON в текстовое поле в моей таблице SQL. Для этого мне нужно было использовать редактор Azure Data Factory JSON для моего конвейера. Вы можете получить доступ к этому из ссылки «Код» в верхнем правом углу визуального редактора конвейера.
Я добавил следующую строку после закрывающей скобки для массива «mappings» для моей операции копирования: «mapComplexValuesToString» : true
Полный путь к массиву сопоставления в определении действия - typeProperties - translation - mappings. После добавления нового элемента убедитесь, что ваши запятые верны.
При таком подходе в моей таблице SQL была строка для каждого элемента массива в моей коллекции ссылок. Скалярные дочерние элементы в элементах массива отображаются в столбцы таблицы, а дочерний элемент JSON записывается в столбец данных в той же таблице.
Чтобы извлечь нужные значения в дочернем элементе JSON, я создал представление SQL, в котором используется синтаксис CROSS APPLY OPEN JSON. Это позволяет мне обрабатывать JSON в поле данных аналогично связанной таблице. Вы можете указать структуру, в которой находится ваш JSON. Если у вас есть вложенные данные в вашем JSON, вы можете применять один и тот же подход для каждого уровня.
Команда OPEN JSON поддерживается только в последних версиях SQL Server. Я использую Azure SQL, так что у меня работает.