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

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

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

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

FieldDescriptionExamples
Host NameИмя хоста базы данных, к которой выполняется подключение. Это может быть как DNS-имя, так и IP-адрес. Обратитесь к страницам настройки, чтобы узнать hostname для вашего адаптера.Postgres: xxx.us-east-1.amazonaws.com
PortОбычно 54325439
DatabaseЛогическая база данных, к которой выполняется подключение и в которой будут запускаться запросы.analytics
Loading table...

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

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

Параметры аутентификации

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

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

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

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

Чтобы подключиться к экземпляру Postgres or AlloyDB через SSH‑туннель, при создании подключения выберите опцию Use SSH Tunnel. При настройке туннеля необходимо указать hostname, имя пользователя и порт для bastion‑сервера.

После сохранения подключения для него будет сгенерирован и отображён публичный ключ. Вы можете скопировать этот публичный ключ на bastion‑сервер, чтобы авторизовать dbt для подключения к вашей базе данных через bastion‑сервер.

Открытый ключ создаётся после сохраненияОткрытый ключ создаётся после сохранения

О бастионном сервере в AWS

Что такое бастионный сервер?

Bastion‑сервер в Amazon Web Services (AWS) — это хост, который позволяет dbt устанавливать SSH‑соединение.


dbt отправляет только запросы и не передаёт большие объёмы данных. Это означает, что bastion‑сервер может работать на AWS‑инстансе практически любого размера, например t2.small или t2.micro.

Убедитесь, что инстанс расположен в той же Virtual Private Cloud (VPC), что и экземпляр Postgres, и что для группы безопасности bastion‑сервера настроены правила, позволяющие подключаться к порту хранилища данных.

Настройка bastion‑сервера в AWS

Чтобы настроить SSH‑туннель в dbt, вам нужно указать hostname/IP вашего bastion‑сервера, имя пользователя и порт (на ваш выбор), к которому будет подключаться dbt. Выполните следующие шаги:

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

  2. Создайте пользовательскую учётную запись с помощью CLI инстанса bastion‑сервера. В следующем примере используется имя пользователя 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.

После этого bastion‑сервер будет готов к использованию dbt в качестве туннеля для подключения к окружению Postgres.

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

Чтобы предоставить пользователям или ролям разрешения на уровне базы данных (права доступа и привилегии), обратитесь к странице Postgres permissions.

FAQs

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

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

0
Loading