Да, конечно. В общем. есть глобальная партиция снапшота и нам надо, прочитать ее и выделить дельту относительно того, что уже было вычитано. И положить уже раскинув по партициям.
Выделить инкремент через join-очень дорогая операция, даже если, как по учебнику, это две бакетированые и сортированные таблицы.
Я советую пойти более дешёвым путем, а именно, найти поле, которое монотонно возрастает. Сохранить его максимальное полученное значение. И сделать фильтр по условию {поле > последнее наибольшее значение}. Это проверенная, можно сказать, классическая техника выделения инкремента, имеющая линейное время выполнения на любом наборе данных.
Если персистить последнее значение невозможно, то находите max({поле из снепшота}) и кидайте в условие фильтра. Все равно быстрее, чем join