Подключение Trino к PostgreSQL®
В лабораторной работе мы рассмотрим:
сценарий подключения инстанса Trino к PostgreSQL®;
отправку запроса через популярный JDBC-клиент DBeaver;
создание, заполнение таблиц и объединение данных из двух таблиц через SQL-запрос.
Все сущности должны располагаться в одной VPC и подсетях одного типа.
Перед началом работы
-
Если вы уже зарегистрированы, войдите под своей учетной записью.
-
(Опционально) Cоздайте публичный SNAT-шлюз, если необходим доступ в интернет.
-
Создайте кластер Data Platform, в котором будет размещен инстанс.
Назовите кластер «dp-labs».
-
Скачайте и установите root-сертификат на устройство.
-
Установите 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 Management.
Если нужного секрета нет, создайте новый, нажав Создать новый секрет.
-
-
Нажмите Создать.
-
Создайте второй каталог и заполните поля следующими значениями:
-
Название — 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.
-
Кластер — db-lab.
-
Вычислительные ресурсы — Small (vCPU 4, RAM 16).
-
Количество node — 3.
-
-
Нажмите Продолжить.
-
На шаге Каталоги выберите каталоги postgres_1 и postgres_2.
-
Нажмите Продолжить.
-
В блоке Сетевые настройки заполните поля:
-
Зона доступности — выберите зону доступности, для которой создан SNAT-шлюз.
-
Подсеть — выберите подсеть с DNS-сервером. В этой подсети должен располагаться инстанс Managed Metastore.
-
Подключить публичный хост — активируйте опцию.
-
Пользователь — введите имя пользователя.
-
Пароль — выберите секретный ключ.
-
-
Нажмите Создать.
-
Дождитесь, когда статус инстанса изменится на «Готов».
-
Откройте карточку инстанса 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-запрос