Облачная платформаEvolution

Подключение Managed Trino к PostgreSQL®


С помощью этого руководства вы подключите инстанс Managed Trino к кластерам Managed PostgreSQL®. Вы используете JDBC-клиент DBeaver для отправки SQL-запросов, создадите две таблицы и объедините их.

Вы будете использовать следующие сервисы:

  • Managed Trino — сервис, который предоставляет массивно-параллельный аналитический SQL-движок для обработки больших объемов данных из разных источников.

  • Managed PostgreSQL — управляемая база данных PostgreSQL.

Шаги:

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

Располагайте создаваемые сущности в одной VPC и используйте единые сетевые параметры.

  1. Перейдите в раздел Evolution.

  2. Создайте публичный SNAT-шлюз, чтобы обеспечить инстансу доступ в интернет и связь с внешними источниками.

  3. Создайте кластер Data Platform с названием dp-labs.

1. Создайте базы данных Managed PostgreSQL®

На этом шаге вы создадите два кластера и две базы данных Managed PostgreSQL®.

  1. Перейдите в Базы данных → Managed PostgreSQL®.

  2. Создайте кластер Managed PostgreSQL® с названием PG-1. Задайте название базы данных db_pg_1.

  3. Создайте кластер Managed PostgreSQL® с названием PG-2. Задайте название базы данных db_pg_2.

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

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

2. Создайте ключи доступа

На этом шаге вы создадите ключи для настройки доступа к кластерам Managed PostgreSQL® и к инстансу Managed Trino.

  1. Перейдите в Управление → Secret Management.

  2. Создайте секрет для доступа к кластеру PG-1:

    1. Нажмите Добавить секрет.

    2. В поле Путь введите pg1-access-key.

    3. В блоке Значение секрета выберите Стандартый режим. В качестве значения введите пароль из карточки кластера PG-1.

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

  3. Создайте секрет для доступа к кластеру PG-2:

    1. Нажмите Добавить секрет.

    2. В поле Путь введите pg2-access-key.

    3. В блоке Значение секрета выберите Стандартый режим. В качестве значения введите пароль из карточки кластера PG-2.

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

  4. Создайте секрет для доступа к инстансу Managed Trino:

    1. Нажмите Добавить секрет.

    2. В поле Путь введите dp-labs-access-key.

    3. В блоке Значение секрета выберите Стандартый режим и задайте пароль.

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

3. Создайте каталоги Managed Trino

На этом шаге вы создадите два каталога Managed Trino.

  1. Перейдите в Платформа данных → Managed Trino.

  2. Создайте каталог для базы db_pg_1:

    1. Нажмите Создать и выберите Каталог.

    2. В блоке Общие параметры в поле Название введите postgres_1.

    3. В блоке Настройки каталога заполните поля следующими значениями:

      • Коннекторpostgresql.

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

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

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

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

      • Парольpg1-access-key.

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

  3. Создайте каталог для базы db_pg_2:

    1. Нажмите Создать каталог.

    2. В блоке Общие параметры введите Названиеpostgres_2.

    3. В блоке Настройки каталога заполните поля следующими значениями:

      • Коннекторpostgresql.

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

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

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

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

      • Парольpg2-access-key.

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

4. Создайте инстанс Managed Trino

На этом шаге вы создадите инстанс Managed Trino и настроите соединение с базами данных Managed PostgreSQL®.

  1. Перейдите в раздел Инстансы.

  2. Нажмите Создать инстанс.

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

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

    • Кластерdb-labs.

  4. В блоке Конфигурация заполните поля следующими значениями:

    • Версия0.1.7.

    • РежимОсновной.

    • Вычислительные ресурсы4 vCPU 4 / RAM 16.

    • Количество нод3. Чтобы задать количество нод, отключите опцию Автомасштабирование.

  5. В блоке Настройки каталога выберите каталоги postgres_1 и postgres_2.

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

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

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

    • Подсеть — подсеть с DNS-сервером, в которой расположен инстанс Managed Metastore.

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

    • Пользователь — имя пользователя, например user1.

    • Парольdp-labs-access-key.

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

  9. Дождитесь, пока статус инстанса Managed Trino изменится на «Готов».

5. Отправьте SQL-запросы

На этом шаге вы с помощью SQL-запросов создадите таблицы в базах данных, заполните и объедините их.

  1. В приложении DBeaver в панели сверху нажмите Редактор SQL → Новый редактор SQL.

  2. Создайте схему для базы данных db_pg_1:

    CREATE SCHEMA IF NOT EXISTS postgres_1.lab
  3. Создайте схему для базы данных db_pg_2:

    CREATE SCHEMA IF NOT EXISTS postgres_2.lab
  4. Создайте таблицу с брендами в базе данных db_pg_1:

    CREATE TABLE IF NOT EXISTS postgres_1.lab.brand (id INT, name VARCHAR(255))
  5. Создайте таблицу с названиями авто в базе данных db_pg_2:

    CREATE TABLE IF NOT EXISTS postgres_2.lab.car (id INT, name VARCHAR(255), brand_id INT)
  6. Заполните таблицу в базе данных db_pg_1:

    INSERT INTO postgres_1.lab.brand values (1, 'Mazda'), (2, 'BMW'), (3, 'Kia')
  7. Заполните таблицу в базе данных db_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)
  8. Объедините таблицу с брендами из базы данных db_pg_1 с названиями авто в базе данных db_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

Результат

Вы подключили инстанс Managed Trino к базам данных, расположенным в кластерах Managed PostgreSQL®. Вы научились отправлять SQL-запросы помощью JDBC-клиента DBeaver для создания, заполнения и объединения таблиц.