Если нужно выбрать только новые и обновлённые записи из источника (а я так думаю, что именно с целой таблицей источником приходится сравнивать снепшот), то самый наивный способ - исключить существующие записи антиджоином по первичном ключу с обеих сторон
Source left anti join target on (primary, key, fields)
Union
Target left anti join source on (primary, key, fields)
Так получим из первого подзапроса записи на вставку из второго - на удаление. Соответственно, можно добавить поле с константными значениями, которые промаркируют записи по этим двум категориям