# Быстрый старт для dbt Canvas

[Назад к гайдам](https://docs.getdbt.tech/guides.md)

[Menu ]()



## Введение

Canvas позволяет любому пользователю быстро и просто создавать аналитические модели — опыт в аналитической инженерии не требуется! В этом руководстве вы узнаете о следующем:

* Доступ к Canvas и создание новой модели
* Навигация по интерфейсу
* Создание модели с помощью операторов
* Сохранение изменений в Git
* Поиск модели Canvas и её данных

## Предварительные требования для Canvas

Перед использованием Canvas необходимо:

* Иметь учетную запись [dbt Enterprise или Enterprise+](https://www.getdbt.com/pricing).

* Иметь [лицензию разработчика](https://docs.getdbt.tech/docs/platform/manage-access/seats-and-users.md) с настроенными учетными данными пользователя.

* Использовать один из следующих адаптеров:

  * Bigquery
  * Databricks
  * Redshift
  * Snowflake
  * Trino

* Вы можете использовать Canvas с адаптерами, не указанными в списке, но некоторые функции могут быть пока недоступны.

* Используйте [GitHub](https://docs.getdbt.tech/docs/platform/git/connect-github.md), [GitLab](https://docs.getdbt.tech/docs/platform/git/connect-gitlab.md) или [Azure DevOps](https://docs.getdbt.tech/docs/platform/git/connect-azure-devops.md) в качестве провайдера Git, подключённого к dbt через HTTPS.

  * Подключения по SSH пока не поддерживаются.
  * Использование Canvas с самостоятельно размещёнными или локальными развёртываниями любого Git-провайдера пока не поддерживается.

* У вас должен быть уже созданный проект dbt, в котором завершён запуск в среде Staging или Production.

* Убедитесь, что ваша среда разработки использует поддерживаемый [канал выпуска](https://docs.getdbt.tech/docs/dbt-versions/dbt-release-tracks.md), чтобы регулярно получать обновления.

* У вас должен быть доступ только для чтения к [среде Staging](https://docs.getdbt.tech/docs/deploy/deploy-environments.md#staging-environment) с данными, чтобы выполнять `run` в Canvas. Подробнее о настройке необходимого доступа для группы пользователей Canvas см. в разделе [Настройка разрешений на уровне среды](https://docs.getdbt.tech/docs/platform/manage-access/environment-permissions-setup.md).

Требование для использования Jaffle Shop

В примерах этого руководства используется демонстрационный проект из репозитория [Jaffle Shop](https://github.com/dbt-labs/jaffle-shop) на GitHub. Вы можете использовать собственные данные, но Jaffle Shop представляет собой полнофункциональный проект, удобный для тестирования возможностей dbt. Обратитесь к администратору dbt по поводу его импорта в проект в вашей среде. Перед началом работы администратор также должен выполнить `dbt run` для проекта Jaffle Shop в вашей среде `Production`, иначе вы не сможете ссылаться на исходные модели.

## Доступ к Canvas

Чтобы открыть Canvas:

1. Нажмите **Canvas** в меню слева.
2. Справа нажмите **Create new workspace**. Откроется новое рабочее пространство с пустой моделью без названия. Для продолжения работы с этим руководством никаких дополнительных действий не требуется, но если вы хотите создать новую модель, нажмите **+Add** на верхней панели навигации, а затем — **Create new model**.

[![Создание новой модели со стартовой страницы Canvas.](/img/docs/dbt-platform/canvas/canvas-create-new-model.png?v=2 "Создание новой модели со стартовой страницы Canvas.")](#)Создание новой модели со стартовой страницы Canvas.

## Навигация по интерфейсу

Canvas включает ряд меню, которые открываются при нажатии на значки по краям рабочей области. Когда ни одно из меню не открыто, рабочая область выглядит так:

[![Экран рабочей области Canvas. Количество элементов описано в этом разделе.](/img/docs/dbt-platform/canvas/canvas-screen.png?v=2 "Экран рабочей области Canvas. Количество элементов описано в этом разделе.")](#)Экран рабочей области Canvas. Количество элементов описано в этом разделе.

Нажмите на иконку, чтобы раскрыть соответствующий раздел или выполнить действие — в зависимости от её назначения. Доступны следующие элементы:

1. Главное меню (нажмите на **логотип dbt**) и название рабочей области. По умолчанию название задаётся случайным образом, но его можно изменить в любой момент, нажав на него.

2. **Вкладка текущей модели** и её имя. Имя модели задаётся с помощью оператора **Output**.

3. Кнопка со **значком модели**. Позволяет управлять моделями в рабочей области.

4. Панель **Runs** отображает данные о запусках, включая предупреждения и ошибки.

5. Панель **Previews** отображает предварительные результаты для отдельных операторов.

6. Пункт **Add** позволяет создавать новые модели, редактировать существующие или добавлять seed-файлы.

7. Панель инструментов **Operators** (`Input`, `Transform` и `Output`) содержит строительные блоки для создания модели в редакторе.

8. Значок [dbt Wizard](https://docs.getdbt.tech/docs/platform/wizard-platform.md) (если доступен). Используйте естественный язык для создания моделей в Canvas.

9. Область **SQL code** отображает SQL-код, в который компилируется ваша модель.

10. Команда **Run** выполняет `dbt run` для модели.

11. Изначально эта кнопка выполняет команду **Commit** для интегрированного сервиса Git. После первого коммита её название изменится на «Open pull request». Кнопка появится только после того, как вы начнёте работать в области холста.

12. Панель навигации со значками (сверху вниз):

    * Увеличить масштаб
    * Уменьшить масштаб
    * Расположить модель по центру и вписать её в экран
    * Масштабировать до выбранного оператора (выбранный оператор будет увеличен и расположен по центру независимо от того, находится ли он в видимой области экрана)
    * Автоматически расположить отдельные плитки операторов

## Создание модели

В этом разделе вы создадите модель с использованием операторов и примерных данных из проекта [Jaffle Shop](https://github.com/dbt-labs/jaffle-shop). В результате вы построите базовую модель, которая трансформирует два набора данных и формирует представление повторных покупок клиентов — полезно, например, при рассмотрении программы лояльности.

Операторы — это сердце вашей модели. Они определяют, какие данные и каким образом будут трансформироваться. Нажмите на иконку **+**, чтобы открыть меню операторов.

Операторы делятся на три типа:

* **Input:** настраивают входные данные (источники).
* **Transform:** изменяют и преобразуют данные.
* **Output:** определяют имя и расположение итоговой модели.

[![Меню операторов сбоку от рабочей области Canvas.](/img/docs/dbt-platform/canvas/operators.png?v=2 "Меню операторов сбоку от рабочей области Canvas.")](#)Меню операторов сбоку от рабочей области Canvas.

Подробнее об [отдельных операторах](https://docs.getdbt.tech/docs/platform/canvas-interface.md#operators) можно прочитать, чтобы понять основное назначение каждого из них. Модель dbt, созданная с помощью Canvas, строится на основе существующих моделей. В этом руководстве будут входные (исходные) модели и выходная модель (та, которую вы создаёте) — *ваша модель*.

Подробнее о тайлах операторов

Операторы перетаскиваются (drag-and-drop) из меню на canvas, и при добавлении создаётся тайл.

Тайлы имеют схожую структуру, но набор полей зависит от функции оператора. Все операторы, кроме **Model**, должны быть соединены с другим тайлом до настройки. После конфигурации их внешний вид становится одинаковым по структуре.

[![Плитка оператора с заполненными настройками.](/img/docs/dbt-platform/canvas/operator-tile.png?v=2 "Плитка оператора с заполненными настройками.")](#)Плитка оператора с заполненными настройками.

1. **Коннекторы:** перетаскивайте соединение к коннектору другого оператора, чтобы связать их. Некоторые коннекторы имеют метки L и R — при использовании join они обозначают левую и правую стороны соответственно.
2. **Заголовок:** можно изменить по клику. В примерах и изображениях этого руководства используются названия по умолчанию.
3. **Иконка Play и меню:** позволяет просмотреть данные на любом этапе трансформации, нажав **play icon**. В выпадающем меню есть опция **Delete** для удаления тайла.
4. **Иконка колонок:** число рядом показывает количество колонок в данных на текущем этапе трансформации.

подсказка

Делайте заголовки тайлов операторов уникальными по сравнению с именами колонок — это поможет избежать путаницы. То же относится и к создаваемым alias.

### Создание модели из уже существующих моделей

Чтобы начать:

1. Откройте меню **Input** и перетащите оператор **Input Model** на canvas.
2. Нажмите **Choose a model** и выберите source-модель `stg_models` из выпадающего списка.
3. В окне со списком колонок нажмите **Select model**.

[![Один оператор модели.](/img/docs/dbt-platform/canvas/one-model-operator.png?v=2 "Один оператор модели.")](#)Один оператор модели.

Теперь у вас есть первая входная модель в Canvas!

4. Перетащите ещё один оператор **Input Model** на canvas ниже первого и повторите предыдущие шаги, выбрав модель `stg_order_items`.

[![Два оператора моделей на холсте.](/img/docs/dbt-platform/canvas/two-model-operators.png?v=2 "Два оператора моделей на холсте.")](#)Два оператора моделей на холсте.

Теперь у вас есть две input-модели, и вы готовы к трансформации данных.

подсказка

Не видите нужную pre-existing модель? Попросите администраторов dbt убедиться, что она недавно запускалась в окружении Production и не устарела.

### Создание join

1. В меню **Operators** нажмите **Transform** и перетащите оператор **Join** на холст справа от исходных моделей.

   [![Соединение, ещё не подключённое к моделям](/img/docs/dbt-platform/canvas/join-not-connected.png?v=2 "Соединение, ещё не подключённое к моделям")](#)Соединение, ещё не подключённое к моделям

2. Соедините выходы исходных моделей с соответствующими входами оператора **Join**.

   [![Соединение подключено к двум операторам моделей.](/img/docs/dbt-platform/canvas/join-connected.png?v=2 "Соединение подключено к двум операторам моделей.")](#)Соединение подключено к двум операторам моделей.

3. В операторе **Join** нажмите **Configure inputs**.

4. В поле **Join type** выберите `Inner`.

5. В обоих выпадающих списках выберите `ORDER_ID` для `stg_orders` и `stg_order_items`.

6. Нажмите **Select and rename columns**, затем **Configure columns**. Выберите следующие столбцы:

   * Из `stg_orders` выберите `ORDER_ID` и `CUSTOMER_ID`.
   * Из `stg_order_items` выберите `PRODUCT_ID`.
   * Столбцы появятся в порядке выбора.

7. Нажмите **значок воспроизведения** в правом верхнем углу оператора **Join**, чтобы проверить результат.

[![Завершённое соединение с образцом данных.](/img/docs/dbt-platform/canvas/preview-join.png?v=2 "Завершённое соединение с образцом данных.")](#)Завершённое соединение с образцом данных.

подсказка

Ваша работа в Canvas автоматически сохраняется по мере выполнения, поэтому, если вам нужен перерыв, вы всегда можете вернуться к сеансу позже. Только не забудьте дать ему уникальное название!

## Улучшение модели

Вы уже освоили основы работы с моделью в Canvas! Она успешно объединила две существующие входные модели, но вы хотите дополнительно преобразовать данные, чтобы получить нужный результат: список клиентов, которые повторно покупают одни и те же товары, — для оценки возможности запуска программы вознаграждений для участников клуба лояльности.

### Агрегация данных

Существует несколько способов трансформации данных: пользовательские формулы, фильтры, union. Для простоты добавьте оператор агрегации, чтобы определить, какие клиенты чаще всего покупают повторяющиеся продукты.

1. В разделе **Transform** перетащите оператор **Aggregation** вправо от join.

2. Соедините оператор агрегации с оператором join.

3. В тайле **Aggregation** нажмите **Configure aggregation**.

4. В поле **Group by** сначала выберите `CUSTOMER_ID`, затем `PRODUCT_ID`.

5. Настройте следующие поля:

   * **Function:** Count
   * **Column:** PRODUCT\_ID
   * **Alias:** count\_PRODUCT\_ID

[![Настроенный блок оператора агрегации.](/img/docs/dbt-platform/canvas/aggregation.png?v=2 "Настроенный блок оператора агрегации.")](#)Настроенный блок оператора агрегации.

6. Нажмите **Play icon**, чтобы просмотреть данные. Результаты уже появляются, но они выглядят неупорядоченными — давайте улучшим их.

подсказка

По мере роста модели вы можете увеличивать и уменьшать масштаб. Зажмите и перетащите пустое место на canvas, чтобы перемещаться по экрану. Используйте иконку **Fit view**, чтобы увидеть всю модель целиком, и **Auto layout**, чтобы автоматически и аккуратно расположить тайлы.

### Добавим порядок

Данных много: десятки клиентов и сотни продуктов. Отсортируйте их так, чтобы клиенты шли по возрастанию `CUSTOMER_ID`, а продукты — по убыванию количества покупок.

1. В разделе **Transform** перетащите оператор **Order** вправо от тайла **Aggregation** и соедините их.
2. Нажмите на **иконку карандаша** для редактирования.
3. В поле **Sort order** нажмите **Select column** и выберите `Aggregation1.CUSTOMER_ID`. Установите порядок `Asc`.
4. Нажмите **Add sorting**, затем в новом поле **Select column** выберите `Aggregation1.count_PRODUCT_ID` и установите `Desc`.
5. Нажмите **Play icon**, чтобы просмотреть обновлённые данные.

[![Настройки плитки оператора упорядочивания данных.](/img/docs/dbt-platform/canvas/order.png?v=2 "Настройки плитки оператора упорядочивания данных.")](#)Настройки плитки оператора упорядочивания данных.

подсказка

Хотите попрактиковаться самостоятельно? Попробуйте добавить оператор **Filter**, который исключает товары с количеством продаж менее 10 для любого CUSTOMER\_ID. Не забудьте запустить preview и проверить корректность данных.

## Настройка output-модели

Теперь, когда вы создали модель, нужно настроить имя и расположение выходной модели:

1. Из раздела **Output** перетащите оператор **Output Model** вправо от оператора **Order**.

2. Соедините операторы **Order** и **Output Model**.

3. В настройках **Output Model** по умолчанию используются имя вашего проекта Canvas и стандартный каталог моделей. Нажмите **значок карандаша**, чтобы настроить необязательные поля:

   * Измените поле **Model name**, если хотите, чтобы имя модели отличалось от имени проекта.
   * Измените **File path**, если для моделей Canvas вы используете собственный каталог.
   * Наведите указатель на имя столбца и нажмите значок **-**, чтобы исключить его из выходной модели.

4. Нажмите **значок воспроизведения**, чтобы просмотреть итоговую модель.

[![Оператор Output Model задаёт имя и расположение итоговой модели.](/img/docs/dbt-platform/canvas/output-model.png?v=2 "Оператор Output Model задаёт имя и расположение итоговой модели.")](#)Оператор Output Model задаёт имя и расположение итоговой модели.

Расположение моделей

Вы можете настроить расположение моделей Canvas, чтобы хранить их отдельно от других моделей dbt. Обратитесь к администраторам dbt за рекомендациями и идеями по выбору расположения моделей Canvas и соглашений об их именовании.

## Запуск и публикация модели

Теперь, когда модель готова и даёт нужные данные, пора запустить её и отправить изменения в репозиторий Git. Перед запуском учтите несколько моментов:

* Запуск предварительного просмотра (на любом этапе процесса) не влияет на состояние вашего хранилища данных. Поэтому вы можете тестировать и разрабатывать модели в Canvas, не затрагивая ничего за пределами среды разработки dbt.
* Когда вы будете готовы использовать эту модель в инструменте, который будет работать с её результатами, запустите её, чтобы материализовать в схеме разработки вашего хранилища данных.
* Когда ваша модель будет готова к использованию в производственной среде, другими пользователями или в рамках оркестрации, зафиксируйте изменения в коммите и откройте пул-реквест.

### Run

Чтобы запустить модель, достаточно нажать большую кнопку **Run**. В Canvas нет командной строки и не нужно запоминать список команд — есть только кнопка **Run**. Нажмите её, чтобы увидеть результаты на панели **Runs and previews**.

[![Результаты успешного запуска на панели «Runs and previews».](/img/docs/dbt-platform/canvas/run-results.png?v=2 "Результаты успешного запуска на панели «Runs and previews».")](#)Результаты успешного запуска на панели «Runs and previews».

Это приведёт к [materialize](https://docs.getdbt.tech/docs/build/materializations.md) данных как `view` в вашей developer-схеме базы данных. После мерджа модели в проект и выполнения `dbt run` в окружениях Staging или Production она будет материализована как view в соответствующих схемах.

[![Предварительный просмотр преобразованных данных в Snowflake.](/img/docs/dbt-platform/canvas/preview-data.png?v=2 "Предварительный просмотр преобразованных данных в Snowflake.")](#)Предварительный просмотр преобразованных данных в Snowflake.

подсказка

В вашем аккаунте dbt Enterprise включён dbt [dbt Wizard](https://docs.getdbt.tech/docs/platform/wizard-platform.md)? Очистите рабочую область и попробуйте построить модель из этого руководства с помощью естественного языка, не настраивая операторы вручную.

### Коммит Git

Модели, созданные в Canvas, являются частью вашего общего проекта dbt. Они хранятся в папке `visual_editor` внутри каталога `/models`. Всё это происходит автоматически — вам не нужно настраивать пути или каталоги.

[![Пример пути к модели Canvas в GitHub.](/img/docs/dbt-platform/canvas/ve-model-folder.png?v=2 "Пример пути к модели Canvas в GitHub.")](#)Пример пути к модели Canvas в GitHub.

Однако эта папка не появится в репозитории Git, пока вы не закоммитите первую модель. Вернувшись к представлению модели:

1. Нажмите **Commit** в правом верхнем углу.
   * Если вы уже делали коммиты и хотите создать новый, нажмите стрелку рядом с **Create a pull request**, чтобы увидеть опцию **Commit**.
2. Заполните поле **Description** информацией о модели. Если описание длинное, его часть попадёт в заголовок pull request, а остальное — в тело. Это нормально, всё можно отредактировать при создании PR.
3. Нажмите **Commit**.
4. Кнопка **Commit** изменится на **Create a pull request**. Пока что нажмите **Create a pull request** — вы будете перенаправлены к вашему провайдеру Git в новой вкладке.

В следующем примере используется GitHub:

[![Пример экрана GitHub, на который вы переходите при создании пул-реквеста из Canvas.](/img/docs/dbt-platform/canvas/demo-model-github.png?v=2 "Пример экрана GitHub, на который вы переходите при создании пул-реквеста из Canvas.")](#)Пример экрана GitHub, на который вы переходите при создании пул-реквеста из Canvas.

5. В окне GitHub нажмите **Create pull request**.
6. Заполните поля **Add a title** и **Add a description**. Если описание разделено между ними, скопируйте весь текст в description и задайте более короткий title.
7. Нажмите **Create pull request**.

Вы только что отправили свою первую модель из Canvas на проверку. После одобрения и слияния изменений модель будет включена в проект вашей организации и будет запускаться при каждом выполнении `dbt run` в любой среде, где она присутствует. Теперь вы на пути к тому, чтобы стать экспертом по преобразованию данных!

подсказка

Хотите вывести свои навыки на новый уровень? Попробуйте взять SQL-код, сгенерированный для вашей модели в Canvas, и использовать его для создания модели в [Studio IDE](https://docs.getdbt.tech/docs/platform/studio-ide/develop-in-studio.md).

Хотите узнать больше? Обязательно посмотрите наш курс [Canvas fundamentals](https://learn.getdbt.com/learn/course/canvas-fundamentals) на платформе [dbt Learn](https://learn.getdbt.com/catalog).
