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.

Доступ: все пользователи.