Установка с помощью pip
Вам нужно использовать pip для установки dbt Core на операционных системах Windows, Linux или MacOS.
Вы можете установить dbt Core и плагины с помощью pip, потому что они являются модулями Python, распространяемыми на PyPI.
Что такое виртуальное окружение Python?
Виртуальное окружение Python создаёт изолированное рабочее пространство для Python‑проектов, предотвращая конфликты между зависимостями разных проектов и их версиями.
Вы можете создавать виртуальные окружения с помощью таких инструментов, как conda, poetry или venv. В этом руководстве используется venv, так как он лёгкий, имеет минимальное количество дополнительных зависимостей и входит в стандартную поставку Python.
Пользователям, которые хотят запускать dbt локально, например в dbt Core или через CLI dbt, может потребоваться установка виртуального окружения Python.
Предварительные требования
- Доступ к терминалу или командной строке.
- Установленный Python. Вы можете проверить наличие Python, выполнив
python --versionилиpython3 --versionв терминале или командной строке. - Установленный pip. Вы можете проверить наличие pip, выполнив
pip --versionилиpip3 --version. - Необходимые права для создания директорий и установки пакетов на вашем компьютере.
- После выполнения всех предварительных требований следуйте шагам ниже, чтобы настроить виртуальное окружение.
Настройка виртуального окружения Python
venv создаст виртуальное окружение Python внутри папки env.
В зависимости от используемой операционной системы вам потребуется выполнить определённые шаги для настройки виртуального окружения.
Чтобы создать виртуальное окружение Python, перейдите в каталог вашего проекта и выполните соответствующую команду. В результате будет создано новое виртуальное окружение в локальной папке, которую можно назвать как угодно. В соответствии с нашей конвенцией обычно используется имя env или env-anything-you-want.
- Unix/macOS
- Windows
- Создайте виртуальное окружение:
python3 -m venv env
- Активируйте виртуальное окружение:
source env/bin/activate
- Проверьте путь к Python:
which python
- Запустите Python:
env/bin/python
Примечание: синтаксис может немного отличаться в зависимости от используемой программы. Например, для bash это будет source env/Scripts/activate. В следующих примерах используется PowerShell:
- Создайте виртуальное окружение:
py -m venv env
- Активируйте виртуальное окружение:
.env\Scripts\activate
- Проверьте путь к Python:
where python
- Запустите Python:
env\Scripts\python
Если вы используете dbt Core, после создания виртуального окружения ознакомьтесь с разделом What are the best practices for installing dbt Core with pip?.
Если вы используете CLI dbt, после создания виртуального окружения вы можете установить CLI dbt с помощью pip.
Деактивация виртуального окружения
Чтобы переключиться на другой проект или выйти из виртуального окружения, выполните команду deactivate, пока виртуальное окружение активно:
deactivate
Создание alias
Чтобы активировать ваше окружение dbt с каждым новым окном или сессией оболочки, вы можете создать алиас для команды source в вашем $HOME/.bashrc, $HOME/.zshrc или любом другом конфигурационном файле, который использует ваша оболочка.
Например, добавьте следующее в ваш rc файл, заменив <PATH_TO_VIRTUAL_ENV_CONFIG> на путь к вашей конфигурации виртуального окружения.
alias env_dbt='source <PATH_TO_VIRTUAL_ENV_CONFIG>/bin/activate'
Установка адаптера
После того как вы определились, какой адаптер будете использовать, его можно установить через командную строку. Установка адаптера не устанавливает автоматически dbt-core. Это сделано потому, что версии адаптеров и dbt Core были разделены между собой, и теперь мы не хотим перезаписывать уже существующие установки dbt-core.
python -m pip install dbt-core dbt-ADAPTER_NAME
Например, если вы используете Postgres:
python -m pip install dbt-core dbt-postgres
Это установит только dbt-core и dbt-postgres:
$ dbt --version
installed version: 1.0.0
latest version: 1.0.0
Up to date!
Plugins:
- postgres: 1.0.0
Все адаптеры строятся поверх dbt-core. Некоторые из них также зависят от других адаптеров: например, dbt-redshift строится поверх dbt-postgres. В таком случае вы также увидите эти адаптеры среди зависимостей, установленных в вашей конкретной конфигурации.
Обновление адаптеров
Чтобы обновить конкретный плагин адаптера:
python -m pip install --upgrade dbt-ADAPTER_NAME
Установка только dbt-core
Если вы разрабатываете инструмент, который интегрируется с dbt Core, вам может понадобиться установить только core‑библиотеку, без адаптера базы данных. Обратите внимание, что в этом случае вы не сможете использовать dbt как CLI‑инструмент.
python -m pip install dbt-core
Изменение версий dbt Core
Вы можете обновить или понизить версии dbt Core, используя опцию --upgrade в командной строке (CLI). Для получения дополнительной информации см. Лучшие практики обновления версий Core.
Чтобы обновить dbt до последней версии:
python -m pip install --upgrade dbt-core
Чтобы понизить до более старой версии, укажите версию, которую вы хотите использовать. Эта команда может быть полезна, когда вы решаете проблемы с зависимостями пакетов. Например:
python -m pip install --upgrade dbt-core==1.9
pip install dbt
Осенью 2023 года пакет dbt на PyPI стал поддерживаемым способом установки Cloud CLI.
Если у вас есть рабочие процессы или интеграции, которые зависят от установки пакета с именем dbt, вы можете добиться того же поведения, установив те же пять пакетов, которые он использовал:
python -m pip install \
dbt-core \
dbt-postgres \
dbt-redshift \
dbt-snowflake \
dbt-bigquery \
dbt-trino
Или, что ещё лучше, просто установите нужный пакет (или пакеты)!
Установка prerelease-версий
Prerelease‑версия адаптера — это версия, выпущенная до финального стабильного релиза. Она позволяет пользователям тестировать новые возможности, оставлять обратную связь и получать ранний доступ к будущему функционалу — чтобы ваша система была готова к финальному выпуску.
Использование prerelease‑версии адаптера даёт множество преимуществ, например, ранний доступ к новым возможностям и улучшениям до выхода стабильной версии. Также это полезно для проверки совместимости: вы можете протестировать адаптер в своей среде и заранее выявить интеграционные проблемы, чтобы система была готова к финальному релизу.
При этом важно учитывать, что использование prerelease‑версии до финального стабильного выпуска означает, что версия может быть не полностью оптимизирована и иногда приводить к неожиданному поведению. Кроме того, частые обновления и патчи на этапе prerelease могут требовать дополнительного времени и усилий на сопровождение. Также флаг --pre может установить совместимые prerelease‑версии других зависимостей, что потенциально увеличивает нестабильность.
Чтобы установить prerelease‑версии dbt Core и вашего адаптера, используйте следующую команду (замените dbt-adapter-name на имя вашего адаптера):
python3 -m pip install --pre dbt-core dbt-adapter-name
Например, если вы используете Snowflake, команда будет выглядеть так:
python3 -m pip install --pre dbt-core dbt-snowflake
Мы рекомендуем устанавливать prerelease‑версии в виртуальной среде Python. Например, чтобы установить prerelease‑версию в виртуальной среде Python для POSIX bash/zsh, выполните следующие команды:
dbt --version
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install --pre dbt-core dbt-adapter-name
source .venv/bin/activate
dbt --version
Обратите внимание: это также установит prerelease‑версии всех зависимостей.
Активация виртуальной среды
Чтобы устанавливать или использовать пакеты внутри виртуальной среды:
- Активируйте виртуальную среду, чтобы добавить её собственные исполняемые файлы Python и
pipв PATH вашей оболочки. Это гарантирует, что вы используете изолированное окружение.
Подробнее см. в разделе Create and use virtual environments.
Выберите вашу операционную систему и выполните соответствующую команду для активации: