Быстрый старт для dbt Canvas
Введение
Canvas позволяет любому пользователю быстро и просто создавать аналитические модели — опыт в аналитической инженерии не требуется! В этом руководстве вы узнаете о следующем:
- Доступ к Canvas и создание новой модели
- Навигация по интерфейсу
- Создание модели с помощью операторов
- Сохранение изменений в Git
- Поиск модели Canvas и её данных
Предварительные требования для Canvas
Перед использованием Canvas необходимо:
- Иметь учетную запись dbt Enterprise или Enterprise+.
- Иметь лицензию разработчика с настроенными учетными данными пользователя.
- Использовать один из следующих адаптеров:
- Bigquery
- Databricks
- Redshift
- Snowflake
- Trino
- Вы можете использовать Canvas с адаптерами, не указанными в списке, но некоторые функции могут быть пока недоступны.
- Используйте GitHub, GitLab или Azure DevOps в качестве провайдера Git, подключённого к dbt через HTTPS.
- Подключения по SSH пока не поддерживаются.
- Использование Canvas с самостоятельно размещёнными или локальными развёртываниями любого Git-провайдера пока не поддерживается.
- У вас должен быть уже созданный проект dbt, в котором завершён запуск в среде Staging или Production.
- Убедитесь, что ваша среда разработки использует поддерживаемый канал выпуска, чтобы регулярно получать обновления.
- У вас должен быть доступ только для чтения к среде Staging с данными, чтобы выполнять
runв Canvas. Подробнее о настройке необходимого доступа для группы пользователей Canvas см. в разделе Настройка разрешений на уровне среды.
В примерах этого руководства используется демонстрационный проект из репозитория Jaffle Shop на GitHub. Вы можете использовать собственные данные, но Jaffle Shop представляет собой полнофункциональный проект, удобный для тестирования возможностей dbt. Обратитесь к администратору dbt по поводу его импорта в проект в вашей среде. Перед началом работы администратор также должен выполнить dbt run для проекта Jaffle Shop в вашей среде Production, иначе вы не сможете ссылаться на исходные модели.
Доступ к Canvas
Чтобы открыть Canvas:
- Нажмите Canvas в меню слева.
- Справа нажмите Create new workspace. Откроется новое рабочее пространство с пустой моделью без названия. Для продолжения работы с этим руководством никаких дополнительных действий не требуется, но если вы хотите создать новую модель, нажмите +Add на верхней панели навигации, а затем — Create new model.
Навигация по интерфейсу
Canvas включает ряд меню, которые открываются при нажатии на значки по краям рабочей области. Когда ни одно из меню не открыто, рабочая область выглядит так:
Нажмите на иконку, чтобы раскрыть соответствующий раздел или выполнить действие — в зависимости от её назначения. Доступны следующие элементы:
- Главное меню (нажмите на логотип dbt) и название рабочей области. По умолчанию название задаётся случайным образом, но его можно изменить в любой момент, нажав на него.
- Вкладка текущей модели и её имя. Имя модели задаётся с помощью оператора Output.
- Кнопка со значком модели. Позволяет управлять моделями в рабочей области.
- Панель Runs отображает данные о запусках, включая предупреждения и ошибки.
- Панель Previews отображает предварительные результаты для отдельных операторов.
- Пункт Add позволяет создавать новые модели, редактировать существующие или добавлять seed-файлы.
- Панель инструментов Operators (
Input,TransformиOutput) содержит строительные блоки для создания модели в редакторе. - Значок dbt Wizard (если доступен). Используйте естественный язык для создания моделей в Canvas.
- Область SQL code отображает SQL-код, в который компилируется ваша модель.
- Команда Run выполняет
dbt runдля модели. - Изначально эта кнопка выполняет команду Commit для интегрированного сервиса Git. После первого коммита её название изменится на «Open pull request». Кнопка появится только после того, как вы начнёте работать в области холста.
- Панель навигации со значками (сверху вниз):
- Увеличить масштаб
- Уменьшить масштаб
- Расположить модель по центру и вписать её в экран
- Масштабировать до выбранного оператора (выбранный оператор будет увеличен и расположен по центру независимо от того, находится ли он в видимой области экрана)
- Автоматически расположить отдельные плитки операторов
Создание модели
В этом разделе вы создадите модель с использованием операторов и примерных данных из проекта Jaffle Shop. В результате вы построите базовую модель, которая трансформирует два набора данных и формирует представление повторных покупок клиентов — полезно, например, при рассмотрении программы лояльности.
Операторы — это сердце вашей модели. Они определяют, какие данные и каким образом будут трансформироваться. Нажмите на иконку +, чтобы открыть меню операторов.
Операторы делятся на три типа:
- Input: настраивают входные данные (источники).
- Transform: изменяют и преобразуют данные.
- Output: определяют имя и расположение итоговой модели.
Подробнее об отдельных операторах можно прочитать, чтобы понять основное назначение каждого из них. Модель dbt, созданная с помощью Canvas, строится на основе существующих моделей. В этом руководстве будут входные (исходные) модели и выходная модель (та, которую вы создаёте) — ваша модель. Операторы перетаскиваются (drag-and-drop) из меню на canvas, и при добавлении создаётся тайл. Тайлы имеют схожую структуру, но набор полей зависит от функции оператора. Все операторы, кроме Model, должны быть соединены с другим тайлом до настройки. После конфигурации их внешний вид становится одинаковым по структуре. Делайте заголовки тайлов операторов уникальными по сравнению с именами колонок — это поможет избежать путаницы. То же относится и к создаваемым alias.Подробнее о тайлах операторов
Создание модели из уже существующих моделей
Чтобы начать:
- Откройте меню Input и перетащите оператор Input Model на canvas.
- Нажмите Choose a model и выберите source-модель
stg_modelsиз выпадающего списка. - В окне со списком колонок нажмите Select model.
Теперь у вас есть первая входная модель в Canvas!
- Перетащите ещё один оператор Input Model на canvas ниже первого и повторите предыдущие шаги, выбрав модель
stg_order_items.
Теперь у вас есть две input-модели, и вы готовы к трансформации данных.
Не видите нужную pre-existing модель? Попросите администраторов dbt убедиться, что она недавно запускалась в окружении Production и не устарела.
Создание join
-
В меню Operators нажмите Transform и перетащите оператор Join на холст справа от исходных моделей.
-
Соедините выходы исходных моделей с соответствующими входами оператора Join.
-
В операторе Join нажмите Configure inputs.
-
В поле Join type выберите
Inner. -
В обоих выпадающих списках выберите
ORDER_IDдляstg_ordersиstg_order_items. -
Нажмите Select and rename columns, затем Configure columns. Выберите следующие столбцы:
- Из
stg_ordersвыберитеORDER_IDиCUSTOMER_ID. - Из
stg_order_itemsвыберитеPRODUCT_ID. - Столбцы появятся в порядке выбора.
- Из
-
Нажмите значок воспроизведения в правом верхнем углу оператора Join, чтобы проверить результат.
Ваша работа в Canvas автоматически сохраняется по мере выполнения, поэтому, если вам нужен перерыв, вы всегда можете вернуться к сеансу позже. Только не забудьте дать ему уникальное название!
Улучшение модели
Вы уже освоили основы работы с моделью в Canvas! Она успешно объединила две существующие входные модели, но вы хотите дополнительно преобразовать данные, чтобы получить нужный результат: список клиентов, которые повторно покупают одни и те же товары, — для оценки возможности запуска программы вознаграждений для участников клуба лояльности.
Агрегация данных
Существует несколько способов трансформации данных: пользовательские формулы, фильтры, 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 Model вправо от оператора Order.
- Соедините операторы Order и Output Model.
- В настройках Output Model по умолчанию используются имя вашего проекта Canvas и стандартный каталог моделей. Нажмите значок карандаша, чтобы настроить необязательные поля:
- Измените поле Model name, если хотите, чтобы имя модели отличалось от имени проекта.
- Измените File path, если для моделей Canvas вы используете собственный каталог.
- Наведите указатель на имя столбца и нажмите значок -, чтобы исключить его из выходной модели.
- Нажмите значок воспроизведения, чтобы просмотреть итоговую модель.
Вы можете настроить расположение моделей Canvas, чтобы хранить их отдельно от других моделей dbt. Обратитесь к администраторам dbt за рекомендациями и идеями по выбору расположения моделей Canvas и соглашений об их именовании.
Запуск и публикация модели
Теперь, когда модель готова и даёт нужные данные, пора запустить её и отправить изменения в репозиторий Git. Перед запуском учтите несколько моментов:
- Запуск предварительного просмотра (на любом этапе процесса) не влияет на состояние вашего хранилища данных. Поэтому вы можете тестировать и разрабатывать модели в Canvas, не затрагивая ничего за пределами среды разработки dbt.
- Когда вы будете готовы использовать эту модель в инструменте, который будет работать с её результатами, запустите её, чтобы материализовать в схеме разработки вашего хранилища данных.
- Когда ваша модель будет готова к использованию в производственной среде, другими пользователями или в рамках оркестрации, зафиксируйте изменения в коммите и откройте пул-реквест.
Run
Чтобы запустить модель, достаточно нажать большую кнопку Run. В Canvas нет командной строки и не нужно запоминать список команд — есть только кнопка Run. Нажмите её, чтобы увидеть результаты на панели Runs and previews.
Это приведёт к materialize данных как view в вашей developer-схеме базы данных. После мерджа модели в проект и выполнения dbt run в окружениях Staging или Production она будет материализована как view в соответствующих схемах.
В вашем аккаунте dbt Enterprise включён dbt dbt Wizard? Очистите рабочую область и попробуйте построить модель из этого руководства с помощью естественного языка, не настраивая операторы вручную.
Коммит 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.















