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

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

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

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

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

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

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

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

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

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

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

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

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

Нашли ошибку?

0
Loading