Iceberg REST Catalog
Iceberg REST Catalog — это REST-каталог для таблиц Apache Iceberg™, совместимый с Iceberg REST Catalog API. Компонент позволяет создавать каталоги и управлять доступом к данным с помощью кастомных ресурсов:
StacklandRestCatalog— для создания каталога;StacklandRestCatalogAccessBinding— для назначения прав пользователям, группам и сервисным аккаунтам.
Каталог можно подключить к Managed Service for Trino, указав его имя. Параметры подключения и доступа к хранилищу настраиваются автоматически.
Каталог
Каталог описывается ресурсом StacklandRestCatalog. Для хранения данных таблиц автоматически создаются отдельный бакет в Object Storage и ключ доступа к нему. Выбирать бакет и настраивать доступ к нему не требуется.
Основные параметры спецификации:
description— описание каталога длиной до 256 символов. Необязательный параметр.labels— метки каталога в формате «ключ — значение». Задаются при создании и не могут быть изменены.deletionProtection— защита каталога от удаления. По умолчаниюfalse. Если значениеtrue, каталог нельзя удалить, пока защита не будет отключена.
Имя каталога задается в metadata.name и должно быть уникальным в пространстве имен. Имя должно начинаться с латинской буквы, содержать только строчные латинские буквы, цифры и дефисы, заканчиваться буквой или цифрой и быть не длиннее 63 символов.
Роли каталога
Права назначаются с помощью ресурса StacklandRestCatalogAccessBinding. Одно назначение связывает одного пользователя, группу или сервисный аккаунт с одной ролью на выбранном ресурсе.
Параметр spec.catalogRef ссылается на StacklandRestCatalog в том же пространстве имен. Область действия роли задается одним из параметров:
catalog— весь каталог;namespace— пространство имен таблиц Iceberg; путь задается массивом сегментовnamespacePath;table— таблица; задаютсяnamespacePathи имя таблицыname;view— представление; задаютсяnamespacePathи имя представленияname.
Для выбранной области в параметре role укажите одну из ролей:
|
Роль |
Права |
|
|
Просмотр сведений о ресурсах и назначенных правах. |
|
|
Права роли |
|
|
Права роли |
|
|
Права роли |
|
|
Права роли |
Для дополнительной роли или другой области создайте отдельное назначение.
Инструкции: Назначить права на каталог, Изменить назначение прав, Отозвать права на каталог.
Пользователи каталога
Доступ к каталогу предоставляется существующим пользователям, группам и сервисным аккаунтам Identity and Access Management. Создавать отдельные учетные записи каталога и секреты OAuth2 не требуется.
Получатель роли задается в spec.subject ресурса StacklandRestCatalogAccessBinding:
kind: User— пользователь; укажите его имя вnameили идентификатор вid;kind: Group— группа пользователей; укажите ее имя вname;kind: ServiceAccount— сервисный аккаунт Kubernetes; укажите имя вnameи пространство имен вnamespace.
Через консоль управления можно назначать права пользователям и группам. Для назначения прав сервисному аккаунту используйте CLI.
При выполнении запросов через Trino используются права пользователя или сервисного аккаунта, от имени которого выполнен вход в Trino. Также учитываются правила доступа Trino.
Статусы
Текущее состояние каталога отражает поле status.phase ресурса StacklandRestCatalog:
pending— каталог создается или ожидает готовности необходимых ресурсов;ready— каталог готов к работе;failed— ошибка; подробности доступны вstatus.conditions;deleting— каталог удаляется.
Состояние назначения прав отражает поле status.phase ресурса StacklandRestCatalogAccessBinding. Помимо этих состояний, оно может принимать значение pendingResources: назначение ожидает появления нужного пространства имен Iceberg, таблицы или представления.
В консоли управления состояние каталога отображается в списке каталогов и в его карточке. Назначения прав доступны на вкладке Доступ. Если каталог или назначение не готовы к работе, откройте их вкладку Состояния, чтобы посмотреть причину и описание ошибки.
Адреса подключения
Адреса для подключения клиентов доступны в статусе ресурса StacklandRestCatalog:
status.endpoint— внутренний адрес Iceberg REST Catalog API;status.externalEndpoint— внешний адрес, доступный при включенном публичном доступе.
В консоли управления адреса доступны на вкладке Основное карточки каталога. Кнопка Подключиться открывает инструкции для клиентов и доступна, когда каталог готов к работе и у него есть адрес подключения.
Публичный доступ включается в ресурсе StacklandRestCatalogConfig параметром spec.settings.restCatalog.publicAccess.enabled: true.
При подключении к Trino по умолчанию используется внутренний адрес. Для выбора внешнего адреса задайте spec.stacklandRestCatalog.useExternalEndpoint: true в ресурсе TrinoCatalog.