ходим в метастор, всё в хайве
правда в отличии от стандартного метастора структура
/hive/metastore/table/partition1/partition2/__versionN__/files.parquet
versionN чисто наша синтетика
при чтении конечно запрашивается (table,partition1,partition2)
запись конечно проходит не через .saveAsTable, а через свой лоадер
он создаёт новый фолдер с versionN+1
заливает туда данные
пытается по CAS поменять куда указывает (table,partition1,partition2)
старые версии периодически чистятся
это позволяет избежать проблем когда из спарка джоба уже запущена, но кто-то начинает вливать новые данные
работает с hive/spark/impala
правда импалу нужно инвалидировать периодически метаданную, чтобы увидела новые версии
понимаем что на опенсорс тулы нужно уходить, тот же айсберг или худи
но пока импала всё стопорит