Создать каталог Managed Service for Trino
Каталог Trino задает подключение к внешнему источнику данных. Один каталог описывается ресурсом TrinoCatalog и привязывается к конкретному кластеру через поле spec.cluster.
Поддерживаемые типы каталогов:
postgresql— подключение к PostgreSQL.clickhouse— подключение к ClickHouse®.iceberg— подключение к Apache Iceberg™ через REST catalog.
Примечание
При создании каталога Managed Service for Trino пересоздает кластер. На время применения новой конфигурации кластер переходит в состояние Updating, активные запросы прерываются. Подробнее см. в разделе Обновление кластера.
Через CLI
-
Подготовьте Secret с учетными данными для подключения к источнику данных.
-
Создайте файл ресурса
TrinoCatalog. Например, с помощью командыtouch trinocatalog.yaml. -
Откройте файл и вставьте конфигурацию для нужного типа каталога:
PostgreSQLClickHouseIceberg (REST catalog, S3)Iceberg (REST catalog, Object Storage)--- apiVersion: v1 kind: Secret metadata: name: postgres-secret stringData: username: <имя_пользователя> password: <пароль_пользователя> --- apiVersion: trino.stackland.yandex.cloud/v1alpha1 kind: TrinoCatalog metadata: name: postgresql-test-trino-full spec: cluster: trino-full type: postgresql name: postgresql-test postgres: url: postgres.example.svc.cluster.local:5432/database credentialsSecretRef: name: postgres-secret usernameKey: username passwordKey: passwordПараметры:
spec.cluster— имя кластера Trino, к которому подключается каталог.spec.name— имя каталога в Trino (используется в SQL-запросах:SELECT * FROM <имя_каталога>.schema.table).spec.postgres.url— адрес сервера PostgreSQL в форматеhost:port/database.spec.postgres.credentialsSecretRef— ссылка на Secret с учетными данными и имена ключейusernameKeyиpasswordKey.
--- apiVersion: v1 kind: Secret metadata: name: clickhouse-secret stringData: username: <имя_пользователя> password: <пароль_пользователя> --- apiVersion: trino.stackland.yandex.cloud/v1alpha1 kind: TrinoCatalog metadata: name: clickhouse-test-trino-full spec: cluster: trino-full type: clickhouse name: clickhouse-test clickhouse: url: clickhouse.example.svc.cluster.local:8123/default credentialsSecretRef: name: clickhouse-secret usernameKey: username passwordKey: passwordПараметры:
spec.cluster— имя кластера Trino.spec.name— имя каталога в Trino.spec.clickhouse.url— адрес сервера ClickHouse® в форматеhost:port/database.spec.clickhouse.credentialsSecretRef— ссылка на Secret с учетными данными.
Пример каталога Iceberg с REST catalog, аутентификацией через client credentials и хранилищем в произвольном S3-совместимом бакете.
--- apiVersion: v1 kind: Secret metadata: name: iceberg-oauth2-secret stringData: client-id: <идентификатор_клиента> client-secret: <секрет_клиента> --- apiVersion: v1 kind: Secret metadata: name: iceberg-s3-secret stringData: access-key-id: <access_key_id> secret-access-key: <secret_access_key> --- apiVersion: trino.stackland.yandex.cloud/v1alpha1 kind: TrinoCatalog metadata: name: iceberg-test-trino-full spec: cluster: trino-full type: iceberg name: iceberg-test iceberg: url: https://iceberg-rest.example.svc.cluster.local:8181 catalogType: rest storageType: s3 rest: warehouse: my-warehouse oauth2: clientCredentials: tokenEndpoint: https://auth.example.com/token credentialsSecretRef: name: iceberg-oauth2-secret clientIdKey: client-id clientSecretKey: client-secret s3: endpoint: https://storage.yandexcloud.net region: ru-central1 credentialsSecretRef: name: iceberg-s3-secret accessKeyIdKey: access-key-id secretAccessKeyKey: secret-access-keyПараметры:
spec.iceberg.url— URL REST catalog.spec.iceberg.storageType— тип хранилища данных. Допустимые значения:s3,stackland-storage.spec.iceberg.rest.warehouse— имя REST catalog.spec.iceberg.rest.oauth2.clientCredentials— параметры аутентификации client credentials: URL сервера авторизации (tokenEndpoint) и Secret с идентификатором и секретом клиента.spec.iceberg.s3.endpoint,region— параметры S3-хранилища.spec.iceberg.s3.credentialsSecretRef— Secret сaccess-key-idиsecret-access-key.
Для статического токена вместо
clientCredentialsукажитеspec.iceberg.rest.oauth2.accessTokenSecretRefсо ссылкой на Secret с токеном.Пример каталога Iceberg с использованием управляемого объектного хранилища Stackland. Доступно, только если в кластере включен компонент Object Storage.
apiVersion: trino.stackland.yandex.cloud/v1alpha1 kind: TrinoCatalog metadata: name: iceberg-stackland-trino-full spec: cluster: trino-full type: iceberg name: iceberg-stackland iceberg: url: http://iceberg-rest-catalog.stackland-iceberg-rest-catalog.svc:8181/api/catalog catalogType: rest storageType: stackland-storage rest: warehouse: my-warehouse oauth2: clientCredentials: tokenEndpoint: http://iceberg-rest-catalog.stackland-iceberg-rest-catalog.svc:8181/api/catalog/v1/oauth/tokens credentialsSecretRef: name: <секрет_пользователя> clientIdKey: clientId clientSecretKey: clientSecret stacklandStorage: bucketRef: <имя_бакета>Параметры:
spec.iceberg.rest.oauth2.clientCredentials— параметры аутентификации client credentials для платформенного Iceberg REST Catalog: URL сервера авторизации (tokenEndpoint) и секрет сclientIdиclientSecretпользователяRestCatalogPrincipal.spec.iceberg.storageType: stackland-storage.spec.iceberg.stacklandStorage.bucketRef— ссылка на ресурсBucketв текущем пространстве имен.
AccessKey и AccessBinding оператор создает автоматически. Параметры подключения к S3 заполняет оператор.
Примечание
Пример рассчитан на подключение к платформенному Iceberg REST Catalog. Подставьте значения из ресурса
RestCatalogи секрета пользователя:spec.iceberg.url— значениеstatus.endpoint;spec.iceberg.rest.oauth2.clientCredentials.tokenEndpoint— значениеstatus.oauth2TokenEndpoint;spec.iceberg.rest.warehouse— имя ресурсаRestCatalog;credentialsSecretRef— секрет сclientIdиclientSecretпользователяRestCatalogPrincipal(см. Создать пользователя каталога).
Совет
Имя ресурса (
metadata.name) формируйте как<spec.name>-<spec.cluster>— как в примерах выше. Иначе оператор отклонит создание каталога. -
Примените манифест:
kubectl apply -f trinocatalog.yaml -n <пространство_имен>.
Через консоль управления
-
Если вы еще не открыли проект, выберите проект.
-
Выберите пространство имен, в котором создан кластер.
-
В левом меню выберите Trino → Кластеры.
-
Выберите кластер.
-
Откройте вкладку Каталоги и нажмите Создать каталог.
-
Заполните поля:
Основные настройки
- Имя — имя каталога в Trino. Записывается в
spec.name. Имя ресурса Kubernetes (metadata.name) консоль формирует автоматически как<имя_каталога>-<имя_кластера>. - Тип — тип коннектора. Допустимые значения:
postgresql,clickhouse,iceberg.
После выбора типа отобразится блок Настройки каталога.
Настройки каталога: PostgreSQL
- URL — адрес сервера в формате
host:port/database. - Имя пользователя — пользователь PostgreSQL.
- Пароль — пароль пользователя.
Настройки каталога: ClickHouse
- URL — адрес сервера в формате
host:port/database. - Имя пользователя — пользователь ClickHouse®.
- Пароль — пароль пользователя.
Настройки каталога: Iceberg (REST catalog)
Подсекция Подключение:
- URL — URL REST catalog.
- Warehouse — имя REST catalog (необязательно).
Подсекция Аутентификация (необязательно):
- Способ аутентификации —
Без аутентификации,Статический токенилиClient credentials. - Для статического токена: Токен доступа.
- Для client credentials: Адрес сервера авторизации, Идентификатор клиента, Секрет клиента. Для платформенного Iceberg REST Catalog в качестве Идентификатора клиента и Секрета клиента укажите
clientIdиclientSecretпользователяRestCatalogPrincipal. В подменю Дополнительно можно задать Область доступа (scope), Обновление токена и Обмен токенов.
Подсекция Хранилище данных:
- Тип хранилища —
s3илиstackland-storage. Значениеstackland-storageдоступно, только если в кластере включен компонент Object Storage. - Для
s3: Endpoint, Регион, Access key ID, Secret access key, Path-style access. - Для
stackland-storage: Бакет — выбор бакета из списка ресурсовBucketв текущем пространстве имен.
Дополнительные настройки (необязательно)
Раздел для произвольных настроек коннектора в формате «Ключ–Значение». Каждый ключ можно добавить только один раз.
- Имя — имя каталога в Trino. Записывается в
-
Нажмите Создать.
Готово, каталог появился в списке Каталоги. После того как оператор применит новую конфигурацию и кластер перейдет в состояние Running, каталог будет доступен в SQL-запросах.