Подключение к dbt Core
Примечание.
В этой статье рассматривается dbt Core — версия dbt для локального компьютера разработки, которая взаимодействует с хранилищами Databricks SQL и кластерами Azure Databricks в рабочих областях Azure Databricks. Чтобы использовать размещенную версию dbt (называется dbt Cloud) или использовать Partner Connect для быстрого создания хранилища SQL в рабочей области, а затем подключения к dbt Cloud см. в статье Connect to dbt Cloud.
dbt (средство построения данных) — это среда разработки, позволяющая аналитикам и специалистам по анализу данных преобразовывать данные с помощью простых инструкций выборки (SELECT). dbt преобразует такие инструкции выборки в таблицы и представления. dbt компилирует код в необработанные инструкции SQL, а затем выполняет его в указанной базе данных в Azure Databricks. dbt поддерживает шаблоны и лучшие методики программирования для совместной работы, такие как управление версиями, документация, модульная архитектура и другие.
dbt не извлекает и не загружает данные. dbt работает только с этапом преобразования, используя архитектуру "преобразование после загрузки". В dbt предполагается, что у вас уже есть копия данных в базе.
В этой статье рассматривается использование dbt Core. dbt Core позволяет писать код dbt в текстовом редакторе или в интегрированной среде разработки на локальном компьютере разработки, а затем запускать dbt из командной строки. В dbt Core предусмотрен интерфейс командной строки (CLI) dbt. Интерфейс dbt CLI является бесплатным и имеет открытый код.
Также доступна размещенная версия dbt под названием dbt Cloud. dbt Cloud изначально предоставляется с поддержкой таких функций, как планирование заданий, CI/CD, предоставление документации, мониторинг и оповещения, а также интегрированная среда разработки (IDE). Дополнительные сведения см. в разделе Подключение к dbt Cloud. План dbt Cloud Developer включает одно бесплатное рабочее место разработчика. Также доступны платные планы Team и Enterprise. Дополнительные сведения см. в разделе цен на dbt на веб-сайте dbt.
Поскольку версии dbt Core и dbt Cloud могут использовать размещенные репозитории git (например, на GitHub, GitLab или BitBucket), с помощью использовать dbt Core можно создать проект dbt и опубликовать его для пользователей dbt Cloud. Дополнительные сведения см. в статьях Создание проекта dbt и Использование существующего проекта на веб-сайте dbt.
Общие сведения о dbt см. в приведенном ниже видео на YouTube (26 минут).
Требования
Перед установкой dbt Core необходимо установить на компьютере локальной разработки следующие компоненты:
- Python 3.7 или более поздней версии;
- служебную программу для создания виртуальных сред Python (например, pipenv).
Для проверки подлинности также требуется одно из следующих действий.
(Рекомендуется) dbt Core в качестве приложения OAuth в вашей учетной записи. Эта функция включена по умолчанию.
Личный маркер доступа
Примечание.
В качестве рекомендации по обеспечению безопасности при проверке подлинности с помощью автоматизированных средств, систем, сценариев и приложений Databricks рекомендуется использовать маркеры OAuth.
Если вы используете проверку подлинности маркера личного доступа, Databricks рекомендует использовать личные маркеры доступа, принадлежащие субъектам-службам, а не пользователям рабочей области. Сведения о создании маркеров для субъектов-служб см. в разделе "Управление маркерами" для субъекта-службы.
Шаг 1. Создайте и активируйте виртуальное окружение Python
На этом шаге используется pipenv
, чтобы создать виртуальное окружение Python. Мы рекомендуем использовать виртуальное окружение Python, так как оно изолирует версии пакетов и зависимости кода от конкретного окружения, независимо от версий пакета и зависимостей кода в других окружениях. Это помогает сократить число несовпадений версий пакета и конфликтов зависимостей кода.
В окне терминала перейдите в пустой каталог (при необходимости сначала создайте этот каталог). Эта процедура создает пустой каталог с именем
dbt_demo
в корне домашнего каталога пользователя.Unix, Linux, macOS
mkdir ~/dbt_demo cd ~/dbt_demo
Windows
mkdir %USERPROFILE%\dbt_demo cd %USERPROFILE%\dbt_demo
В этом пустом каталоге создайте файл с именем
Pipfile
с приведенным ниже содержимым. Этот Pipfile указываетpipenv
использовать Python версии 3.8.6. Если вы используете другую версию, замените3.8.6
на нужный номер версии.[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] dbt-databricks = "*" [requires] python_version = "3.8.6"
Примечание.
В предыдущей строке
dbt-databricks = "*"
указываетpipenv
использовать последнюю версию пакетаdbt-databricks
. В рабочих сценариях следует заменить*
конкретной версией пакета, который необходимо использовать. Databricks рекомендует версию 1.6.0 или больше пакета dbt-databricks. См. раздел Журнал выпусков dbt-databricks на веб-сайте индекса пакетов Python (PyPI).Создайте виртуальное окружение Python в этом каталоге, запустив
pipenv
и указав версию Python, которую нужно использовать. Эта команда задает Python версии 3.8.6. Если вы используете другую версию, замените3.8.6
на нужный номер версии:pipenv --python 3.8.6
Установите адаптер Databricks dbt, запустив
pipenv
с параметромinstall
. При этом вPipfile
из PyPI будут установлены пакеты, в том числе пакет адаптера Databricks dbt —dbt-databricks
. Пакет адаптера Databricks dbt автоматически устанавливает dbt Core и другие зависимости.Внимание
Если на локальном компьютере разработки используется любая из следующих операционных систем, сначала необходимо выполнить дополнительные действия: CentOS, MacOS, Ubuntu, Debian и Windows. См. раздел "Соответствует ли моя операционная система требованиям" на странице Использование pip для установки dbt на веб-сайте dbt Labs.
pipenv install
Активируйте это виртуальное окружение, выполнив
pipenv shell
. Чтобы подтвердить активацию, перед запросом в окне терминала появится(dbt_demo)
. Виртуальное окружение начинает использовать указанную версию Python и изолирует все версии пакетов и зависимости кода в этом новом окружении.pipenv shell
Примечание.
Чтобы деактивировать это виртуальное окружение, выполните команду
exit
.(dbt_demo)
перестанет отображаться перед запросом. Если вы запуститеpython --version
илиpip list
при отключенном виртуальном окружении, вы можете увидеть другую версию Python, другой список доступных пакетов или версий пакета, либо и то, и другое.Убедитесь, что виртуальное окружение работает с ожидаемой версией Python. Для этого выполните команду
python
с параметром--version
.python --version
Если отображается не та версия Python, которая вам нужна, убедитесь, что вы активировали виртуальное окружение, выполнив
pipenv shell
.Убедитесь, что виртуальное окружение работает под управлением ожидаемой версии dbt и адаптера Databricks dbt. Для этого запустите
dbt
с параметром--version
.dbt --version
Если отображается не та версия dbt или адаптера Databricks dbt, которая вам нужна, убедитесь, что вы активировали виртуальное окружение, выполнив
pipenv shell
. Если по-прежнему отображается неправильная версия, попробуйте заново установить dbt или адаптер Databricks dbt после активации виртуального окружения.
Шаг 2. Создание проекта dbt, указание и проверка параметров подключения
На этом шаге вы создадите проект dbt, который представляет собой коллекцию связанных каталогов и файлов, необходимых для использования dbt. Затем настройте профили подключения, которые содержат параметры подключения к кластеру Azure Databricks и (или) хранилищу SQL. Чтобы повысить безопасность, проекты и профили dbt по умолчанию хранятся в разных расположениях.
Совет
Вы можете подключиться к существующим кластеру или хранилищу SQL или создать новые.
- Использование существующего кластера или хранилища SQL может быть эффективным для нескольких проектов dbt, для использования dbt в команде или для вариантов использования при разработке.
- Новый кластер или хранилище SQL позволяют запускать один проект dbt в изоляции для вариантов использования в рабочей среде, а также использовать автоматическое завершение для экономии средств, если этот проект dbt не запущен.
Используйте Azure Databricks, чтобы создать новый кластер или хранилище SQL, а затем создайте ссылку на созданные или существующие кластер или хранилища SQL из профиля dbt.
Если виртуальное окружение все еще активировано, выполните команду dbt init с именем своего проекта. Эта процедура создает проект с именем
my_dbt_demo
.dbt init my_dbt_demo
При появлении запроса на выбор
databricks
илиspark
базу данных введите номер, соответствующийdatabricks
.При появлении запроса на
host
получение значения выполните следующие действия:- В качестве кластера введите значение Server Hostname (Имя узла сервера) с вкладки Advanced Options, JDBC/ODBC (Дополнительные параметры, JDBC/ODBC) кластера Azure Databricks.
- Введите значение Имя узла сервера с вкладки Сведения о подключении для хранилища SQL.
При появлении запроса на
http_path
получение значения выполните следующие действия:- В качестве кластера введите значение HTTP Path (Путь HTTP) с вкладки Advanced Options, JDBC/ODBC (Дополнительные параметры, JDBC/ODBC) кластера Azure Databricks.
- Введите значение Путь HTTP с вкладки Сведения о подключении для хранилища SQL.
Чтобы выбрать тип проверки подлинности, введите номер, соответствующий
use oauth
(рекомендуется) илиuse access token
.Если вы выбрали
use access token
тип проверки подлинности, введите значение личного маркера доступа Azure Databricks.Примечание.
В качестве рекомендации по обеспечению безопасности при проверке подлинности с помощью автоматизированных средств, систем, сценариев и приложений Databricks рекомендуется использовать личные маркеры доступа, принадлежащие субъектам-службам, а не пользователям рабочей области. Сведения о создании маркеров для субъектов-служб см. в разделе "Управление маркерами" для субъекта-службы.
При появлении запроса на
desired Unity Catalog option
значение введите номер, соответствующийuse Unity Catalog
илиnot use Unity Catalog
.Если вы решили использовать каталог Unity, введите требуемое значение
catalog
при появлении запроса.Введите нужные значения для
schema
иthreads
при появлении соответствующего запроса.dbt записывает данные в файл
profiles.yml
. Расположение этого файла указывается в выходных данных командыdbt init
. Это расположение также можно вывести позже, выполнив командуdbt debug --config-dir
. Теперь этот файл можно открыть, чтобы изучить и проверить его содержимое.Если вы выбрали
use oauth
тип проверки подлинности, добавьте профиль проверки подлинности "компьютер — компьютер" (M2M) или "profiles.yml
пользователь — компьютер" (U2M).Примеры см. в статье Настройка входа Azure Databricks из dbt Core с идентификатором Microsoft Entra.
Databricks не рекомендует указывать секреты
profiles.yml
напрямую. Вместо этого задайте идентификатор клиента и секрет клиента в качестве переменных среды.Убедитесь, что сведения о подключении правильны, проходя в
my_dbt_demo
каталог и выполнивdbt debug
команду.Если вы выбрали
use oauth
тип проверки подлинности, вам будет предложено войти в систему с помощью поставщика удостоверений.Внимание
Перед началом работы убедитесь, что кластер или хранилище SQL запущены.
Вы должны увидеть результат, аналогичный приведенному ниже:
cd my_dbt_demo dbt debug
... Configuration: profiles.yml file [OK found and valid] dbt_project.yml file [OK found and valid] Required dependencies: - git [OK found] Connection: ... Connection test: OK connection ok
Следующие шаги
- Создание, запуск и тестирование моделей dbt Core локально. Ознакомьтесь с руководством по dbt Core.
- Запустите проекты dbt Core в качестве задач задания Azure Databricks. См. статью "Использование преобразований dbt" в задании Azure Databricks.
Дополнительные ресурсы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по