Настройка и использование dbt platform CLI
Узнайте, как настроить dbt platform CLI для вашего проекта dbt, чтобы выполнять команды dbt, например dbt environment show для просмотра конфигурации dbt или dbt compile для компиляции проекта и проверки моделей и тестов. Вы также получите следующие преимущества:
- Безопасное хранение учетных данных в dbt platform.
- Автоматическое перенаправление ссылок с использованием артефактов сборки из производственной среды вашего проекта.
- Более быстрые сборки с меньшими затратами.
- Поддержка Mesh (межпроектные ссылки ref) и другие возможности.
Предварительные требования
- Необходимо настроить проект в dbt.
- Примечание — Если вы используете dbt platform CLI, вы можете подключиться к своей платформе данных непосредственно в интерфейсе dbt platform; файл
profiles.ymlпри этом не требуется.
- Примечание — Если вы используете dbt platform CLI, вы можете подключиться к своей платформе данных непосредственно в интерфейсе dbt platform; файл
- В разделе Account settings необходимо настроить личные учетные данные пользователя для этого проекта. dbt platform CLI будет использовать эти учетные данные, безопасно хранящиеся в dbt, для взаимодействия с вашей платформой данных.
- Необходимо использовать dbt версии 1.5 или выше. Инструкции по обновлению см. в разделе Версии dbt.
Настройка dbt platform CLI
После установки dbt platform CLI необходимо настроить его для подключения к проекту dbt.
-
В dbt выберите проект, для которого вы хотите настроить dbt platform CLI. В проекте уже должна быть настроена среда разработки.
-
Скачайте файл учетных данных
dbt_cloud.ymlи сохраните его в каталоге.dbt(~/.dbt/dbt_cloud.ymlв macOS/Linux,C:\Users\yourusername\.dbt\dbt_cloud.ymlв Windows). Инструкции по скачиванию, полную структуру файла и справочник полей см. в разделеdbt_cloud.yml. -
После скачивания файла конфигурации и создания каталога перейдите в каталог проекта в терминале:
cd ~/dbt-projects/jaffle_shop -
Убедитесь, что в файле
dbt_project.ymlесть блокdbt-cloudс полемproject-id, указывающим на ваш проект dbt, или добавьте его.# dbt_project.yml
dbt-cloud:
project-id: PROJECT_ID -
Теперь вы можете использовать dbt platform CLI и выполнять команды dbt, например
dbt environment showдля просмотра подробной информации о конфигурации dbt илиdbt compileдля компиляции моделей в вашем проекте dbt.
После повторного клонирования репозитория вы можете добавлять и редактировать файлы, а также синхронизировать их с репозиторием.
Настройка переменных окружения
Чтобы настроить переменные окружения в dbt platform CLI для вашего проекта dbt:
- В dbt нажмите на имя своей учетной записи в левом боковом меню и выберите Account settings.
- В разделе Your profile выберите Credentials.
- Нажмите на свой проект и прокрутите страницу до раздела Environment variables.
- Нажмите Edit в правом нижнем углу, затем задайте переменные окружения на уровне пользователя.
Использование dbt platform CLI
dbt platform CLI использует тот же набор команд dbt и команд MetricFlow, что и dbt v1, для выполнения указанных вами команд. Например, используйте команду dbt environment, чтобы просмотреть подробную информацию о конфигурации dbt. С помощью dbt platform CLI вы можете:
- Выполнять несколько вызовов параллельно, обеспечивая безопасное параллельное выполнение.
- Автоматически перенаправлять ссылки, используя артефакты сборки из производственной среды вашего проекта.
- Использовать зависимости между проектами, которые позволяют вашему проекту зависеть от другого проекта с помощью сервиса метаданных в dbt.
- Зависимости между проектами позволяют сразу подключаться к публичным моделям, определенным в других проектах, и ссылаться на них (с помощью
ref). Вам не нужно самостоятельно выполнять или анализировать эти вышестоящие модели. Вместо этого вы работаете с ними как с API, возвращающим набор данных.
- Зависимости между проектами позволяют сразу подключаться к публичным моделям, определенным в других проектах, и ссылаться на них (с помощью
--helpПолезный совет: большинство инструментов командной строки поддерживают флаг --help для просмотра доступных команд и аргументов. Используйте флаг --help с dbt двумя способами:
dbt --help: выводит список доступных команд dbtdbt run --help: выводит список флагов, доступных для командыrun
Проверка SQL-файлов линтером
Из dbt platform CLI можно вызывать SQLFluff — модульный настраиваемый SQL-линтер, который предупреждает о сложных функциях, ошибках синтаксиса, форматирования и компиляции. Многие флаги, которые можно передавать SQLFluff, также доступны в dbt platform CLI.
Доступны следующие команды 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 из dbt platform CLI важно учитывать следующие особенности поведения:
- dbt считывает пользовательские настройки из файла
.sqlfluff, если он существует. - Для рабочих процессов непрерывной интеграции и непрерывной разработки (CI/CD) в проекте должен быть файл
dbt_cloud.yml, а команды из каталога этого проекта dbt должны быть успешно выполнены хотя бы один раз. - Команда SQLFluff возвращает код завершения 0, даже если при ее выполнении обнаружены нарушения в файлах. Это поведение dbt отличается от поведения SQLFluff, где нарушение, обнаруженное линтером, приводит к ненулевому коду завершения. dbt Labs планирует исправить это в одном из будущих выпусков.
Особенности использования
dbt platform CLI в настоящее время не поддерживает относительные пути в файле packages.yml. Вместо этого используйте Studio IDE, который поддерживает относительные пути в этом случае.
Ниже приведён пример конфигурации локального пакета в файле packages.yml, которая не будет работать с dbt platform 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.