Новый плагин dbt для VS Code: опыт, которого мы все ждали
Привет, сообщество!
Меня зовут Бруно, и, возможно, вы видели мои посты про dbt в LinkedIn. Если нет — давайте познакомимся. Я начал работать с dbt более 3 лет назад. В то время я только осваивал этот инструмент и, чтобы лучше в нём разобраться, начал создавать материалы, которые помогали мне учиться. Один из них — шпаргалка по dbt — и стал отправной точкой моего пути в сообществе.
От этой шпаргалки я перешёл к созданию самых разных материалов, участию и активному взаимодействию с сообществом, и в итоге дважды получил награду dbt community award. Я очень благодарен за это и по-настоящему горжусь.
С момента приобретения SDF Labs компанией dbt Labs я ждал дня, когда мы увидим результат слияния этих двух компаний. Спойлер: это dbt Fusion engine — и он оказался даже лучше, чем я ожидал.
Developer experience в dbt до эпохи Fusion
Если вы когда‑нибудь начинали dbt‑проект, велика вероятность, что ваш путь был похож на мой: клонирование jaffle_shop, открытие проекта в VS Code и первый запуск dbt run (на самом деле второй, потому что я знаю, что в первый раз вы забыли запустить dbt deps). Это и есть обряд инициации в dbt, наше «hello world».
Вы поигрались с staging models, таблицами orders и customers. Но давайте честно: developer experience в таком сетапе всегда был немного… неуклюжим.
Вы хотели посмотреть lineage проекта — одну из самых крутых фич dbt — и для этого нужно было запускать dbt docs generate, затем serve и открывать документацию в браузере. Внесли изменения? Повторяйте всё заново.
Хотели посмотреть метаданные проекта? Нужно было либо снова полагаться на dbt docs (и весь этот процесс), либо собирать какое‑то кастомное решение на основе manifest.json.
Переход на dbt Cloud (теперь это просто dbt platform) упростил работу. Встроенная среда Studio IDE с интеграцией с git позволяет проще компилировать модели и просматривать результаты. Под моделью есть автоматически обновляемая вкладка с графом зависимостей, а dbt Explorer, теперь переименованный в Catalog, значительно улучшил работу с документацией. Также доступно множество других мощных возможностей для оркестрации, мониторинга, CI/CD и многого другого.
Облачная платформа dbt platform стала большим шагом вперёд, но даже при этом многие из нас по-прежнему предпочитали собственные среды разработки. Нам нравится использовать свои темы оформления, расширения VS Code и терминалы, но это означало отказ от всех удобных облачных возможностей на время разработки. Печальный компромисс.
Мы уже успели перейти на платформу dbt platform и вернуться в терминал, а некоторые проблемы так и остались. Рассмотрим типичную ситуацию при изменении модели dbt: вы забыли запятую[1]. Об ошибке вы узнаете только после того, как dbt попытается выполнить эту модель в вашем хранилище данных, но dbt не сможет этого сделать, пока ваш кластер не будет запущен. В итоге сообщение о пропущенном знаке препинания вы получите лишь спустя целую минуту.
[1]: потому что вы используете trailing commas вместо leading commas — их сложнее заметить, и вообще я слишком много говорю про войну запятых.
Всё это постоянное «пинг‑понг» взаимодействие между dbt и платформой замедляло работу над проектом.
Именно поэтому этот новый релиз — настолько важное событие. Он решает все перечисленные проблемы и добавляет вещи, о необходимости которых я даже не догадывался, пока не увидел их вживую.
Новая эра разработки с dbt
После приобретения SDF Labs и с новым акцентом на удобство разработки dbt Labs представила свой новый движок — Fusion. Этот движок был создан с нуля на Rust, а его интеллектуальные возможности сделают dbt мощнее независимо от того, где вы его запускаете. Использовать движок Fusion можно разными способами, но лучший из них — с помощью также анонсированного расширения для VS Code.
Fusion engine в сочетании с расширением для VS Code — это то, как, по моему мнению, люди будут работать с dbt в будущем. И могу сказать честно: это ощущается как тот самый опыт, которого мы все так долго ждали.
После того как попробуешь, сложно представить возвращение назад. Работать с dbt в VS Code без этого расширения теперь просто не имеет смысла.
В нём есть множество возможностей, которые упрощают работу, повышают эффективность, позволяют разрабатывать быстрее и тратить меньше ресурсов. Но давайте расскажу о моих любимых.
Отлов SQL‑ошибок в реальном времени
Здесь выбор был очевиден. Больше не нужно ждать, пока платформа отладит ваш код за вас. Если вы ошиблись в названии колонки или перепутали порядок параметров функции, вы увидите ошибку ещё до запуска.
Это возможно потому, что Fusion больше не воспринимает SQL просто как строку — он действительно его понимает. Плюс, он показывает полезную информацию о самой ошибке.
На мой взгляд, это самое большое улучшение во всём этом движке.
Lineage моделей и колонок
Ещё одна моя любимая функция — просмотр графа зависимостей. Если вы пользовались платформой dbt, то почувствуете себя как дома. А если вы использовали dbt Core, то наконец-то вам больше не придётся генерировать документацию с помощью dbt docs, чтобы визуализировать зависимости.
Теперь прямо в VS Code есть вкладка lineage, которая показывает lineage проекта в интерактивном и «живом» виде. Можно использовать lenses — это удобный способ визуализировать проект по разным атрибутам, например resource_type или materialization.
И ещё одна вещь, которую я не ожидал здесь увидеть, но очень рад, что она есть, — column‑level lineage. Не просто откуда берутся колонки, но и как они меняются: переименовываются, трансформируются или прокидываются дальше без изменений.
Это невероятно полезно для отладки трансформаций или для понимания того, как формируется ключевая метрика на протяжении всей цепочки моделей.
Мгновенный рефакторинг
Ладно, покажу ещё одну вещь! Бывало ли у вас так, что вы хотели переименовать модель или колонку, но она используется во множестве downstream‑объектов, и вы отказывались от идеи, потому что не хотелось всё рефакторить или было страшно что‑нибудь сломать?
Теперь, благодаря глубокому пониманию SQL в dbt Fusion, вы можете переименовать модель или колонку, а расширение автоматически отрефакторит все downstream‑зависимости. И не переживайте: перед применением изменений расширение покажет их превью, чтобы вы были уверены, что всё делается именно так, как нужно.
У этого расширения есть и множество других возможностей: мгновенная навигация по моделям, автодополнение буквально всего, переименование моделей и колонок с предупреждением о влиянии на проект, предпросмотр моделей и CTE и многое другое — часть этого уже подробно описана в других блогах. К тому же расширение только что вышло, так что, уверен, нас ждёт ещё много улучшений.
Заключение: новый стандарт
Это расширение меняет само ощущение от работы с dbt. Оно объединяет производительность, контекст и интерактивность таким образом, что dbt наконец‑то чувствует себя «родным» внутри современного developer‑окружения. И самое приятное — это только начало.
Fusion engine уже делает dbt быстрее и умнее «под капотом». И он открывает дорогу к более плавному, уверенному и интуитивному процессу разработки. Меньше переключений контекста. Меньше подводных камней. Больше времени на размышления о данных, а не об инструментах.
Если вы когда‑нибудь писали модели в текстовом редакторе и думали, что dbt «просто должен понимать больше», — это для вас.
Если вы полагались на CLI, но вам не хватало полноценного автокомплита, — это для вас.
И если вы хотели лучшее из двух миров — гибкость Core и мощь Cloud, — возможно, это станет вашим новым стандартом. Даже если вы используете dbt Cloud, это выводит dbt-core на совершенно новый уровень.
Мы с огромным интересом ждём, как сообщество будет использовать всё это. Попробуйте. Потестируйте. Делитесь тем, что работает, и тем, чего не хватает.
Это расширение будет постоянно обновляться, так что следите за новостями.
Это тот самый опыт, которого мы все ждали.
Бруно — ведущий Data Engineer в phData и недавно создал платформу для обучения dbt под названием DataGym.io.




