Перейти к основному содержимому

Почему я не могу просто писать DML в своих трансформациях?

Операторы select делают трансформации доступными

Больше людей умеют писать операторы select, чем , что делает слой трансформации доступным для большего числа людей!

Написание хорошего DML сложно

Если вы сами пишете / DML, вы можете столкнуться с такими проблемами, как:

  • Что произойдет, если уже существует? Или эта таблица уже существует как , но теперь я хочу, чтобы это была таблица?
  • Что если схема уже существует? Или, стоит ли мне проверять, существует ли схема?
  • Как я могу заменить модель атомарно (так, чтобы не было простоя для тех, кто запрашивает таблицу)?
  • Что если я хочу параметризовать свою схему, чтобы запускать эти трансформации в среде разработки?
  • В каком порядке мне нужно запускать эти операторы? Если я запускаю cascade, не сломает ли это другие вещи?

Каждую из этих проблем можно решить, но вряд ли это будет лучшим использованием вашего времени.

dbt делает больше, чем просто генерирует SQL

Вы можете тестировать свои модели, генерировать документацию, создавать снимки и многое другое!

Вы уменьшаете зависимость от поставщика

Диалекты SQL, как правило, больше всего расходятся в DML и DDL (а не в операторах select) — посмотрите пример здесь. Пишя меньше SQL, вы можете облегчить миграцию на новую технологию баз данных.

Если вам действительно нужно написать пользовательский DML, в dbt есть способы сделать это с помощью пользовательских материализаций.

0