Подключение к кластеру Greenplum® из приложений
В этом разделе представлены настройки для подключения к хостам кластера Yandex MPP Analytics for PostgreSQL с помощью инструментов командной строки, из графических IDE, pgAdmin 4 и Docker-контейнера. О подключении из кода вашего приложения см. Примеры кода.
При создании кластера Greenplum® пользовательская база данных не создается. Для проверки подключения используйте служебную базу postgres.
Для подключения к кластеру с публичным доступом подготовьте SSL-сертификат. В примерах предполагается, что SSL-сертификат root.crt расположен в директории:
/home/<домашняя_директория>/.postgresql/для Ubuntu;$HOME\AppData\Roaming\postgresqlдля Windows.
Подключиться к кластеру можно как с использованием обычного FQDN хоста-мастера, так и особого FQDN первичного хоста-мастера. О том, как получить FQDN хоста, см. инструкцию.
Инструменты командной строки
Примеры кода с заполненным FQDN хоста доступны в консоли управления
Linux (Bash)
Перед подключением установите зависимости:
sudo apt update && sudo apt install --yes postgresql-client
Подключитесь к базе данных:
psql "host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net \
port=6432 \
sslmode=disable \
dbname=postgres \
user=<имя_пользователя> \
target_session_attrs=read-write"
psql "host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net \
port=6432 \
sslmode=verify-full \
dbname=postgres \
user=<имя_пользователя> \
target_session_attrs=read-write"
После выполнения команды введите пароль пользователя для завершения процедуры подключения.
Для проверки успешности подключения выполните запрос:
SELECT version();
Windows (PowerShell)
Перед подключением установите PostgreSQL для Windows
Подключитесь к базе данных:
& "C:\Program Files\PostgreSQL\<версия>\bin\psql.exe" "`
host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net `
port=6432 `
sslmode=disable `
dbname=postgres `
user=<имя_пользователя>"
& "C:\Program Files\PostgreSQL\<версия>\bin\psql.exe" "`
host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net `
port=6432 `
sslmode=verify-full `
dbname=postgres `
user=<имя_пользователя>"
После выполнения команды введите пароль пользователя для завершения процедуры подключения.
Для проверки успешности подключения выполните запрос:
SELECT version();
Подключение с авторизацией через IAM
К базе данных Greenplum® можно подключиться с помощью интерфейса командной строки Yandex Cloud (CLI), используя авторизацию через IAM. Для этого нужно привязать к пользователю Greenplum® аккаунт на Яндексе или федеративный аккаунт. Подключаться с авторизацией через IAM можно только к кластеру в публичном доступе, при этом использование SSL-сертификата не требуется.
Перед подключением установите клиент PostgreSQL:
sudo apt update && sudo apt install --yes postgresql-client
Подготовьте кластер Yandex MPP Analytics for PostgreSQL к подключению:
-
Перейдите в сервис Yandex MPP Analytics for PostgreSQL.
-
Нажмите на имя нужного кластера.
-
Назначьте роль аккаунту пользователя, который будет подключаться к БД:
- Выберите вкладку Права доступа и нажмите кнопку Назначить роли.
- Введите электронную почту пользователя, к которой привязан аккаунт.
- Нажмите кнопку
Добавить роль и выберите рольmanaged-greenplum.clusters.connector. - Нажмите кнопку Сохранить.
-
Создайте пользователя Greenplum® и предоставьте ему доступ к нужной БД:
-
Подключитесь к кластеру Yandex MPP Analytics for PostgreSQL любым удобным методом.
-
Создайте пользователя Greenplum®, указав в качестве его имени электронную почту, к которой привязан аккаунт:
CREATE ROLE "<электронная_почта_аккаунта>" LOGIN ENCRYPTED PASSWORD '<пароль>'; -
При необходимости настройте привилегии и атрибуты созданного пользователя Greenplum®.
-
-
Добавьте правило аутентификации созданного пользователя:
-
Выберите вкладку Аутентификация пользователей.
-
Нажмите кнопку Редактировать правила.
-
Нажмите кнопку
Добавить правило и задайте его параметры:- Тип — тип соединения.
- База данных — имя БД.
- Пользователь — электронная почта пользователя, к которой привязан аккаунт.
- Адрес (CIDR/FQDN) — диапазон IP-адресов, с которых будет выполняться подключение к базе данных.
- Метод —
iam.
-
Нажмите кнопку Сохранить.
-
Чтобы подключиться к БД Greenplum®, выполните команду:
yc managed-greenplum connect <имя_или_идентификатор_кластера> --db <имя_БД>
Подключение из графических IDE
Подключения проверялись в следующем окружении:
- Ubuntu 20.04, DBeaver:
22.2.4; - MacOS Monterey 12.7:
- JetBrains DataGrip:
2023.3.4; - DBeaver Community:
24.0.0.
- JetBrains DataGrip:
Подключаться из графических IDE можно только к кластеру в публичном доступе с использованием SSL-сертификата.
Чтобы избежать ошибок при подключении, сохраните сертификат
-
Создайте источник данных:
-
Выберите в меню File → New → Data Source → Greenplum®.
-
На вкладке General:
-
Укажите параметры подключения:
-
User, Password — имя и пароль пользователя БД;
-
URL — строка подключения. Используйте особый FQDN первичного мастера:
jdbc:postgresql://c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6432/<имя_БД>
-
-
Нажмите ссылку Download, чтобы загрузить драйвер соединения.
-
-
На вкладке SSH/SSL:
- Включите настройку Use SSL.
- В поле CA file укажите путь к файлу SSL-сертификата для подключения.
-
-
Нажмите ссылку Test Connection для проверки подключения. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
-
Нажмите кнопку OK, чтобы сохранить источник данных.
- Создайте новое соединение с БД:
- Выберите в меню База данных пункт Новое соединение.
- Выберите из списка БД Greenplum®.
- Нажмите кнопку Далее.
- Укажите параметры подключения на вкладке Главное:
- Хост — особый FQDN первичного мастера:
c-<идентификатор_кластера>.rw.mdb.yandexcloud.net; - Порт —
6432; - База данных — имя БД для подключения;
- В блоке Аутентификация укажите имя и пароль пользователя БД.
- Хост — особый FQDN первичного мастера:
- На вкладке SSL:
- Включите настройку Использовать SSL.
- В поле Корневой сертификат укажите путь к сохраненному файлу SSL-сертификата.
- Нажмите кнопку Тест соединения ... для проверки подключения. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
- Нажмите кнопку Готово, чтобы сохранить настройки соединения с БД.
Подключение из pgAdmin 4
Подключение проверялось для pgAdmin 4
Подключаться из pgAdmin 4 можно только к хостам кластера в публичном доступе с использованием SSL-сертификата.
Создайте новое подключение к серверу:
-
Выберите в меню Object → Register → Server...
-
На вкладке General в поле Name укажите имя, под которым кластер будет отображаться в интерфейсе pgAdmin 4. Имя может быть любым.
-
На вкладке Connection укажите параметры подключения:
- Host name/address — особый FQDN хоста-мастера или обычный FQDN хоста;
- Port —
6432; - Maintenance database — имя служебной базы данных
postgres; - Username — имя пользователя, от имени которого выполняется подключение;
- Password — пароль пользователя.
-
На вкладке Parameters:
- Установите параметр SSL mode в значение
verify-full. - Добавьте новый параметр Root certificate и укажите в нем путь к сохраненному файлу SSL-сертификата.
- Установите параметр SSL mode в значение
-
Нажмите кнопку Save, чтобы сохранить настройки подключения к серверу.
Кластер появится в списке серверов в навигационном меню.
Для наблюдения за состоянием кластера рекомендуется использовать сервис Yandex Monitoring вместо вкладки Dashboard в pgAdmin 4, потому что в ней может возникать ошибка:
column "wait_event_type" does not exist LINE 10: wait_event_type || ': ' || wait_event AS wait_event, ^
При работе с другими вкладками в pgAdmin 4 эта ошибка не возникает.
Подготовка к подключению из Docker-контейнера
Чтобы подключаться к кластеру Greenplum® из Docker-контейнера, добавьте в Dockerfile строки:
RUN apt-get update && \
apt-get install postgresql-client --yes
RUN apt-get update && \
apt-get install wget postgresql-client --yes && \
mkdir --parents ~/.postgresql && \
wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" \
--output-document ~/.postgresql/root.crt && \
chmod 0655 ~/.postgresql/root.crt
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах.