tocdepth

2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ../_images/postgres__cluster-ready.png
  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;

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

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

  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;

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

    • Пользователь — любое имя пользователя;

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

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

    ../_images/trino__instance-creation-lab1.png ../_images/trino__instance-creation-lab1-2.png
  4. Нажмите Продолжить.

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

  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
Получить