Фабрика данных Azure: несогласованный порядок результатов после действия копирования внутри действия foreach

Я пытаюсь заполнить таблицу фактов для хранилища данных в фабрике данных Azure.

В процессе я использую действие поиска, которое просматривает таблицу базы данных и выводит каждую строку одну за другой для действия foreach. Вход для действия foreach выглядит так:

Конвейер

Внутри действия foreach у меня есть действие копирования. В этом действии копирования, используя значения Model и Make для каждой строки из действия поиска, я использую приведенный ниже запрос для поиска в моей таблице измерений первичного ключа Car_ID:

Запрос, используемый внутри действия копирования для поиска первичного ключа:

Я получаю правильный Car_ID из таблицы измерений и копирую его в пустую таблицу, которую собираюсь скопировать в свою таблицу фактов. Я могу заставить это работать идеально, но единственная проблема заключается в том, что порядок в моей таблице sink, которая является пустой. Исходная таблица - это таблица измерений, о которой я упоминал ранее. Отладка выполнения конвейера сообщает мне, что входные данные для foreach находятся в желаемом построчном порядке, и соответствующий Car_ID первичный ключ, полученный в результате поиска, также является правильным; однако при копировании Car_ID в sink я теряю порядок, который необходимо поддерживать, поскольку я хочу скопировать этот результирующий столбец в свою таблицу фактов.

Вывод поиска / ввод в foreach:

Вывод из поиска / ввод в foreach

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


comment
Можете ли вы обновить свой вопрос, указав структуру исходной таблицы? Например, имена и типы столбцов в формате таблицы MD (предпочтительно) или в виде скриншот?   -  person Connor Low    schedule 23.02.2021
comment
Знаете ли вы, что по умолчанию цикл For Each в ADF выполняется параллельно? Разработан ли ваш процесс, чтобы справиться с этим? Если нет, вы можете установить свойство «Последовательно» для действия «Для каждого», но тогда вы теряете одно из основных преимуществ действия - то есть возможность выполнять параллельно.   -  person wBob    schedule 23.02.2021
comment
Привет, я предполагаю, что ваш сток - это таблица в реляционной БД? Если это так, то нет понятия встроенного порядка для записей в таблице. Если вы запрашиваете таблицу, записи могут выбираться в другом порядке при каждом запуске запроса. Если порядок важен для вашего процесса, вам необходимо добавить столбец, который явно определяет порядок (например, порядковый номер), который вы хотите поддерживать, а затем ЗАКАЗАТЬ этот столбец в любом запросе.   -  person NickW    schedule 23.02.2021
comment
Если мой ответ полезен для вас, надеюсь, вы сможете принять его как ответ (щелкните галочку рядом с ответом, чтобы переключить его с серого на заполненный). Это может быть полезно для других членов сообщества. Спасибо.   -  person Leon Yue    schedule 24.02.2021


Ответы (1)


Нажмите Последовательно в разделе "Для каждого активного":  введите описание изображения здесь

введите описание изображения здесь

Я попробовал, и вот результат сравнения:  введите описание изображения здесь

HTH.

person Leon Yue    schedule 23.02.2021