Configure and use the dbt CLI
Узнайте, как настроить Cloud CLI для вашего проекта dbt, чтобы запускать команды dbt, такие как dbt environment show для просмотра конфигурации dbt или dbt compile для компиляции проекта и проверки моделей и тестов. Вы также получите следующие преимущества:
- Безопасное хранение учетных данных на платформе dbt.
- Автоматическое использование defer для артефактов сборки из production-окружения вашего Cloud‑проекта.
- Более быстрые и экономичные сборки.
- Поддержка Mesh (cross-project ref) и многое другое.
Предварительные условия
- Вам необходимо настроить проект в dbt.
- Примечание — Если вы используете Cloud CLI, вы можете подключиться к вашей платформе данных напрямую в интерфейсе dbt и вам не потребуется файл
profiles.yml.
- Примечание — Если вы используете Cloud CLI, вы можете подключиться к вашей платформе данных напрямую в интерфейсе dbt и вам не потребуется файл
- Для этого проекта у вас должны быть настроены ваши учётные данные для персональной разработки. CLI dbt будет использовать эти учётные данные, безопасно хранящиеся в dbt, для взаимодействия с вашей платформой данных.
- Вы должны использовать dbt версии 1.5 или выше. Инструкции по обновлению см. в разделе версии dbt.
Настройка dbt CLI
После установки Cloud CLI необходимо настроить его для подключения к проекту в dbt.
-
В dbt выберите проект, для которого вы хотите настроить Cloud CLI. В проекте уже должна быть настроена среда разработки.
-
В главном меню перейдите в раздел CLI.
-
В разделе Configure Cloud authentication нажмите Download CLI configuration file, чтобы скачать файл учётных данных
dbt_cloud.yml.URL-адреса регионов для загрузки учётных данных
Вы также можете скачать учётные данные по ссылкам, соответствующим вашему региону:
- Северная Америка: https://cloud.getdbt.com/cloud-cli
- EMEA: https://emea.dbt.com/cloud-cli
- APAC: https://au.dbt.com/cloud-cli
- Североамериканская ячейка 1:
https:/ACCOUNT_PREFIX.us1.dbt.com/cloud-cli - Однопользовательский:
https://YOUR_ACCESS_URL/cloud-cli
-
Сохраните файл
dbt_cloud.ymlв директории.dbt, в которой хранится конфигурация Cloud CLI.- Mac или Linux:
~/.dbt/dbt_cloud.yml - Windows:
C:\Users\yourusername\.dbt\dbt_cloud.yml
Файл конфигурации выглядит следующим образом:
version: "1"
context:
active-project: "<project id from the list below>"
active-host: "<active host from the list>"
defer-env-id: "<optional defer environment id>"
projects:
- project-name: "<project-name>"
project-id: "<project-id>"
account-name: "<account-name>"
account-id: "<account-id>"
account-host: "<account-host>" # for example, "cloud.getdbt.com"
token-name: "<pat-name>"
token-value: "<pat-value>"
- project-name: "<project-name>"
project-id: "<project-id>"
account-name: "<account-name>"
account-id: "<account-id>"
account-host: "<account-host>" # for example, "cloud.getdbt.com"
token-name: "<pat-name>"
token-value: "<pat-value>"Храните файл конфигурации в безопасном месте, так как он содержит API‑ключи. Ознакомьтесь с разделом FAQs, чтобы узнать, как создать директорию
.dbtи переместить файлdbt_cloud.yml. Если у вас есть несколько копий файла и его имя содержит числовое дополнение (например,dbt_cloud(2).yml), удалите лишний текст из имени файла. - Mac или Linux:
-
После загрузки файла конфигурации и создания директории перейдите к проекту в терминале:
cd ~/dbt-projects/jaffle_shop -
В файле
dbt_project.ymlубедитесь, что у вас есть (или добавлен) разделdbt-cloudс полемproject-id. Полеproject-idсодержит идентификатор проекта dbt, который вы хотите использовать.# dbt_project.yml
name:
version:
# Ваши конфигурации проекта...
dbt-cloud:
project-id: PROJECT_ID
- Чтобы найти идентификатор проекта, выберите Develop в навигационном меню dbt. Вы можете использовать URL, чтобы определить идентификатор проекта. Например, в
https://YOUR_ACCESS_URL/develop/26228/projects/123456идентификатор проекта —123456.
- Теперь вы должны иметь возможность использовать Cloud CLI и запускать команды dbt, такие как
dbt environment show, чтобы просмотреть сведения о конфигурации вашего dbt, илиdbt compile, чтобы скомпилировать модели в вашем dbt‑проекте.
С вашим репозиторием, клонированным заново, вы можете добавлять, редактировать и синхронизировать файлы с вашим репозиторием.
Установка переменных окружения
Чтобы задать переменные окружения в CLI dbt для вашего dbt‑проекта:
- В dbt нажмите на имя своей учетной записи в меню слева и выберите Account settings.
- В разделе Your profile выберите Credentials.
- Нажмите на свой проект и прокрутите страницу до раздела Environment variables.
- Нажмите Edit в правом нижнем углу и задайте пользовательские переменные окружения.
Использование dbt CLI
Cloud CLI использует тот же набор dbt commands и MetricFlow commands, что и dbt Core, для выполнения переданных вами команд. Например, вы можете использовать команду dbt environment, чтобы просмотреть детали конфигурации вашего dbt. С помощью Cloud CLI вы можете:
- Запускать несколько вызовов параллельно и обеспечивать безопасный параллелизм, который в настоящее время не гарантируется в
dbt-core. - Автоматически откладывать (defer) артефакты сборки в production‑окружение вашего Cloud‑проекта.
- Использовать project dependencies, которые позволяют зависеть от другого проекта через сервис метаданных в dbt.
- Зависимости между проектами мгновенно подключаются и ссылаются (через
ref) на публичные модели, определенные в других проектах. Вам не нужно самостоятельно выполнять или анализировать эти upstream‑модели — вместо этого вы используете их как API, возвращающее набор данных.
- Зависимости между проектами мгновенно подключаются и ссылаются (через
--helpКак совет, большинство инструментов командной строки имеют флаг --help, чтобы показать доступные команды и аргументы. Используйте флаг --help с dbt двумя способами:
dbt --help: Показывает доступные команды для dbtdbt run --help: Показывает доступные флаги для командыrun
Проверка SQL-файлов (linting)
Из CLI dbt вы можете вызвать SQLFluff — модульный и настраиваемый SQL-линтер, который предупреждает о сложных функциях, проблемах с синтаксисом, форматированием и ошибках компиляции. Многие из тех же флагов, которые можно передать в SQLFluff напрямую, также доступны при использовании CLI dbt.
Доступные команды SQLFluff:
lint— Линтинг SQL файлов, передавая список файлов или из стандартного ввода (stdin).fix— Исправление SQL файлов.format— Автоформатирование SQL файлов.
Чтобы выполнить линтинг SQL файлов, выполните команду следующим образом:
dbt sqlfluff lint [PATHS]... [flags]
Если путь не указан, dbt выполняет линтинг всех SQL файлов в текущем проекте. Чтобы выполнить линтинг конкретного SQL файла или директории, укажите PATHS как путь к SQL файлу(ам) или директории файлов. Чтобы выполнить линтинг нескольких файлов или директорий, передайте несколько флагов PATHS.
Чтобы показать подробную информацию о всех поддерживаемых dbt командах и флагах, выполните команду dbt sqlfluff -h.
Соображения
При запуске dbt sqlfluff из Cloud CLI важно учитывать следующие особенности поведения:
- dbt читает файл
.sqlfluff, если он существует, для любых пользовательских конфигураций, которые у вас могут быть. - Для рабочих процессов непрерывной интеграции/непрерывной разработки (CI/CD) ваш проект должен иметь файл
dbt_cloud.yml, и вы успешно выполнили команды из этого проекта dbt. - Команда SQLFluff вернет код выхода 0, если она выполнена с любыми нарушениями в файлах. Это поведение dbt отличается от поведения SQLFluff, где нарушение линтинга возвращает ненулевой код выхода. dbt Labs планирует решить эту проблему в следующем выпуске.
Важные моменты
Cloud CLI в настоящее время не поддерживает относительные пути в файле packages.yml. Вместо этого используйте Studio IDE, который поддерживает относительные пути в этом сценарии.
Ниже приведён пример конфигурации локального пакета в packages.yml, которая не будет работать с Cloud CLI:
# repository_root/my_dbt_project_in_a_subdirectory/packages.yml
packages:
- local: ../shared_macros
В этом примере ../shared_macros — это относительный путь, который указывает dbt:
..— перейти на один уровень вверх (вrepository_root);/shared_macros— найти папкуshared_macrosв корневом каталоге.
Чтобы обойти это ограничение, используйте Studio IDE, который полностью поддерживает относительные пути в packages.yml.