Обслуживание объектов Iceberg#
CedrusData Catalog предоставляет возможность обслуживания объектов Iceberg.
Общая информация#
В зависимости от типа операции, объектами обслуживания могут быть таблицы, представления и материализованные представления.
Выполнение операций происходит асинхронно. После запуска операции обслуживания вы получаете уникальный идентификатор, который может быть использован в команде CLI maintenance get для получения текущего статуса операции.
В случае успешного завершения операция возвращает результат работы в виде пар ключ-значение. CedrusData Catalog сохраняет информацию об операциях в базу данных, периодически удаляя устаревшие записи.
Обслуживание объектов Iceberg происходит в последовательно-параллельном режиме. Это означает, что операции обслуживания выполняются последовательно для каждого объекта, но при этом несколько объектов могут обрабатываться параллельно.
Количество объектов, обрабатываемых параллельно, может быть настроено с помощью параметра конфигурации maintenance.max-active-operations.
Ознакомьтесь с дополнительными параметрами конфигурации операций обслуживания: Конфигурация Iceberg.
Группы объектов обслуживания#
Операции обслуживания могут быть запущены для группы объектов. Например, для всех объектов конкретного каталога или namespace.
Для этого необходимо создать именованную группу объектов с помощью команды CLI object-group create, и наполнить ее целевыми объектами с помощью команды CLI object-group add-item.
Целевые объекты могут быть заданы следующим образом:
Все объекты каталога:
--namespace-name=*, --object-name=*Все объекты namespace:
--namespace-name=<имя_namespace> --object-name=*Конкретный объект:
--namespace-name=<имя_namespace> --object-name=<имя_объекта>
После наполнения именованной группы вы можете запустить maintenance-операцию для всех объектов группы одной командой.
Движки для выполнения операций обслуживания#
CedrusData Catalog выполняет операции обслуживания с помощью вычислительного движка (compute engine).
Доступны следующие вычислительные движки:
local— внутренний движок каталога с фиксированным именем, который используется для базовых операций обслуживания.Apache Spark — распределённый движок для выполнения ресурсоёмких операций обслуживания (компактификация файлов, перестроение манифестов и т.д.) с использованием кластера Apache Spark.
Для вычислительно простых операций обслуживания, таких как expire-snapshots или remove-orphan-files рекомендуется использовать локальный движок.
Рекомендуется использовать Spark-движок для ресурсоёмких операций обслуживания, таких как rewrite-data-files или rewrite-manifests.
В некоторых случаях, например, если обслуживание большой по размеру таблицы никогда ранее не выполнялось, может быть целесообразно использовать Spark-движок и для операций expire-snapshots или remove-orphan-files.
Задачи обслуживания#
CedrusData Catalog поддерживает выполнение операций обслуживания по расписанию. Задать расписание выполнения задачи можно с помощью cron-выражения.
Команды для управления задачами:
maintenance create-job expire-snapshots, maintenance create-job remove-orphan-files — создать задачу
maintenance update-job — изменить задачу
maintenance delete-job — удалить задачу
maintenance get-job — получить информацию о задаче
maintenance list-jobs — получить список задач
Операции поддерживаемые локальным движком#
expire-snapshots#
Удаляет устаревшие snapshot. Используйте команду CLI maintenance expire-snapshots для запуска операции.
Поддерживаемые типы объектов: таблицы, материализованные представления.
Параметры:
older-than— файлы старше скольки дней можно удалять; значение по умолчанию —5(пять дней)retain-last— сколько последних snapshot необходимо сохранить вне зависимости от значения параметраolder-than; значение по умолчанию:1
Результаты:
system.processed-objects— количество обработанных объектов Icebergexpired-snapshots— количество удаленных snapshotdeleted-files— количество удаленных файлов
remove-orphan-files#
Удаляет файлы данных и метаданных, на которые не ссылается ни один snapshot. Используйте команду CLI maintenance remove-orphan-files для запуска операции.
Поддерживаемые типы объектов: таблицы, материализованные представления.
Параметры:
older-than— файлы старше скольки дней можно удалять; значение по умолчанию —3(три дня)
Результаты:
system.processed-objects— количество обработанных объектов Icebergdeleted-files— количество удаленных файлов