Управление каталогами#
Примечание
Ниже приведена оригинальная документация Trino. Скоро мы ее переведем на русский язык и дополним полезными примерами.
Свойства ниже определяют, как происходит работа с каталогами в кластере CedrusData.
catalog.management
#
Type: string
Allowed values:
static
,cedrusdata_dynamic
,dynamic
Default value:
static
CedrusData поддерживает три режима работы с каталогами:
static
- список каталогов фиксирован и определяется файлами*.properties
, расположенными в директорииetc/catalog
. Создание и удаление каталогов невозможно без перезагрузки узлов. Выполнение командCREATE CATALOG
иDROP CATALOG
приводит к ошибке.cedrusdata_dynamic
- динамическое управление каталогами, используя проприетарный алгоритм CedrusData. Возможно создание и удаление каталогов возможно без перезагрузки узлов с помощью командCREATE CATALOG
иDROP CATALOG
. Позволяет консистентно хранить конфигурацию каталогов в СУБД Postgres иди локальной файловой системе с помощью RocksDB.dynamic
- динамическое управление каталогами, используя встроенные возможности Trino. Возможно создание и удаление каталогов возможно без перезагрузки узлов с помощью командCREATE CATALOG
иDROP CATALOG
. Является экспериментальным и содержит ошибки, которые могут приводить к непредсказуемому поведению запросов. Не рекомендовано к использованию в production.
См. также: CREATE CATALOG, DROP CATALOG
Предупреждение
Некоторые коннекторы могут не освобождать все ресурсы при удалении. Это включает коннекторы, которые читают данные из HDFS, S3, GCS, или Azure: Hive коннектор, Iceberg коннектор, Delta Lake коннектор, Hudi коннектор.
cedrusdata.catalog.store.type
#
Тип: string
Допустимые значения:
rocksdb
,jdbc
,memory
Значение по умолчанию:
rocksdb
Требует режим работы cedrusdata_dynamic
.
Задает тип хранилища свойств каталогов:
rocksdb
- каталоги хранятся в файлах RocksDB на координаторе. Экземпляр RocksDB будет создан и запущен CedrusData автоматически. Необходимо задать параметрcedrusdata.catalog.store.rocksdb.path
.jdbc
- каталоги хранятся в СУБД Postgres. Вы должны запустить экземпляр Postgres перед запуском координатора. Необходимо задать параметрыcedrusdata.catalog.store.jdbc.url
,cedrusdata.catalog.store.jdbc.username
,cedrusdata.catalog.store.jdbc.password
.memory
- каталоги хранятся в памяти координатора. При перезапуске координатора все каталоги будут утеряны. Используйте данный режим только в целях тестирования.
cedrusdata.catalog.store.rocksdb.path
#
Тип: string
Значение по умолчанию:
etc/catalog/cedrusdata_catalog_store.rocksdb
Требует режим работы cedrusdata_dynamic
и cedrusdata.catalog.store.type=rocksdb
.
Задает директорию RocksDB, в которой будут храниться каталоги.
Путь может быть абсолютным или относительным. Если путь относительный, он будет разрешен относительно node.data-dir
.
Если директория пуста или не существует, новая база данных RocksDB будет инициализирована автоматически при запуске координатора.
cedrusdata.catalog.store.jdbc.url
#
Тип: string
Требует режим работы cedrusdata_dynamic
и cedrusdata.catalog.store.type=jdbc
.
Задает JDBC URL к базе данных, в которых будут храниться каталоги. В настоящий момент поддерживается только СУБД Postgres.
cedrusdata.catalog.store.jdbc.username
#
Тип: string
Требует режим работы cedrusdata_dynamic
и cedrusdata.catalog.store.type=jdbc
.
Задает имя пользователя СУБД Postgres.
cedrusdata.catalog.store.jdbc.password
#
Тип: string
Требует режим работы cedrusdata_dynamic
и cedrusdata.catalog.store.type=jdbc
.
Задает пароль СУБД Postgres.
cedrusdata.catalog.store.migrate-file-catalogs
#
Тип: boolean
Значение по умолчанию:
false
Если вы ранее использовали статические каталоги, то включение данного параметра позволит вам автоматически мигрировать статические каталоги в хранилище динамических каталогов. Миграция происходит только тогда, когда хранилище динамических каталогов является пустым. В противном случае параметр будет проигнорирован.
Предупреждение
В процессе миграции происходит чтение файлов статических каталогов координатора и их перенос в хранилище динамических каталогов. Если некоторые ваши каталоги имеют отличные свойства на координаторе и worker-узлах, автоматическая миграция не сможет учесть свойства worker-узлов. Учитывайте это при планировании миграции.
cedrusdata.catalog.node-groups
#
Тип: string
Требует режим работы cedrusdata_dynamic
.
Разделенный запятыми список групп, в которые входит данный узел.
Позволяет выборочно применять свойства каталога к отдельным узлами при вызове команды CREATE CATALOG
.
Координатор всегда состоит в группе coordinator
. Worker-узел всегда состоит в группе worker
.
cedrusdata.catalog.prune-interval
#
Тип: duration
Значение по умолчанию:
1s
Минимальное значение:
1ms
Требует режим работы cedrusdata_dynamic
.
Определяет частоту отправки запросов с координатора на worker-узлы на окончательное удаление каталогов, на которых была вызвана команда DROP CATALOG
.
catalog.prune.update-interval
#
Type: duration
Default value:
5s
Minimum value:
1s
Requires catalog.management to be set to dynamic
. Interval for
pruning dropped catalogs. Dropping a catalog does not interrupt any running
queries that use it, but makes it unavailable to any new queries.
catalog.store
#
Type: string
Allowed values:
file
,memory
Default value:
file
Requires catalog.management to be set to dynamic
. When set to
file
, creating and dropping catalogs using the SQL commands adds and removes
catalog property files on the coordinator node. Trino server process requires
write access in the catalog configuration directory. Existing catalog files are
also read on the coordinator startup. When set to memory
, catalog
configuration is only managed in memory, and any existing files are ignored on
startup.
catalog.config-dir
#
Type: string
Default value:
etc/catalog/
Requires catalog.management to be set to static
or
catalog.store to be set to file
. The directory with catalog property
files.
catalog.disabled-catalogs
#
Type: string
Requires catalog.management to be set to static
or
catalog.store to be set to file
. Comma-separated list of catalogs to
ignore on startup.
catalog.read-only
#
Type: string
Default value:
false
Requires catalog.store to be set to file
. If true, existing catalog
property files cannot be removed with DROP CATALOG
, and no new catalog files
can be written with identical names with CREATE CATALOG
. As a result, a
coordinator restart resets the known catalogs to the existing files only.