Руководство по конфигурированию CedrusData Catalog#

Данное руководство содержит набор шагов для настройки CedrusData Catalog после установки. CedrusData Catalog может запускаться в 2-х режимах:

  • standalone режим - отдельный процесс CedrusData Catalog, рекомендуется для промышленного использования и при большом числе объектов каталога.

  • embedded режим - каталог запускается на стороне CedrusData Coordinator. Рекомендуется для небольших локальных инсталляций или для сред разработки, т.к. экономит память.

С настройками по умолчанию, CedrusData Catalog будет использовать БД SQLite для хранения данных. Для промышленных инсталляций мы рекомендуем использовать хранение в PostgreSQL.

1. Конфигурирование CedrusData Catalog#

Следующие три раздела (1.1, 1.2, 1.3) показывают независимые варианты конфигурации для CedrusData Catalog.

1.1. Запуск и конфигурация Catalog в standalone режиме (установка из архива)#

  1. Скачайте и распакуйте дистрибутив согласно инструкции для установки из распакованного архива (без запуска).

  2. Для удобства, определите переменные окружения, которые далее будут использоваться при установке, cоздайте соотвествующие директории:

  • CATALOG_DIR - директория установки CedrusData Catalog.

  • DATA_DIR - директория хранения данных CedrusData Catalog.

  • ETC_DIR - директория etc с конфигурацией CedrusData Catalog.

    Пример:

    export CATALOG_DIR=/home/user/cedrusdata-catalog-server-458-22
    export ETC_DIR=/home/user/cedrusdata-catalog-server-458-22/etc
    export DATA_DIR=/opt/catalog-data
    
  1. (Опционально) Если требуется настроить хранение во внешней БД PostgreSQL, добавьте следующие параметры в файл $ETC_DIR\config.properties:

    store.type=postgresql
    store.postgresql.jdbc-url=jdbc:postgresql://<pg-host>:<pg-port>/<dbname>
    store.postgresql.username=<username>
    store.postgresql.password=<password>
    
  2. Запустите CedrusData Catalog для начальной инициализации:

    "$CATALOG_DIR"/bin/launcher start --data-dir "$DATA_DIR" --etc-dir "$ETC_DIR"
    

    В журнале запуска проверьте, что сервер запустился успешно:

    tail "$DATA_DIR"/var/log/server.log
    
    2025-12-10T10:48:14.431+0300    INFO    main    ru.cedrusdata.catalog.server.CatalogServer	======== SERVER STARTED ========
    

    После успешного запуска в директории $DATA_DIR должны появиться файлы, среди которых будет файл catalog-admin-access-token - административный токен доступа.

  3. Проверьте доступность Catalog UI по адресу http://localhost:9080/ (для входа укажите токен из файла "$DATA_DIR"/catalog-admin-access-token)

  4. Создайте файловую систему (в примере ниже создадим S3-совместимую ФС). Подставьте корректные значения для endpoint, access-key, secret-key.

    "$CATALOG_DIR"/bin/catalog \
     --access-token-file "$DATA_DIR"/catalog-admin-access-token \
     file-system create \
     --file-system-name s3_fs \
     --type s3 \
     -p endpoint=https://<s3-host:port> \
     -p access-key=<your-access-key> \
     -p secret-key=<your-secret-key> \
     -p path-style-access=true
    
  5. Создайте логический каталог поверх ФС. В примере ниже создаётся Iceberg-каталог ice_cat:

    "$CATALOG_DIR"/bin/catalog \
     --access-token-file "$DATA_DIR"/catalog-admin-access-token \
     iceberg catalog create \
     --catalog-name ice_cat \
     --file-system-name s3_fs \
     --file-system-location s3://test-bucket
    
  6. В S3 создайте указанный ранее бакет (s3://test-bucket), который будет содержать данные Iceberg-кaталога ice_cat.

  7. Создайте нового пользователя и выдайте ему роль builtin.iceberg.admin для работы с Iceberg.

    "$CATALOG_DIR"/bin/catalog \
     --access-token-file "$DATA_DIR"/catalog-admin-access-token \
     principal create \
     --principal-name admin
      
    "$CATALOG_DIR"/bin/catalog \
     --access-token-file "$DATA_DIR"/catalog-admin-access-token \
     security grant-role \
     --principal-name admin \
     --role builtin.iceberg.admin
    

    Аналогичные действия п.6-9 вы можете выполнить через CedrusData Catalog web UI

1.2. Запуск и конфигурация Catalog в standalone режиме (установка из Docker-образа)#

В целом конфигурация аналогична, за иключением небольших деталей. Сделайте любую директорию для хранения конфигураци и перейдите в неё (далее ~/catalog)

  1. В директории ~/catalog создайте и файл конфигурации CedrusData Catalog:

    echo "admin-password=${ENV-OPTIONAL:CEDRUSDATA_CATALOG_ADMIN_PASSWORD}" > ~/catalog/config.properties
    
  2. (Опционально) Если требуется настроить хранение во внешней БД PostgreSQL, добавьте следующие параметры в файл ~/catalog/config.properties:

    store.type=postgresql
    store.postgresql.jdbc-url=jdbc:postgresql://<pg-host>:<pg-port>/<dbname>
    store.postgresql.username=<username>
    store.postgresql.password=<password>
    
  3. Скачайте и запустите дистрибутив согласно инструкции для установки из Docker-образа и запустите командой

    docker run -d \
      --name example-catalog \
      -p 9080:9080 \
      -v ~/catalog/data:/data/catalog \
      -v ~/catalog/config.properties:/etc/catalog/config.properties \
      cr.yandex/crpjtvqf29mpabhmrf1s/cedrusdata-catalog:458-22
    
  4. В журнале запуска проверьте, что сервер запустился успешно:

    docker logs example-catalog
    
    2025-12-10T10:48:14.431+0300    INFO    main    ru.cedrusdata.catalog.server.CatalogServer	======== SERVER STARTED ========
    

    После успешного запуска в директории ~/catalog/data должны появиться файлы, среди которых будет файл catalog-admin-access-token - административный токен доступа.

  5. Проверьте доступность Catalog UI по адресу http://localhost:9080/ (для входа укажите токен из файла /data/catalog/catalog-admin-access-token в контейнере)

  6. Создайте файловую систему (в примере ниже создадим S3-совместимую ФС). Подставьте корректные значения для endpoint, access-key, secret-key.

    docker exec -it example-catalog /bin/catalog \
     file-system create \
     --file-system-name s3_fs \
     --type s3 \
     -p endpoint=https://<s3-host:port> \
     -p access-key=<your-access-key> \
     -p secret-key=<your-secret-key> \
     -p path-style-access=true
    
  7. Создайте логический каталог поверх ФС. В примере ниже создаётся Iceberg-каталог ice_cat:

    docker exec -it example-catalog /bin/catalog \
     iceberg catalog create \
     --catalog-name ice_cat \
     --file-system-name s3_fs \
     --file-system-location s3://test-bucket
    
  8. В S3 создайте указанный ранее бакет (s3://test-bucket), который будет содержать данные Iceberg-кaталога ice_cat.

  9. Создайте нового пользователя и выдайте ему роль builtin.iceberg.admin для работы с Iceberg.

    docker exec -it example-catalog /bin/catalog \
     principal create \
     --principal-name admin
      
    docker exec -it example-catalog /bin/catalog \
     security grant-role \
     --principal-name admin \
     --role builtin.iceberg.admin
    

    Аналогичные действия п.6-9 вы можете выполнить через CedrusData Catalog web UI

1.3. Запуск и конфигурация Catalog в Embedded-режиме#

Данный режим предполагает что у вас уже установлен и сконфигурирован CedrusData Engine, а Catalog запускается внутри процесса Coordinator.

  1. Для удобства, определите переменные окружения, которые будут использоваться далее при установке:

  • SERVER_DIR - директория установки CedrusData Engine.

  • DATA_DIR - директория хранения данных CedrusData Engine.

  • ETC_DIR - директория etc с конфигурацией CedrusData Engine.

    Пример:

    export SERVER_DIR=/home/user/cedrusdata-server-458-22
    export ETC_DIR=/home/user/cedrusdata-server-458-22/etc
    export DATA_DIR=/opt/data-cedrus
    
  1. Создайте файл $ETC_DIR/catalog-config.properties с содержимым (при необходимости укажите параметры хранения данных Catalog в PostgresSQL):

    admin-password=${ENV-OPTIONAL:CEDRUSDATA_CATALOG_ADMIN_PASSWORD}
    #store.type=postgresql
    #store.postgresql.jdbc-url=jdbc:postgresql://<pg-host>:<pg-port>/<dbname>
    #store.postgresql.username=<username>
    #store.postgresql.password=<password>
    
  2. В файл $ETC_DIR/config.properties добавьте параметры:

    cedrusdata-catalog.coordinator-mode=embedded
    cedrusdata-catalog.embedded.config=etc/catalog-config.properties
    
  3. Перезапустите CedrusData Engine для илициализации каталога.

  4. Создайте файловую систему (в примере ниже создадим S3-совместимую ФС). Подставьте корректные значения для endpoint, access-key, secret-key.

    $SERVER_DIR/bin/catalog \
     --access-token-file $DATA_DIR/catalog-admin-access-token \
     file-system create \
     --file-system-name s3_fs \
     --type s3 \
    -p endpoint=https://<s3-host:port> \
    -p access-key=<your-access-key> \
    -p secret-key=<your-secret-key> \
     -p path-style-access=true
    
  5. Создайте логический каталог поверх ФС. В примере ниже создаётся Iceberg-каталог ice_cat:

    $SERVER_DIR/bin/catalog \
     --access-token-file $DATA_DIR/catalog-admin-access-token \
     iceberg catalog create \
     --catalog-name ice_cat \
     --file-system-name s3_fs \
     --file-system-location s3://test-bucket
    
  6. В S3 создайте указанный ранее бакет (s3://test-bucket), который будет содержать данные Iceberg-кaталога ice_cat.

  7. Создайте нового пользователя и выдайте ему роль builtin.iceberg.admin для работы с Iceberg.

    "$SERVER_DIR"/bin/catalog \
     --access-token-file "$DATA_DIR"/catalog-admin-access-token \
     principal create \
     --principal-name admin
      
    "$SERVER_DIR"/bin/catalog \
     --access-token-file "$DATA_DIR"/catalog-admin-access-token \
     security grant-role \
     --principal-name admin \
     --role builtin.iceberg.admin
    

См. также:

2. Конфигурирование CedrusData Engine#

  1. Сконфигурируйте Iceberg коннектор (пример: etc/catalog/iceberg.properties):

    connector.name=iceberg
    iceberg.catalog.type=CEDRUSDATA_CATALOG
    iceberg.cedrusdata-catalog.catalog-name=ice_cat
    
    fs.native-s3.enabled=true
    s3.endpoint=https://<s3-host:port>
    s3.aws-access-key=<your-access-key>
    s3.aws-secret-key=<your-secret-key>
    s3.region=ru-central1
    s3.path-style-access=true
    
  2. В случае если вы подключаетесь к каталогу, запущенному в режиме Standalone, добавьте в файл сервера CedrusData Engine etc/config.properties следующие параметры:

    cedrusdata-catalog.mode=remote
    cedrusdata-catalog.remote.uri=http://<catalog-host>:9080
    cedrusdata-catalog.access-token=<catalog-admin-access-token>
    
  3. Перезапустите CedrusData Engine и проверьте наличие нового каталога Iceberg.

Для подключения других движков к CedrusData Catalog, обратитесь к следующим разделам документации: