С помощью этого руководства вы настроите инстанс Managed Trino для работы с форматом данных Iceberg. В качестве примера вы создадите и заполните таблицу с данными сотрудников и выполните чтение данных таблицы в определенной точке времени.
Вы будете использовать следующие сервисы:
Managed Trino — сервис, который предоставляет массивно-параллельный аналитический SQL-движок для обработки больших объемов данных из разных источников.
Managed Metastore — сервис для хранения и управления метаданными из разных источников.
Object Storage — объектное S3-хранилище с бесплатным хранением файлов объемом до 15 ГБ.
Шаги:
Располагайте создаваемые сущности в одной VPC и используйте единые сетевые параметры.
Зарегистрируйтесь в личном кабинете Cloud.ru. Если вы уже зарегистрированы, войдите под своей учетной записью.
Перейдите в раздел Evolution.
Создайте публичный SNAT-шлюз, чтобы обеспечить инстансу доступ в интернет и связь с внешними источниками.
Создайте кластер Data Platform с названием dp-labs.
Скачайте и установите root-сертификат на устройство.
Создайте бакет Object Storage, в котором будут храниться таблицы и схемы.
Cоздайте инстанс Managed Metastore с названием iceberg-metastore-lab. В качестве хранилища укажите созданный ранее бакет Object Storage.
Дождитесь, когда статус инстанса изменится на «Готов».
Откройте карточку инстанса. Информация из нее понадобится на следующих этапах.
На этом шаге вы создадите секреты для настройки доступа к Object Storage.
Перейдите в раздел Пользователи на вкладку Сервисные аккаунты.
Нажмите на название аккаунта, для которого необходимо сгенерировать ключ доступа. Если такого аккаунта нет, создайте его. Убедитесь, что у выбранного аккаунта есть роль с доступом к сервису Object Storage.
В блоке Учетные данные доступа откройте вкладку Ключи доступа.
Нажмите Создать ключ.
Введите краткое описание ключа.
Задайте время жизни ключа или выберите вариант Бессрочно. Бессрочные ключи менее безопасны. Рекомендуем выбирать ограничение по периоду действия или обновлять ключи самостоятельно не менее одного раза в год.
Нажмите Создать. Сервис сгенерирует Key ID (логин) и Key Secret (пароль). Скопируйте и сохраните эти значения. После того как вы закроете это окно, посмотреть их будет нельзя.
На верхней панели слева нажмите и выберите Хранение данных → Object Storage.
Скопируйте ID тенанта.
На верхней панели слева нажмите и выберите Управление → Secret Management.
Создайте access key:
Нажмите Добавить секрет.
В поле Путь введите dp-labs-access-key.
В блоке Значение секрета выберите Стандартый режим и введите значение в формате tenant_id:key_id, где:
tenant_id — скопированное ранее значение ID тенанта;
key_id — значение Key ID, скопированное и сохраненное ранее при создании ключа доступа.
Нажмите Создать.
Создайте secret key:
Нажмите Добавить секрет.
В поле Путь укажите dp-labs-secret-key.
В блоке Значение секрета выберите Стандартый режим и укажите значение Key Secret, скопированное и сохраненное ранее при создании ключа доступа.
Нажмите Создать.
На этом шаге вы подготовите каталог Managed Trino.
Перейдите в Платформа данных → Managed Trino.
Нажмите Создать и выберите Каталог.
В блоке Общие параметры в поле Название введите trino_iceberg_lab.
В блоке Настройки каталога заполните поля следующими значениями:
Коннектор — iceberg.
Каталог — Metastore.
Thrift URL — Thrift URL из карточки инстанса Managed Metastore.
Эндпоинт — https://s3.cloud.ru.
Идентификатор ключа доступа — dp-labs-access-key.
Секретный ключ доступа — dp-labs-secret-key.
Регион S3 — введите ru-central-1.
Нажмите Создать.
На этом шаге вы подготовите инстанс Managed Trino.
Перейдите в раздел Инстансы.
Нажмите Создать инстанс.
В блоке Общие параметры заполните поля следующими значениями:
Название — trino-iceberg-lab-instance.
Кластер — dp-labs.
В блоке Конфигурация заполните поля следующими значениями:
Версия — 0.1.7.
Режим — Основной.
Вычислительные ресурсы — 4 vCPU 4 / RAM 16.
Количество нод — 3. Чтобы задать количество нод, отключите опцию Автомасштабирование.
В блоке Настройки каталога укажите созданный ранее каталог trino_iceberg_lab.
Нажмите Продолжить.
В блоке Сетевые настройки заполните поля следующими значениями:
Зона доступности — зона доступности, для которой создан SNAT-шлюз.
Подсеть — подсеть с DNS-сервером, в которой расположен инстанс Managed Metastore.
Подключить публичный хост — активируйте опцию.
Пользователь — имя пользователя, например user1.
Пароль — dp-labs-access-key.
Нажмите Создать.
Дождитесь, пока статус инстанса Managed Trino изменится на «Готов».
На этом шаге вы с помощью SQL-запросов создадите таблицу, добавите в нее данные и проверите изменения.
В приложении DBeaver в панели сверху нажмите Редактор SQL → Новый редактор SQL.
Выполните запрос:
SHOW CATALOGS
В списке появится коннектор trino_iceberg_lab.
Создайте схему:
CREATE SCHEMA IF NOT EXISTS trino_iceberg_lab.my_company_iceberg
Создайте таблицу в каталоге Iceberg:
CREATE TABLE IF NOT EXISTS trino_iceberg_lab.my_company_iceberg.employees(id_employee INT,email VARCHAR(255))WITH (format = 'PARQUET')
Вставьте данные в таблицу:
INSERT INTO trino_iceberg_lab.my_company_iceberg.employeesvalues (1, 'xxx@example.com'), (2, 'yyy@example.com'), (3, 'zzz@example.com')
Чтобы убедиться, что данные записаны, прочитайте данные таблицы:
SELECT *FROM trino_iceberg_lab.my_company_iceberg.employees;
Вставьте данные в таблицу:
INSERT INTO trino_iceberg_lab.my_company_iceberg.employeesvalues (4, 'ttt@example.com'), (5, 'ggg@example.com'), (6, 'iii@example.com')
Чтобы убедиться, что данные записаны, прочитайте данные таблицы:
SELECT *FROM trino_iceberg_lab.my_company_iceberg.employees
Прочитайте историю таблицы:
SELECT *FROM trino_iceberg_lab.my_company_iceberg."employees$history"ORDER BY made_current_at
В результате выполнения запроса будет выведена история изменений таблицы, содержащая записи о создании таблицы и добавлении в нее новых строк.
Добавьте данные в таблицу:
INSERT INTO trino_iceberg_lab.my_company_iceberg.employeesvalues (7, 'qqq@example.com'), (8, 'www@example.com'), (9, 'eee@example.com')
Чтобы проверить, что появилась еще одна запись, прочитайте данные из таблицы:
SELECT *FROM trino_iceberg_lab.my_company_iceberg."employees$history"ORDER BY made_current_at
Чтобы понаблюдать, как таблица менялась со временем, прочитайте данные из таблицы, подставляя в запрос вместо YYYY-MM-DD HH:MM:SS.000 различные значения из столбца made_current_at:
SELECT *FROM trino_iceberg_lab.my_company_iceberg.employeesFOR TIMESTAMP AS OF TIMESTAMP 'YYYY-MM-DD HH:MM:SS.000 +0300'
Вы настроили инстанс Managed Trino для работы с данными в формате Iceberg. Вы научились создавать таблицы с помощью DBeaver и читать данные, соотетствующие определенному моменту времени.