dbt против хранимых процедур! Стоит ли переносить ваш SQL на dbt?
The Data and AI Guy
0:00 / 0:00
dbt против хранимых процедур! Стоит ли переносить ваш SQL на dbt?
1 840 просмотров · 2 нед. назад
The Data and AI Guy
31,1 тыс. подписчиков
1 840 просмотров · 2 нед. назад
Сейчас 2 часа ночи, и ночная хранимая процедура остановилась на шаге 14 из 20. Шаги с 1 по 13 уже зафиксированы. Безопасно ли просто запустить её снова?
Это сравнение dbt и хранимых процедур на одних и тех же данных, выполненное в реальном режиме на Postgres. Хранимая процедура — это список шагов, изменяющих таблицы; модель dbt — это оператор SELECT, описывающий содержимое таблицы, упорядоченный по ref() и source(). Мы преобразуем 20-шаговую процедуру в шесть моделей dbt, шаг за шагом, следуя руководству по миграции dbt: INSERT становится моделью, UPDATE — CASE, DELETE — фильтром, а MERGE — инкрементальной моделью с уникальным ключом. Затем проводится сравнение по тестированию, отслеживанию происхождения, восстановлению и анализу кода, включая то, что происходит при повторном запуске неудачной ночной процедуры (процедура удваивает дневную выручку, повторная попытка dbt — нет). Наконец, два типа процедур, которые dbt не следует заменять, лазейки для обхода ограничений dbt и вердикт.
⏱️ Разделы
0:00 - Шаг 14 из 20 завершился с ошибкой в 2 часа ночи
1:00 - Что такое хранимая процедура на самом деле
2:10 - Как работает модель dbt: SELECT плюс ref()
3:12 - Шаги против состояния: реальная разница
4:23 - Преобразование INSERT, UPDATE, DELETE и MERGE
6:17 - Сравнение: тестирование и происхождение
7:11 - Восстановление: повторный запуск неудачной ночи
8:03 - Проверка кода и CI
8:34 - Когда хранимые процедуры все еще выигрывают
9:52 - Ловушки для обхода ограничений dbt: хуки и операция выполнения
10:21 - Вердикт: мигрировать или оставить?
11:27 - Краткий обзор
12:00 - Честные ограничения
🔗 Ссылки
dbt: https://www.getdbt.com
Руководство dbt по миграции с хранимых процедур: https://docs.getdbt.com/guides/migrat...
dbt audit_helper: https://hub.getdbt.com/dbt-labs/audit...
tSQLt: https://tsqlt.org
PostgreSQL: https://www.postgresql.org
SQL Server SET XACT_ABORT: https://learn.microsoft.com/en-us/sql...
#dbt #dbtvsstoredprocedures #storedprocedures #SQL #SQLServer #Postgres #TSQL #datatransformation #ETL #ELT #инкрементальныемодели #инженернаяподготовкаданных #аналитическаяинженерия #конвейерданных #миграцияdbt