REPLACE TABLE в Delta lake вместо DROP + RECREATE 2/2
🔸 Какое решение есть у delta table? Как и во многом другом, современные инструменты дают простой интерфейс для решения проблем, а сами делают тяжёлую работу под капотом. Будто говорит: "Хочешь пересоздать таблицу? Так именно это и напиши"
REPLACE TABLE table_name
as select * from ...
Помимо того, что поддерживается одновременный доступ на чтение для многих запросов (concurrently), операция выполняется в транзакции (см. ACID), ещё и история сохраняется — можно откатить к предыдущей версии одной командой (см. time travel in Delta tables).
В dbt, например, включается единственным конфигом на весь проект:
on_table_exists: replace
В хорошее время живём)
p.s. Delta формат открытый и бесплатный, можно использовать уже завтра без доплаты за остальной Databricks