Подключение Trino к Iceberg

В лабораторной работе вы подготовите инстанс Trino для работы с форматом данных Iceberg.

Постановка задачи

  1. Создать и заполнить таблицу с данными сотрудников.

  2. Прочитать данные таблицы в определенной точке времени, используя формат данных Iceberg.

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

  1. Зарегистрируйтесь в личном кабинете Cloud.ru.

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

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

  3. Создайте бакет Object Storage, в котором будут храниться таблицы и схемы.

  4. Создайте секреты в сервисе Secret Manager для доступа к Object Storage. Понадобится сохранить идентификатор ключа доступа (access key) и секретный ключ доступа (key secret).

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

Внимание

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

Создайте инстанс Managed Metastore

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

  2. Откройте раздел Инстансы.

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

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

    • Название — iceberg-metastore-lab.

    • База данных — выберите базу данных.

    • VPC — выберите VPC-сеть. В этой сети будут располагаться все сущности.

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

    • Подсеть — выберите подсеть.

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

    • Название — mserver-iceberg-lab.

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

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

    • Файловая система — S3.

    • Источник — Object Storage.

    • Бакет — выберите созданный бакет Object Storage.

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

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

Создайте подключение

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

  2. Откройте раздел Подключения.

  3. Нажмите Создать подключение.

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

    • Название — metastore-iceberg-lab.

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

    • Каталог — Metastore.

    • Thrift URL — Thrift URL, скопированный с карточки Metastore.

    • Эндпоинтhttps://s3.cloud.ru.

    • Идентификатор ключа доступа — access key, выбирается из Secret Manager.

    • Секретный ключ доступа — secret key, выбирается из Secret Manager.

    • Регион S3ru-central-1.

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

На странице Managed Trino в разделе Подключения появится запись с названием «metastore-iceberg-lab».

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

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

  2. Откройте раздел Инстансы.

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

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

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

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

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

    • Подключения — выберите из списка подключение Metastore с названием «metastore-iceberg-lab».

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

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

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

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

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

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

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

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

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

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

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

  9. Откройте карточку инстанса Trino. Информация из нее понадобится при подключении к DBeaver.

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

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

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

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

  4. Нажмите Далее и на вкладке Главное заполните поля информацией из карточки инстанса:

    • Хост

    • Порт

    • Пользователь

    • Пароль

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

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

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

Слева в списке объектов появится база данных Metastore с названием «iceberg-metastore-lab».

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

  1. Запустите DBeaver.

  2. Создайте новый редактор SQL и введите команду:

    SHOW CATALOGS;
    

    В списке должен появиться коннектор «metastore-iceberg-lab».

  3. Создайте схему:

    CREATE SCHEMA IF NOT EXISTS metastore-iceberg-lab.my_company_iceberg;
    
  4. Создайте таблицу в каталоге Iceberg:

    CREATE TABLE IF NOT EXISTS metastore-iceberg-lab.my_company_iceberg.employees
    (
        id_employee INT,
        email VARCHAR(255)
    )
    WITH (
        format = 'PARQUET'
    
    );
    
  5. Вставьте данные в таблицу:

    INSERT INTO metastore-iceberg-lab.my_company_iceberg.employees
    values (1, 'xxx@example.com'), (2, 'yyy@example.com'), (3, 'zzz@example.com');
    
  6. Прочитайте данные из таблицы, чтобы убедиться, что данные записаны:

    SELECT *
    FROM metastore-iceberg-lab.my_company_iceberg.employees;
    
  7. Вставьте данные в таблицу:

    INSERT INTO metastore-iceberg-lab.my_company_iceberg.employees
    values (4, 'ttt@example.com'), (5, 'ggg@example.com'), (6, 'iii@example.com');
    
  8. Прочитайте данные из таблицы, чтобы убедиться, что данные записаны:

    SELECT *
    FROM metastore-iceberg-lab.my_company_iceberg.employees;
    
  9. Прочитайте историю таблицы:

    SELECT *
    FROM metastore-iceberg-lab.my_company_iceberg."employees$history";
    
  10. Скопируйте время создания таблицы из предыдущей выдачи в формате YYYY-MM-DD HH:MM:SS.000.

  11. Прочитайте данные из таблицы в определенной точке (5 минут после создания таблицы).

    SELECT *
    FROM metastore-iceberg-lab.my_company_iceberg.employees
    FOR TIMESTAMP AS OF TIMESTAMP 'YYYY-MM-DD HH:MM:SS.000 +0300';
    

    Где YYYY-MM-DD HH:MM:SS.000 вставьте скопированное время создания таблицы.

Дарим 20 000 бонусов на тест
для юрлиц и ИП
Подробнее