Быстрый старт для dbt Canvas
Введение
Canvas предлагает быстрый и наглядный способ создания аналитических моделей — опыт в analytics engineering не требуется! В этом руководстве вы узнаете:
- как получить доступ к Canvas и создать новую модель
- как ориентироваться в интерфейсе
- как строить модель с помощью операторов
- как закоммитить изменения в Git
- где найти модель и данные, созданные в Canvas
Предварительные требования для Canvas
Перед использованием Canvas убедитесь, что:
- У вас есть учетная запись dbt Enterprise или Enterprise+.
- У вас есть лицензия разработчика с настроенными учетными данными разработчика.
- Вы используете один из следующих адаптеров:
- Bigquery
- Databricks
- Redshift
- Snowflake
- Trino
- Вы можете получить доступ к Canvas и с адаптерами, не указанными в списке, однако на данный момент некоторые функции могут быть недоступны.
- В качестве провайдера Git вы используете GitHub, GitLab или Azure DevOps, подключенные к dbt по HTTPS. Подключения по SSH в настоящее время не поддерживаются для Canvas.
- У вас уже создан проект dbt, в котором был выполнен как минимум один запуск в среде Staging или Production.
- Вы проверили, что ваша среда разработки использует поддерживаемый release track, чтобы получать регулярные обновления.
- У вас есть доступ только на чтение к среде Staging с данными, чтобы иметь возможность выполнять команду
runв Canvas. Чтобы настроить необходимые уровни доступа для пользовательской группы Canvas, см. Настройка разрешений на уровне среды. - Включен переключатель функций на базе ИИ (для интеграции с Copilot).
Примеры в этом руководстве используют пример проекта Jaffle Shop из GitHub. Вы можете использовать и собственные данные, однако Jaffle Shop — это полнофункциональный проект, удобный для тестирования возможностей dbt. Уточните у администратора dbt, как импортировать его в проект в вашем окружении. Также администратор должен выполнить dbt run для проекта Jaffle Shop в окружении Production до начала работы, иначе вы не сможете ссылаться на source-модели.
Доступ к Canvas
Чтобы открыть Canvas:
- Нажмите Canvas в левом боковом меню.
- Справа нажмите Create new workspace. Откроется новый workspace с пустой моделью без названия. Для продолжения этого руководства дополнительных действий не требуется, но если вам нужно создать новую модель в других сценариях, нажмите +Add в верхней навигационной панели и выберите Create new model.
Навигация по интерфейсу
Canvas состоит из набора меню, которые активируются кликом по иконкам по периметру рабочей области canvas. Когда ни одно меню не активно, рабочая область выглядит следующим образом:
Нажмите на иконку, чтобы раскрыть соответствующий раздел или выполнить действие — в зависимости от её назначения. Доступны следующие элементы:
- Главное меню (клик по логотипу dbt) и заголовок workspace. Заголовок по умолчанию генерируется случайно, но его можно изменить в любой момент, кликнув по нему.
- Вкладка текущей модели и её имя. Имя модели задаётся с помощью оператора Output.
- Кнопка с иконкой модели — управление моделями в workspace.
- Панель Runs, где отображаются данные запусков, включая предупреждения и ошибки.
- Панель Previews, показывающая превью данных для отдельных операторов.
- Опция Add для создания новых моделей, редактирования существующих или добавления seed-файлов.
- Панель Operators (
Input,Transform,Output) — строительные блоки для создания модели в редакторе. - Иконка Copilot (если доступно). Позволяет использовать естественный язык для построения моделей Canvas.
- Область SQL code, где отображается SQL-код, в который компилируется модель.
- Кнопка Run, запускающая
dbt runдля модели. - Кнопка, которая изначально является Commit для интегрированного провайдера Git. После первого коммита она изменится на Open pull request. Кнопка появится только после начала работы в области canvas.
- Навигационная панель с иконками (сверху вниз):
- Увеличение масштаба
- Уменьшение масштаба
- Центрирование модели по экрану
- Масштабирование к выбранному элементу (выбранный оператор будет приближен и центрирован, даже если он вне экрана)
- Автоматическая раскладка тайлов операторов
Создание модели
В этом разделе вы создадите модель с использованием операторов и примерных данных из проекта Jaffle Shop. В результате вы построите базовую модель, которая трансформирует два набора данных и формирует представление повторных покупок клиентов — полезно, например, при рассмотрении программы лояльности.
Операторы — это сердце вашей модели. Они определяют, какие данные и каким образом будут трансформироваться. Нажмите на иконку +, чтобы открыть меню операторов.
Операторы делятся на три типа:
- Input: настраивают входные данные (источники).
- Transform: изменяют и преобразуют данные.
- Output: определяют имя и расположение итоговой модели.
Подробнее о назначении каждого оператора читайте в разделе individual operators. dbt-модель, создаваемая в Canvas, строится на основе уже существующих моделей. В этом руководстве будут input-модели (source) и одна output-модель — то, что вы создаёте, то есть ваша модель. Операторы перетаскиваются (drag-and-drop) из меню на canvas, и при добавлении создаётся тайл. Тайлы имеют схожую структуру, но набор полей зависит от функции оператора. Все операторы, кроме Model, должны быть соединены с другим тайлом до настройки. После конфигурации их внешний вид становится одинаковым по структуре. Делайте заголовки тайлов операторов уникальными по сравнению с именами колонок — это поможет избежать путаницы. То же относится и к создаваемым alias.Подробнее о тайлах операторов
Создание модели из уже существующих моделей
Чтобы начать:
- Откройте меню Input и перетащите оператор Input Model на canvas.
- Нажмите Choose a model и выберите source-модель
stg_modelsиз выпадающего списка. - В окне со списком колонок нажмите Select model.
Теперь у вас есть первая input-модель в Canvas!
-
Перетащите ещё один оператор Input Model на canvas ниже первого и повторите предыдущие шаги, выбрав модель
stg_order_items.
Теперь у вас есть две input-модели, и вы готовы к трансформации данных.
Не видите нужную pre-existing модель? Попросите администраторов dbt убедиться, что она недавно запускалась в окружении Production и не устарела.
Создание join
-
В меню Operators выберите Transform и перетащите оператор Join на canvas справа от source-моделей.
-
Перетащите линию от коннектора + под меткой
Lна рамке join к + у моделиstg_orders. То же самое сделайте для коннектораRи моделиstg_order_items. -
В тайле Join нажмите Configure inputs.
-
Установите Join type в
Inner. -
В паре выпадающих списков укажите для
stg_ordersиstg_order_itemsколонкуORDER_ID. -
Нажмите Select and rename columns, затем Configure columns, и выберите следующие колонки:
- из
stg_orders:ORDER_IDиCUSTOMER_ID - из
stg_order_items:PRODUCT_ID - Примечание: колонки будут отображаться в порядке кликов.
- из
-
Join готов! Проверьте результат, нажав Play icon в правом верхнем углу тайла join. Данные появятся в панели Runs and previews.
Вся ваша работа в Canvas автоматически сохраняется. Если нужно сделать перерыв, вы всегда можете вернуться к сессии позже — просто дайте ей уникальное название.
Улучшение модели
Базовая модель в Canvas уже готова: она успешно объединяет две input-модели. Теперь вы хотите дополнительно преобразовать данные, чтобы получить список клиентов, которые покупают одни и те же товары повторно — например, для анализа программы лояльности.
Агрегация данных
Существует несколько способов трансформации данных: пользовательские формулы, фильтры, union. Для простоты добавьте оператор агрегации, чтобы определить, какие клиенты чаще всего покупают повторяющиеся продукты.
-
В разделе Transform перетащите оператор Aggregation вправо от join.
-
Соедините оператор агрегации с оператором join.
-
В тайле Aggregation нажмите Configure aggregation.
-
В поле Group by сначала выберите
CUSTOMER_ID, затемPRODUCT_ID. -
Настройте следующие поля:
- Function: Count
- Column: PRODUCT_ID
- Alias: count_PRODUCT_ID
-
Нажмите Play icon, чтобы просмотреть данные. Результаты уже появляются, но они выглядят неупорядоченными — давайте улучшим их.
По мере роста модели вы можете увеличивать и уменьшать масштаб. Зажмите и перетащите пустое место на canvas, чтобы перемещаться по экрану. Используйте иконку Fit view, чтобы увидеть всю модель целиком, и Auto layout, чтобы автоматически и аккуратно расположить тайлы.
Добавим порядок
Данных много: десятки клиентов и сотни продуктов. Отсортируйте их так, чтобы клиенты шли по возрастанию CUSTOMER_ID, а продукты — по убыванию количества покупок.
-
В разделе Transform перетащите оператор Order вправо от тайла Aggregation и соедините их.
-
Нажмите на иконку карандаша для редактирования.
-
В поле Sort order нажмите Select column и выберите
Aggregation1.CUSTOMER_ID. Установите порядокAsc. -
Нажмите Add sorting, затем в новом поле Select column выберите
Aggregation1.count_PRODUCT_IDи установитеDesc. -
Нажмите Play icon, чтобы просмотреть обновлённые данные.
Хотите попрактиковаться самостоятельно? Попробуйте добавить оператор Filter, который исключает товары с количеством продаж менее 10 для любого CUSTOMER_ID. Не забудьте запустить preview и проверить корректность данных.
Настройка output-модели
Теперь, когда модель готова, нужно настроить имя и расположение output-модели:
- В разделе Output перетащите оператор Output Model вправо от оператора Order.
- Соедините операторы Order и Output Model.
- По умолчанию конфигурация Output Model использует имя проекта Canvas и стандартную директорию models. Нажмите иконку карандаша, чтобы настроить дополнительные поля:
- Измените Model name, если хотите задать имя, отличное от имени проекта.
- Измените File path, если используете кастомную директорию для моделей Canvas.
- Наведите курсор на имя колонки и нажмите иконку -, чтобы удалить её из output-модели.
- Нажмите play icon, чтобы просмотреть финальную модель.
Вы можете настроить отдельное расположение для моделей Canvas, чтобы отделить их от других моделей dbt. Уточните у администраторов dbt лучшие практики и рекомендации по структуре и именованию моделей Canvas.
Запуск и публикация модели
Теперь, когда модель готова и даёт нужные данные, пора запустить её и отправить изменения в репозиторий Git. Перед запуском учтите несколько моментов:
- Запуск preview на любом этапе не влияет на состояние вашего хранилища данных. Вы можете спокойно разрабатывать и тестировать в Canvas, не затрагивая ничего за пределами окружения Development в dbt.
- Когда модель понадобится в downstream-инструментах, вы можете выполнить run, чтобы материализовать её в development-схеме хранилища данных.
- Когда модель готова к production и использованию другими пользователями или оркестрацией, закоммитьте её и откройте pull request.
Run
Чтобы запустить модель, просто нажмите большую кнопку Run. В Canvas нет командной строки и необходимости запоминать команды — есть только Run. Нажмите её, и результаты появятся в панели Runs and previews.
Это приведёт к materialize данных как view в вашей developer-схеме базы данных. После мерджа модели в проект и выполнения dbt run в окружениях Staging или Production она будет материализована как view в соответствующих схемах.
Включён ли dbt Copilot для вашего Enterprise-аккаунта dbt? Очистите canvas и попробуйте построить модель из этого руководства, используя естественный язык, без ручной настройки операторов.
Коммит Git
Модели, созданные в Canvas, являются частью вашего общего dbt-проекта. Они автоматически сохраняются в папке visual_editor внутри директории /models. Вам не нужно настраивать пути или директории вручную.
Однако эта папка не появится в репозитории Git, пока вы не закоммитите первую модель. Вернувшись к представлению модели:
- Нажмите Commit в правом верхнем углу.
- Если вы уже делали коммиты и хотите создать новый, нажмите стрелку рядом с Create a pull request, чтобы увидеть опцию Commit.
- Заполните поле Description информацией о модели. Если описание длинное, его часть попадёт в заголовок pull request, а остальное — в тело. Это нормально, всё можно отредактировать при создании PR.
- Нажмите Commit.
- Кнопка Commit изменится на Create a pull request. Пока что нажмите Create a pull request — вы будете перенаправлены к вашему провайдеру Git в новой вкладке.
В следующем примере используется GitHub:
- В окне GitHub нажмите Create pull request.
- Заполните поля Add a title и Add a description. Если описание разделено между ними, скопируйте весь текст в description и задайте более короткий title.
- Нажмите Create pull request.
Вы только что отправили свою первую модель из Canvas на ревью. После одобрения и мерджа модель станет частью проекта вашей организации и будет выполняться при каждом запуске dbt run в соответствующих окружениях. Вы на верном пути к мастерству в трансформации данных!
Хотите прокачать навыки ещё сильнее? Попробуйте взять SQL-код, сгенерированный моделью Canvas, и использовать его для создания модели в Studio IDE.
Хотите узнать больше? Обязательно посмотрите наш курс Canvas fundamentals на платформе dbt Learn.















