4.3. Параметры конфигурации #
Параметры pgpro_axe можно настроить в файле postgresql.conf.
duckdb.force_execution#Принудительно выполняет запросы в DuckDB. Это необходимо, если запрос относится к таблицам Postgres Pro. Если используется функциональность, доступная только в DuckDB, запросы автоматически выполняются в DuckDB.
К функциональности, доступной только в DuckDB, относится чтение таблиц DuckDB, использование функций DuckDB (например,
read_parquet), а также выполнениеCOPYв удалённое хранилище (например,s3://).Значение по умолчанию: false.
Доступ: все пользователи.
duckdb.default_collation#Устанавливает правила сортировки по умолчанию для строковых операций и сортировки DuckDB. Этот параметр позволяет настраивать поведение сравнения строк с учётом конкретной локали.
Пример 4.41.
"en_us""de_de""C"
Значение по умолчанию:
""— используется значение по умолчанию из DuckDB.Доступ: только суперпользователь.
4.3.1. Безопасность #
duckdb.postgres_role#Указывает роль Postgres Pro, которой позволено выполнять запросы в DuckDB и управлять секретами. Если указанная роль не существует в момент выполнения
CREATE EXTENSION pgpro_axe, она будет создана автоматически.Значение по умолчанию:
""— только суперпользователи.Доступ: требуется перезапуск.
duckdb.disabled_filesystems#Отключает хранилища для pgpro_axe.
Возможные значения:
LocalFileSystem: отключить локальные хранилища.S3FileSystem: отключить S3-хранилища.HTTPFileSystem: отключить сетевые хранилища.
По умолчанию отключено локальное хранилище:
Пример 4.42.
postgres=> show duckdb.disabled_filesystems; duckdb.disabled_filesystems ----------------------------- LocalFileSystem (1 row)
Чтобы указать несколько хранилищ, разделите их имена запятыми без пробелов:
Пример 4.43.
postgres=# ALTER SYSTEM SET duckdb.disabled_filesystems TO 'LocalFileSystem,HTTPFileSystem'; ALTER SYSTEM -- after server reboot -- postgres=# show duckdb.disabled_filesystems; duckdb.disabled_filesystems -------------------------------- LocalFileSystem,HTTPFileSystem (1 row)Доступ: только суперпользователь.
duckdb.autoinstall_known_extensions#Указывает, разрешена ли автоматическая установка известных расширений, если они необходимы для выполнения запроса DuckDB.
Возможные значения:
true
false
По умолчанию только суперпользователи могут выполнять функции
duckdb.install_extensionиduckdb.autoload_extension. Это сделано для того, чтобы другие пользователи не устанавливали расширения, которые могут повлиять на безопасность или помешать работе баз данных.Пользователям доступны только расширения, отмеченные в DuckDB как автоматически устанавливаемые. Чтобы ограничить использование таких расширений, укажите false для
duckdb.autoinstall_known_extensions.Значение по умолчанию: true.
Доступ: только суперпользователь.
duckdb.autoload_known_extensions#Указывает, разрешена ли автоматическая загрузка известных расширений, если они необходимы для выполнения запроса DuckDB.
Значение по умолчанию: true.
Доступ: только суперпользователь
duckdb.allow_community_extensions#Указывает, разрешена ли установка расширений сообщества.
Значение по умолчанию: false.
Доступ: только суперпользователь.
duckdb.unsafe_allow_execution_inside_functions#Разрешает выполнение функций Postgres Pro в DuckDB.
Важно
Эта функциональность отключена по умолчанию, так как её использование может привести к неработоспособности Postgres Pro AXE.
Значение по умолчанию: false.
Доступ: только суперпользователь.
duckdb.enable_external_access#Предоставляет DuckDB доступ к внешним ресурсам (например, HTTP, S3).
Важно
Эта функциональность отключена по умолчанию, так как её использование может привести к неработоспособности Postgres Pro AXE.
Значение по умолчанию: true.
Доступ: только суперпользователь.
4.3.2. Управление ресурсами #
Эти параметры настраиваются для каждого отдельного подключения, так как любое подключение, использующее DuckDB, имеет свой экземпляр DuckDB. Если pgpro_axe используется большим количеством параллельных подключений, для некоторых из этих параметров рекомендуется указать значения ниже, чем их значения по умолчанию.
-
duckdb.max_memory / duckdb.memory_limit# Максимальный объём памяти в мегабайтах, который Postgres Pro может использовать для обработки одного запроса. Этот параметр можно настраивать для каждого сеанса. При нулевом значении используется 80% оперативной памяти.
Пример 4.44.
4096(4 ГБ)8192(8 ГБ)1024(1 ГБ)
Значение по умолчанию:
4096(4 ГБ).Доступ: только суперпользователь.
duckdb.threads/duckdb.worker_threads#Максимальное количество потоков (ядер процессора), которое может использовать Postgres Pro для обработки одного запроса. Этот параметр можно настраивать для каждого сеанса.
Значение по умолчанию:
-1— значение равно количеству ядер процессора.Доступ: только суперпользователь.
duckdb.max_workers_per_postgres_scan#Максимальное количество рабочих процессов Postgres Pro, используемых для одного сканирования Postgres Pro. Этот параметр аналогичен
max_parallel_workers_per_gather.Значение по умолчанию:
2.Доступ: все пользователи.
duckdb.threads_for_postgres_scan#Максимальное количество потоков DuckDB для каждого сканирования Postgres Pro. Этот параметр управляет уровнем распараллеливания в DuckDB при сканировании таблиц Postgres Pro.
Значение по умолчанию:
2.Доступ: все пользователи.
4.3.3. Продвинутое использование #
duckdb.convert_unsupported_numeric_to_double#Преобразует типы
NUMERICс неподдерживаемыми значениямиprecision/scaleвDOUBLEвместо выдачи ошибки.Возможные значения:
true
false
DuckDB поддерживает типы
NUMERIC/DECIMALс точностью от 1 до 38 и масштабом от 0 до 38 (при условии, что масштаб ≤ точности). ДляNUMERIC, выходящих за эти пределы:Если указано true, неподдерживаемые значения типа
NUMERICпреобразуются вDOUBLEс возможной потерей точности.Если указано false, неподдерживаемые значения типа
NUMERICвызывают ошибку.
Значение по умолчанию: false.
Доступ: все пользователи.
duckdb.unsafe_allow_mixed_transactions#Позволяет выполнять смешанные транзакции между DuckDB и Postgres Pro.
Важно
Этот параметр позволяет выполнять транзакции, изменяющие данные в обеих базах данных. Однако это может привести к проблемам с согласованностью данных и не рекомендуется для использования в производственной среде.
Значение по умолчанию: false.
Доступ: все пользователи.
4.3.4. Хранилище #
duckdb.temporary_directory#Указывает каталог, в котором DuckDB записывает временные файлы. По умолчанию DuckDB использует каталог внутри каталога Postgres Pro (
DataDir/pg_duckdb/temp). Этот параметр может быть полезен для указания более быстрого хранилища (например, SSD) или более эффективного управления дисковым пространством.Значение по умолчанию:
"DataDir/pg_duckdb/temp".Доступ: только суперпользователь.
duckdb.max_temp_directory_size / duckdb.max_temporary_directory_size#Максимальный объём данных, который может быть сохранён во временном каталоге DuckDB. Этот параметр позволяет предотвратить использование всего доступного дискового пространства из‑за неправильно работающих запросов.
Пример 4.45.
"10GB""500MB""2TB"
Значение по умолчанию:
""— без ограничения.Доступ: только суперпользователь.
duckdb.extension_directory#Указывает каталог, в котором DuckDB хранит свои расширения. По умолчанию расширения хранятся в каталоге Postgres Pro (
DataDir/pg_duckdb/extensions). Это полезно для управления хранилищем расширений или для совместного использования расширений несколькими экземплярами Postgres Pro.Значение по умолчанию:
"DataDir/pg_duckdb/extensions".Доступ: только суперпользователь.
4.3.5. Параметры для разработчика #
duckdb.allow_unsigned_extensions#Позволяет DuckDB загружать расширения с неверными или отсутствующими подписями. Этот параметр особенно полезен при разработке расширений DuckDB.
Значение по умолчанию: false.
Доступ: только суперпользователь.
duckdb.log_pg_explain#Регистрирует в журнале план команды
EXPLAINдля сканирования в Postgres Pro на уровне журналаNOTICE. Этот параметр полезен для отладки выполнения запросов и понимания того, как DuckDB взаимодействует с таблицами Postgres Pro.Значение по умолчанию: false.
Доступ: все пользователи.