Подключение PostgreSQL, Lakebase и AlloyDB
Платформа dbt поддерживает подключение к PostgreSQL и базам данных, совместимым с Postgres (AlloyDB, Lakebase).
Платформа dbt поддерживает подключение к PostgresSQL и Postgres-совместимым базам данных (AlloyDB, Lakebase).
Следующие поля являются обязательными при создании подключения:
| Поле | Описание | Примеры |
|---|---|---|
| Имя хоста | Имя хоста базы данных, к которой нужно подключиться. Это может быть имя хоста или IP-адрес. Подробности для конкретного адаптера см. на страницах настройки. | Postgres: xxx.us-east-1.amazonaws.com |
| Порт | Обычно 5432 | 5439 |
| База данных | Логическая база данных, к которой нужно подключиться и в которой будут выполняться запросы. | analytics |
Примечание: При настройке подключения к Postgres в dbt параметры SSL недоступны для ввода.
Для аутентификации пользователи могут использовать имя пользователя и пароль базы данных для Postgres и Postgres-совместимых баз данных. Подробнее о поддерживаемых возможностях, ограничениях и полезных рекомендациях см. на странице настройки конкретной базы данных.
Для аутентификации пользователи dbt могут использовать имя пользователя и пароль базы данных для Postgres и баз данных, совместимых с Postgres. Подробнее о поддерживаемых возможностях, ограничениях и полезных рекомендациях см. на странице настройки соответствующей базы данных.
В следующей таблице приведены параметры подключения к базе данных с использованием пароля.
| Поле | Описание | Примеры |
|---|---|---|
user | Имя пользователя учетной записи для входа в кластер | myuser |
password | Пароль для аутентификации | _password1! |
Подключение через SSH-туннель
Используйте SSH-туннель, если ваш экземпляр Postgres или AlloyDB недоступен из общедоступной сети и доступ к нему должен осуществляться через бастионный сервер. Если эта функция включена, dbt platform подключается к вашей базе данных, сначала устанавливая защищённое соединение с бастионным сервером, который затем перенаправляет трафик в вашу базу данных.
Чтобы настроить подключение через SSH-туннель:
- Перейдите в Account settings (нажав на название своей учётной записи в левом боковом меню) и выберите Connections.
- Выберите существующее подключение для редактирования или нажмите + New connection.
- В разделе Connection settings убедитесь, что установлен флажок SSH Tunnel Enabled.
- Введите имя хоста, имя пользователя и порт бастионного сервера.
-
Нажмите Save. dbt platform сгенерирует и отобразит открытый ключ.
-
Скопируйте новый открытый ключ на бастионный сервер и добавьте его в файл
authorized_keysсервера, чтобы разрешить dbt platform подключаться через бастионный сервер. Если новый ключ не добавлен, установить соединение через SSH-туннель не удастся.importantКаждый раз, когда вы создаёте и сохраняете новое подключение через SSH-туннель, dbt platform генерирует уникальную пару SSH-ключей, даже если параметры подключения полностью совпадают с параметрами существующего подключения.
О бастионном сервере в AWS
Что такое бастионный сервер?
Бастионный сервер в Amazon Web Services (AWS) — это хост, который позволяет dbt устанавливать SSH-соединение.
dbt только отправляет запросы и не передаёт большие объёмы данных. Это означает, что бастионный сервер может работать на инстансе AWS любого размера, например t2.small или t2.micro.
Убедитесь, что инстанс расположен в той же Virtual Private Cloud (VPC), что и экземпляр Postgres, и что для группы безопасности bastion‑сервера настроены правила, позволяющие подключаться к порту хранилища данных.
Настройка bastion‑сервера в AWS
Чтобы настроить SSH-туннель в dbt, вам потребуется указать имя хоста или IP-адрес вашего бастионного сервера, имя пользователя и выбранный вами порт, к которому будет подключаться dbt. Выполните следующие действия:
-
Убедитесь, что правила сетевой безопасности бастионного сервера разрешают подключения с IP-адресов dbt через настроенный вами порт.
-
Настройте учетную запись пользователя с помощью интерфейса командной строки (CLI) экземпляра бастионного сервера. В следующем примере используется имя пользователя
dbtcloud:sudo groupadd dbtcloud
sudo useradd -m -g dbtcloud dbtcloud
sudo su - dbtcloud
mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys -
Скопируйте открытый ключ, сгенерированный dbt, и вставьте его в файл authorized_keys.
Теперь бастионный сервер должен быть готов к использованию dbt в качестве туннеля для подключения к среде Postgres.

