проблема сопоставления столбцов в 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"

person Tim F    schedule 12.12.2018    source источник
comment
Вы пробовали инструмент для копирования данных? Это поможет вам исключить несопоставленный столбец в наборе данных приемника.   -  person Fang Liu    schedule 19.12.2018
comment
Да, независимо от метода до сих пор, я не могу выборочно отображать столбцы, если оба они не равны 1: 1. Я обхожу это, используя sproc для сопоставления после загрузки данных во временную таблицу, но это кажется ненужным дополнительным шагом.   -  person Tim F    schedule 20.12.2018


Ответы (3)


Вы пробовали отображать столбцы в графическом редакторе? Просто щелкните действие копирования, затем сопоставление и нажмите синюю кнопку «Импорт схем». Это импортирует обе схемы и позволит вам выбрать, какой столбец из исходных карт, с каким столбцом из приемника.

Надеюсь, это помогло!

Добавлено изображение для уточнения

person Martin Esteban Zurita    schedule 13.12.2018
comment
Как я уже упоминал в посте, я обновлял схемы несколько раз. Проблема в том, что сами исходные файлы не совпадают точно, несмотря на то, что схемы обновлены для точного совпадения. - person Tim F; 13.12.2018

В наборе данных приемника удалите столбцы, которые вы не хотите отображать.

удалите столбцы, которые не требуются в приемнике, выбрав и затем нажав кнопку удаления

[удалите столбцы, которые не требуются в приемнике, выбрав и затем нажав кнопку удаления [1]

Для того, чтобы копия работала плавно.

1. Исходный набор данных должен иметь все столбцы в одной и той же последовательности.
2. Все столбцы, выбранные в наборе данных приемника, должны быть сопоставлены.

person rmehra76    schedule 26.12.2018

Похоже, вы пытались извлечь 16 столбцов из исходной таблицы в целевую. Если ваша цель - Sql Server или Azure Sql DB, вы можете попробовать следующие настройки:

  • Задайте исходную структуру как 21 столбец в CSV-файле.
  • Установите сопоставление столбцов с сопоставлением 16 столбцов в качестве требуемых данных.
  • Задайте целевую структуру как 16 столбцов, которые имеют такое же имя и порядок в определении сопоставления столбцов.
person Yingqin    schedule 13.12.2018
comment
Я хотел бы использовать исходный файл как есть, без какого-либо дополнительного сопоставления. Почему я не могу просто выбрать, какие столбцы из источника я хочу сопоставить с местом назначения? Для меня не имеет смысла, что я не могу выбирать, какие столбцы я хочу сопоставить, независимо от фактического количества столбцов - person Tim F; 13.12.2018