Перейти к основному содержимому

Подключение PostgreSQL, Lakebase и AlloyDB

Платформа dbt поддерживает подключение к PostgreSQL и базам данных, совместимым с Postgres (AlloyDB, Lakebase).

Платформа dbt поддерживает подключение к PostgresSQL и Postgres-совместимым базам данных (AlloyDB, Lakebase).

Следующие поля являются обязательными при создании подключения:

ПолеОписаниеПримеры
Имя хостаИмя хоста базы данных, к которой нужно подключиться. Это может быть имя хоста или IP-адрес. Подробности для конкретного адаптера см. на страницах настройки.Postgres: xxx.us-east-1.amazonaws.com
ПортОбычно 54325439
База данныхЛогическая база данных, к которой нужно подключиться и в которой будут выполняться запросы.analytics

Примечание: При настройке подключения к Postgres в dbt параметры SSL недоступны для ввода.

Настройка подключения к PostgresНастройка подключения к Postgres

Для аутентификации пользователи могут использовать имя пользователя и пароль базы данных для Postgres и Postgres-совместимых баз данных. Подробнее о поддерживаемых возможностях, ограничениях и полезных рекомендациях см. на странице настройки конкретной базы данных.

Для аутентификации пользователи dbt могут использовать имя пользователя и пароль базы данных для Postgres и баз данных, совместимых с Postgres. Подробнее о поддерживаемых возможностях, ограничениях и полезных рекомендациях см. на странице настройки соответствующей базы данных.

В следующей таблице приведены параметры подключения к базе данных с использованием пароля.

ПолеОписаниеПримеры
userИмя пользователя учетной записи для входа в кластерmyuser
passwordПароль для аутентификации_password1!

Подключение через SSH-туннель​

Используйте SSH-туннель, если ваш экземпляр Postgres или AlloyDB недоступен из общедоступной сети и доступ к нему должен осуществляться через бастионный сервер. Если эта функция включена, dbt platform подключается к вашей базе данных, сначала устанавливая защищённое соединение с бастионным сервером, который затем перенаправляет трафик в вашу базу данных.

Чтобы настроить подключение через SSH-туннель:

  1. Перейдите в Account settings (нажав на название своей учётной записи в левом боковом меню) и выберите Connections.
  2. Выберите существующее подключение для редактирования или нажмите + New connection.
  3. В разделе Connection settings убедитесь, что установлен флажок SSH Tunnel Enabled.
  4. Введите имя хоста, имя пользователя и порт бастионного сервера.
Открытый ключ генерируется после сохраненияОткрытый ключ генерируется после сохранения
  1. Нажмите Save. dbt platform сгенерирует и отобразит открытый ключ.

  2. Скопируйте новый открытый ключ на бастионный сервер и добавьте его в файл 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. Выполните следующие действия:

  1. Убедитесь, что правила сетевой безопасности бастионного сервера разрешают подключения с IP-адресов dbt через настроенный вами порт.

  2. Настройте учетную запись пользователя с помощью интерфейса командной строки (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
  3. Скопируйте открытый ключ, сгенерированный dbt, и вставьте его в файл authorized_keys.

Теперь бастионный сервер должен быть готов к использованию dbt в качестве туннеля для подключения к среде Postgres.

Конфигурация​

Частые вопросы​

 Ошибка базы данных — не удалось подключиться к серверу: Connection timed out

Нашли ошибку?

0
Loading