- tocdepth
2
Подключить Trino к PostgreSQL®
В лабораторной работе мы рассмотрим:
сценарий подключения инстанса Trino к PostgreSQL®;
отправку запроса через популярный JDBC-клиент DBeaver;
создание, заполнение таблиц и объединение данных из двух таблиц через SQL-запрос.
Внимание
Все сущности должны располагаться в одной VPC и подсетях одного типа.
Перед началом работы
Установите 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.
В блоке Общие параметры заполните поля:
Название — 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 brand from postgres_2.lab.car c left join postgres_1.lab.brand b on c.brand_id = b.id
для Dev & Test