Добавочная загрузка и потоки из ADF в Snowflake

Я пытаюсь постепенно загружать файлы из моего большого двоичного объекта Azure в таблицу Snowflake. После этого в Snowflake я помещаю потоки в эту таблицу и загружаю данные в целевую таблицу.

Я не могу выполнять инкрементную загрузку из Azure в Snowflake. Я пробовал много способов, но не работал. Я прикрепляю изображения двух моих разных способов (конвейеров), чтобы сделать то же самое.

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

В этом конвейере я попытался создать условное разбиение

Оба эти варианта не сработали. Пожалуйста, подскажите, как это сделать.

1 ответ

Вы можете добиться этого, выбрав « Разрешить обновление» в настройках приемника в разделе «Метод обновления».

Ниже приведены мои репродукционные детали:

  1. Это промежуточная таблица в виде снежинки, в которую я загружаю дополнительные данные.

  1. Исходный файл - Дополнительные данные

a) Этот файл содержит записи, которые существуют в промежуточной таблице ( StateCode = 'AK' & 'CA' ), поэтому эти 2 записи должны быть обновлены в промежуточной таблице с новыми значениями в Flag.

б) Остальные 2 записи ( StateCode = 'FL' и 'AZ' ) должны быть вставлены в промежуточную таблицу.

  1. Настройки источника потока данных:

  1. Добавление DerivedColumnпреобразование для добавления столбца modified_date, который находится не в исходном файле, а в таблице приемника.

  1. Добавление AlterRow Преобразование: когда вы используете метод Upsert, преобразование AlterRow является обязательным для включения условия upsert.

a) В состоянии вы можете упомянуть, что нужно вставлять строки только в том случае, если уникальный столбец (StateCode в моем случае) не равен нулю .

  1. Добавление sink преобразование в AlterRow с промежуточной таблицей Snowflake в качестве набора данных приемника.

a) В настройках приемника выберите Метод обновления как Разрешить вставку и укажите столбец Ключ (уникальный), на основе которого должно произойти обновление в таблице приемника.

  1. После запуска конвейера вы можете увидеть результаты в раковине.

a) Поскольку StateCode AK и CA уже существует в таблице, обновляются только другие значения столбцов (flag и modified_date) для этих строк .

б) StateCode AZ и FL не найдены в таблице стадии (приемника), поэтому эти строки вставляются .

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