Я пытаюсь сравнить содержимое двух таблиц SQL в Фабрике данных Azure (ADF), используя преобразование Exists в потоке данных, чтобы найти дельта-данные. Моя цель — переместить дельта-данные в приемник. Вот подробности:
Подход:
В потоке данных ADF для каждой таблицы я использую функцию sha2() для создания производного хеш-столбца следующим образом: производныйстолбец = SHA2(256, столбцы())
Базовый бизнес-кейс заключается в том, что строки могут быть одинаковыми, но данные в строках могут со временем меняться. Следовательно, я сравниваю весь контент, вычисляя хеш-столбец для всех столбцов, а не просто сравнивая уникальные столбцы.
Затем я использую преобразование Exists, чтобы найти в таблице 1 строки, которых нет в таблице 2.
Предполагается, что дельта-данные будут отправлены в приемник.
Проблема:
Когда я просматриваю данные в преобразовании «Существует», в результате я вижу множество строк. В моем случае он должен возвращать ноль строк, поскольку в таблице 1 (левая таблица) меньше строк, чем в таблице 2, и я точно знаю, что все эти строки и данные уже присутствуют в таблице 2.
Вопрос:
Дополнительная информация:
Любые идеи или предложения будут высоко оценены. Спасибо!
Скриншоты потока данных:
сделанный. обновил вопрос скриншотами


Я считаю, что проблема в том, что генерация кода неверна при использовании пользовательского выражения таким образом.
С пользовательским выражением
С селекторами столбцов Если вы отмените выбор параметра «Пользовательское выражение» и используете пользовательский интерфейс для выбора столбцов, синтаксис будет другим:
Я не думаю, что вам нужно собственное выражение, просто выберите столбцы из предоставленных списков.
Спасибо, Джоэл. Я попробовал оба подхода, но получил один и тот же результат. В моем случае имена обоих столбцов разные. Так что это не должно быть проблемой в любом случае.
Эта проблема при предварительном просмотре данных потока данных не является фактической ошибкой. Причина несоответствия данных при предварительном просмотре данных заключается в том, что в настройках отладки source1 и source2 ограничены случайными 1000 строками для предварительного просмотра данных. Это и есть причина не получения ожидаемого результата. При отладке конвейера с этим потоком данных вы не получите эту ошибку.

Обратитесь к MS doc относительно этих настроек отладки.
Спасибо, Асвин. Я запущу свой конвейер с этим предположением и проверю, работает ли он.
Надеюсь, это сработало. Преобразование Exists для небольшого набора данных также будет работать при предварительном просмотре данных. Вы можете проверить это, загрузив образцы детерминированных данных для source1 и source2 в настройках отладки.
Привет, Асвин! Да, похоже, это сработало. Спасибо. Я буквально пару дней думал, что моя логика какая-то неправильная :)
Можете ли вы поделиться снимком экрана потока данных и настроек Exists?