Проблема ADFv2 с отображением столбцов (репостинг) - PullRequest
0 голосов
/ 21 декабря 2018

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

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

Я не могу получить задание 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 Ответ

0 голосов
/ 21 декабря 2018

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

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

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

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

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

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

4.Дублирование сопоставления.

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

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

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

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

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

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