tocdepth

2

Подключить Trino к PostgreSQL®

В лабораторной работе мы рассмотрим:

  • сценарий подключения инстанса Trino к PostgreSQL®;

  • отправку запроса через популярный JDBC-клиент DBeaver;

  • создание, заполнение таблиц и объединение данных из двух таблиц через SQL-запрос.

Внимание

Все сущности должны располагаться в одной VPC и подсетях одного типа.

Перед началом работы

Установите JDBC-клиент DBeaver.

Создать базу данных Managed PostgreSQL®

  1. Авторизуйтесь в личном кабинете.

  2. Перейдите в раздел Evolution и выберите сервис Managed PostgreSQL®, в правом верхнем углу нажмите Создать кластер.

  3. Создайте две базы данных, следуя шагам, описанным в документации Managed PostgreSQL®.

    Задайте следующие названия:

    • Названия кластеров DBaaS-PG-1 и DBaaS-PG-2.

    • Названия баз данных dbaas_pg_1 и dbaas_pg_2.

  4. Дождитесь, когда статус обоих кластеров изменится на «Доступен».

  5. Откройте карточки созданных кластеров PostgreSQL®. Информация из них понадобится на следующих этапах.

Создать подключения к базе данных

  1. Перейдите в раздел Evolution и выберите сервис Managed Trino.

  2. Нажмите Создать и выберите Подключение.

  3. Заполните поля следующими значениями:

    • Название — postgres_1.

    • Коннектор — PostgreSQL.

    • Хост — внутренний IP, указанный в карточке кластера DBaaS-PG-1.

    • Порт — порт, указанный в карточке кластера DBaaS-PG-1.

    • Название базы данных — dbaas_pg_1.

    • Логин — логин, указанный в карточке кластера DBaaS-PG-1.

    • Пароль — секретный ключ сервиса Secret Manager.

      Если нужного секрета нет, создайте новый, нажав Создать новый секрет.

    ../_images/trino__connection-creation-postgresql.png
  4. Нажмите Создать.

  5. Создайте второе подключение аналогично первому за исключением следующих значений:

    • Название — postgres_2.

    • Коннектор — PostgreSQL.

    • Хост — внутренний IP, указанный в карточке кластера DBaaS-PG-2.

    • Порт — порт, указанный в карточке кластера DBaaS-PG-2.

    • Название базы данных — dbaas_pg_2.

    • Логин — логин, указанный в карточке кластера DBaaS-PG-2.

    • Парольсекретный ключ.

      Если нужного секрета нет, создайте новый, нажав Создать новый секрет.

  6. Нажмите Создать.

На странице Managed Trino на вкладке Подключения появится две записи с названиями «postgres_1» и «postgres_2».

../_images/trino__connection-ready-postgres.png

Создать инстанс Trino

  1. Перейдите в раздел Evolution и выберите сервис Managed Trino.

  2. Нажмите Создать и выберите Инстанс Trino.

  3. В блоке Общие параметры заполните поля:

    • Название — trino-instance-lab-1.

    • Вычислительные ресурсы — Small (vCPU 4, RAM 16).

    • Количество нод — 3.

    • Подключение — выберите созданные подключения postgres_1 и postgres_2.

  4. Нажмите Продолжить.

  5. В блоке Сетевые настройки заполните поля:

    • VPC — выберите сеть VPC.

    • Зона доступности — выберите зону доступности, для которой создан SNAT-шлюз.

    • Подсеть — выберите подсеть, в которой располагается кластер PostgreSQL®.

    • Группа безопасности — выберите группу безопасности.

    • Подключить публичный хост — активируйте переключатель.

    • Пользователь — введите имя пользователя.

    • Пароль — выберите секретный ключ.

  6. Нажмите Создать.

  7. Дождитесь, когда статус инстанса изменится на «Готов».

  8. Откройте карточку инстанса Trino. Информация из него понадобится на следующих этапах.

../_images/trino__instance-ready-postgres.png

Подключить Trino к DBeaver

  1. Откройте приложение DBeaver.

  2. В панели сверху нажмите База данных → Новое соединение.

  3. В списке соединений выберите Trino.

  4. Нажмите Далее заполните поля на вкладке Главное:

    • Хост — публичный хост, указанный в карточке инстанса.

    • Порт — порт, указанный в карточке инстанса.

    • Пользователь — пользователь, указанный в карточке инстанса.

    • Пароль — пароль, указанный в карточке инстанса.

    ../_images/dbeaver__connection-1.png
  5. На вкладке Свойства драйвера измените значение свойства SSL на true.

    ../_images/dbeaver__connection-2.png
  6. Нажмите Тест соединения.

  7. Нажмите Готово.

Слева в списке объектов появится две базы данных PostgreSQL® с названиями «postgres_1» и «postgres_2».

../_images/dbeaver__connection-ready-1.png

Отправить SQL-запрос

  1. Создайте схемы.

    • Для первой БД dbaas_pg_1:

      CREATE SCHEMA IF NOT EXISTS postgres_1.lab
      
    • Для второй БД dbaas_pg_2:

      CREATE SCHEMA IF NOT EXISTS postgres_2.lab
      
  2. Создайте таблицы в базах данных.

    • Для первой БД 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)
      
  3. Заполните таблицы.

    • Для первой БД 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)
      
  4. Объедините таблицу с брендами в первой БД 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
    
../_images/dbeaver__request-result.png
Запустили Evolution free tier
для Dev & Test
Получить