Проблема ADFv2 с отображением столбцов (репостинг)

У меня есть исходник.csv с 21 столбцом и таблица назначения с 25 столбцами.

Не ВСЕ столбцы в источнике имеют дом в таблице назначения, и не все столбцы в таблице назначения происходят из источника.

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

Я попытался изменить схемы как источника, так и места назначения, чтобы они соответствовали друг другу, но это все равно дает ошибку, потому что у фактического источника больше столбцов, чем у места назначения или наоборот.

Возможно, это не самый эффективный способ сделать это, но я не знаю, как заставить это работать.

Да, я пробовал пользовательский интерфейс, да, я пробовал схемы столбцов, нет, я не могу изменить исходный файл и не должен это делать.

Код ошибки, который возвращается, является некоторой вариацией:

"errorCode": "2200",
    "message": "ErrorCode=UserErrorInvalidColumnMappingColumnCountMismatch,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Invalid column mapping provided to copy activity: '{LONG LIST OF COLUMN MAPPING HERE}', Detailed message: Different column count between target structure and column mapping. Target column count:25, Column mapping count:16. Check column mapping in table definition.,Source=Microsoft.DataTransfer.Common,'",
    "failureType": "UserError",
    "target": "LoadPrimaryOwner"

1 ответ

Тим Ф. Пожалуйста, просмотрите утверждения в этом сопоставлении схемы в операции копирования:

Сопоставление столбцов поддерживает сопоставление всех или подмножеств столбцов в "структуре" исходного набора данных со всеми столбцами в "структуре" набора данных приемника.

Ниже приведены условия ошибки, которые приводят к исключению:

1. Результат запроса хранилища данных источника не имеет имени столбца, указанного в разделе "Структура" входного набора данных.

2. В хранилище данных приемника (если с предопределенной схемой) нет имени столбца, указанного в разделе "Структура" выходного набора данных.

3. Либо меньше столбцов, либо больше столбцов в "структуре" набора данных приемника, чем указано в отображении.

4. Двойное отображение.

Итак, вы можете знать, что все столбцы в наборе данных приемника должны быть сопоставлены. Поскольку вы не можете изменить пункт назначения, возможно, вам не придется бороться с неподдерживаемой функцией.

Конечно, вы могли бы использовать stored procedure упоминается в вашем описании. Это идеальный обходной путь и не очень хлопотно. О деталях использования вы можете сослаться на мои предыдущие случаи:

1. Копия действия фабрики данных Azure. Оцените столбец в таблице приемников с помощью @pipeline (). TriggerTime

2. При копировании фабрики данных Azure не удалось сопоставить строки (из csv) с полем uniqueidentifier приемника таблицы SQL Azure.

Кроме того, если вы действительно не хотите избегать вышеуказанного решения, вы можете отправить отзыв команде ADF о желаемой функции.

Другие вопросы по тегам