Подключение Trino к PostgreSQL®
В лабораторной работе мы рассмотрим:
сценарий подключения инстанса Trino к PostgreSQL®;
отправку запроса через популярный JDBC-клиент DBeaver;
создание, заполнение таблиц и объединение данных из двух таблиц через SQL-запрос.
Все сущности должны располагаться в одной VPC и подсетях одного типа.
Перед началом работы
Зарегистрируйтесь в личном кабинете Cloud.ru.
Если вы уже зарегистрированы, войдите под своей учетной записью.
Создайте публичный SNAT-шлюз, чтобы обеспечить инстансу доступ в интернет и связь с внешними источниками.
Установите JDBC-клиент DBeaver.
Создайте базу данных Managed PostgreSQL®
Авторизуйтесь в личном кабинете.
Перейдите в раздел Evolution и выберите сервис Managed PostgreSQL®, в правом верхнем углу нажмите Создать кластер.
Создайте две базы данных, следуя шагам, описанным в документации Managed PostgreSQL®.
Задайте следующие названия:
Названия кластеров DBaaS-PG-1 и DBaaS-PG-2.
Названия баз данных dbaas_pg_1 и dbaas_pg_2.
Дождитесь, когда статус обоих кластеров изменится на «Доступен».
Откройте карточки созданных кластеров PostgreSQL®. Информация из них понадобится на следующих этапах.
Создайте подключения к базе данных
Перейдите в раздел Evolution и выберите сервис Managed Trino.
Откройте раздел Подключения.
Нажмите Создать подключение.
Заполните поля следующими значениями:
Название — postgres_1.
Коннектор — PostgreSQL.
Хост — внутренний IP, указанный в карточке кластера DBaaS-PG-1.
Порт — порт, указанный в карточке кластера DBaaS-PG-1.
Название базы данных — dbaas_pg_1.
Логин — логин, указанный в карточке кластера DBaaS-PG-1.
Пароль — секретный ключ сервиса Secret Manager.
Если нужного секрета нет, создайте новый, нажав Создать новый секрет.
Нажмите Создать.
Создайте второе подключение и заполните поля следующими значениями:
Название — postgres_2.
Коннектор — PostgreSQL.
Хост — внутренний IP, указанный в карточке кластера DBaaS-PG-2.
Порт — порт, указанный в карточке кластера DBaaS-PG-2.
Название базы данных — dbaas_pg_2.
Логин — логин, указанный в карточке кластера DBaaS-PG-2.
Пароль — секретный ключ.
Если нужного секрета нет, создайте новый, нажав Создать новый секрет.
Нажмите Создать.
На странице Managed Trino на вкладке Подключения появится две записи с названиями «postgres_1» и «postgres_2».

Создайте инстанс Trino
Перейдите в раздел Evolution и выберите сервис Managed Trino.
Откройте раздел Инстансы.
Нажмите Создать инстанс.
В блоке Общие параметры заполните поля:
Название — trino-instance-lab-1.
Вычислительные ресурсы — Small (vCPU 4, RAM 16).
Количество нод — 3.
Подключение — выберите созданные подключения postgres_1 и postgres_2.
Нажмите Продолжить.
В блоке Сетевые настройки заполните поля:
VPC — выберите сеть VPC.
Зона доступности — выберите зону доступности, для которой создан SNAT-шлюз.
Подсеть — выберите подсеть, в которой располагается кластер PostgreSQL®.
Группа безопасности — выберите группу безопасности.
Подключить публичный хост — активируйте переключатель.
Пользователь — введите имя пользователя.
Пароль — выберите секретный ключ.
Нажмите Создать.
Дождитесь, когда статус инстанса изменится на «Готов».
Откройте карточку инстанса Trino. Информация из него понадобится на следующих этапах.

Подключите Trino к DBeaver
Откройте приложение DBeaver.
В панели сверху нажмите База данных → Новое соединение.
В списке соединений выберите Trino.
Нажмите Далее заполните поля на вкладке Главное:
Хост — публичный хост, указанный в карточке инстанса.
Порт — порт, указанный в карточке инстанса.
Пользователь — пользователь, указанный в карточке инстанса.
Пароль — пароль, указанный в карточке инстанса.
На вкладке Свойства драйвера измените значение свойства SSL на true.
Нажмите Тест соединения.
Нажмите Готово.
Слева в списке объектов появится две базы данных PostgreSQL® с названиями «postgres_1» и «postgres_2».

Отправьте SQL-запрос
Создайте схемы.
Для первой БД dbaas_pg_1:
CREATE SCHEMA IF NOT EXISTS postgres_1 . labДля второй БД dbaas_pg_2:
CREATE SCHEMA IF NOT EXISTS postgres_2 . lab
Создайте таблицы в базах данных.
Для первой БД dbaas_pg_1:
CREATE TABLE IF NOT EXISTS postgres_1 . lab . brand ( id INT , name VARCHAR ( 255 ))Для второй БД dbaas_pg_2:
CREATE TABLE IF NOT EXISTS postgres_2 . lab . car ( id INT , name VARCHAR ( 255 ), brand_id INT )
Заполните таблицы.
Для первой БД dbaas_pg_1:
INSERT INTO postgres_1 . lab . brand values ( 1 , 'Mazda' ), ( 2 , 'BMW' ), ( 3 , 'Kia' )Для второй БД dbaas_pg_2:
INSERT INTO postgres_2 . lab . car values ( 1 , 'CX-5' , 1 ), ( 2 , 'CX-9' , 1 ), ( 3 , 'Rio' , 3 ), ( 4 , 'X3' , 2 ), ( 5 , 'X5' , 2 )
Объедините таблицу с брендами в первой БД dbaas_pg_1 с названиями авто во второй БД dbaas_pg_2.
select c . name as car , b . name as brandfrom postgres_2 . lab . car cleft join postgres_1 . lab . brand bon c . brand_id = b . id

- Перед началом работы
- Создайте базу данных Managed PostgreSQL®
- Создайте подключения к базе данных
- Создайте инстанс Trino
- Подключите Trino к DBeaver
- Отправьте SQL-запрос