Настройка
DuckDB имеет ряд параметров конфигурации, которые можно использовать для изменения поведения системы.
Параметры конфигурации можно задать с помощью оператора SET или оператора PRAGMA. Их можно сбросить до исходных значений с помощью оператора RESET.
Значения параметров конфигурации можно запросить с помощью скалярной функции current_setting() или с помощью табличной функции duckdb_settings(). Например:
SELECT current_setting('memory_limit') AS memlimit;
SELECT value AS memlimit FROM duckdb_settings() WHERE name = 'memory_limit'; Примеры
Установите лимит памяти системы на 10 ГБ.
SET memory_limit = '10GB';
Настройте систему на использование 1 потока.
SET threads TO 1;
Включите отображение прогресс-бара во время длительных запросов.
SET enable_progress_bar = true;
Установите порядок по умолчанию для NULL в NULLS LAST.
SET default_null_order = 'nulls_last';
Возвращает текущее значение конкретной настройки.
SELECT current_setting('threads') AS threads; | threads |
|---|
| 10 |
Запрос конкретной настройки.
SELECT * FROM duckdb_settings() WHERE name = 'threads';
| name | value | description | input_type | scope |
|---|---|---|---|---|
| threads | 1 | Количество потоков, используемых системой. | BIGINT | GLOBAL |
Показать список всех доступных настроек.
SELECT * FROM duckdb_settings();
Сбросить лимит памяти системы до значения по умолчанию.
RESET memory_limit;
Менеджер секретов
DuckDB имеет Менеджер секретов, который предоставляет единый пользовательский интерфейс для секретов через все бэкэнды (например, AWS S3), которые их используют.
Справочник по конфигурации
Параметры конфигурации имеют различные значения по умолчанию для областей: GLOBAL и LOCAL. Ниже приведен список всех доступных параметров конфигурации по областям.
Глобальные параметры конфигурации
| Имя | Описание | Тип | Значение по умолчанию |
|---|
Calendar | Текущий календарь | VARCHAR | Системный (локальный) календарь |
TimeZone | Текущая временная зона | VARCHAR | Системная (локальная) временная зона |
access_mode | Режим доступа к базе данных (AUTOMATIC, READ_ONLY или READ_WRITE) | VARCHAR | automatic |
allocator_background_threads | Включить фоновый поток выделения памяти. | BOOLEAN | false |
allocator_bulk_deallocation_flush_threshold | Если происходит сброс больших объемов выделенной памяти, сбросить все ожидающие выделения. | VARCHAR | 512.0 MiB |
allocator_flush_threshold | Пороговое значение пикового выделения памяти, после достижения которого освободить выделенную память после завершения задачи. | VARCHAR | 128.0 MiB |
allow_community_extensions | Разрешить загрузку расширений, созданных сообществом. | BOOLEAN | true |
allow_extensions_metadata_mismatch | Разрешить загрузку расширений с несовместимыми метаданными. | BOOLEAN | false |
allow_persistent_secrets | Разрешить создание постоянных секретов, которые сохраняются и загружаются при перезапуске. | BOOLEAN | true |
allow_unredacted_secrets | Разрешить вывод необработанных секретов. | BOOLEAN | false |
allow_unsigned_extensions | Разрешить загрузку расширений с недействительными или отсутствующими подписями. | BOOLEAN | false |
arrow_large_buffer_size | Буферы стрелок для строк, блоков, UUID и битов должны экспортироваться с использованием больших буферов. | BOOLEAN | false |
arrow_lossless_conversion | Когда тип DuckDB не имеет явного соответствия в Arrow, экспортировать типы с именем расширения duckdb.type_name. | BOOLEAN | false |
arrow_output_list_view | Если экспорт в формат Arrow должен использовать ListView в качестве физической структуры для списочных столбцов. | BOOLEAN | false |
autoinstall_extension_repository | Переопределяет пользовательский конечный пункт для установки расширений при автоматической загрузке. | VARCHAR | |
autoinstall_known_extensions | Разрешить автоматическую установку известных расширений, когда запрос от них зависит. | BOOLEAN | true |
autoload_known_extensions | Разрешить автоматическую загрузку известных расширений, когда запрос от них зависит. | BOOLEAN | true |
binary_as_string | В файлах Parquet интерпретировать двоичные данные как строку. | BOOLEAN | |
ca_cert_file | Путь к пользовательскому сертификационному файлу для самозаверяемых сертификатов. | VARCHAR | |
catalog_error_max_schemas | Максимальное количество схем, которые система будет сканировать для поиска ошибок типа «возможно вы имели в виду…» в каталоге. | UBIGINT | 100 |
checkpoint_threshold, wal_autocheckpoint
| Пороговое значение размера журнала транзакций (ЖТТ), при котором автоматически запускается точка восстановления (например, 1 ГБ). | VARCHAR | 16.0 MiB |
custom_extension_repository | Переопределяет пользовательский конечный пункт для удалённой установки расширений. | VARCHAR | |
custom_user_agent | Метаданные от вызывающих DuckDB. | VARCHAR | |
default_block_size | Размер блока по умолчанию для новых файлов базы данных duckdb (новых в том смысле, что они ещё не существуют). | UBIGINT | 262144 |
default_collation | Настройка сортировки, используемая при её отсутствии. | VARCHAR | |
default_null_order, null_order
| Порядок обработки NULL при его отсутствии (NULLS_FIRST, NULLS_LAST, NULLS_FIRST_ON_ASC_LAST_ON_DESC или NULLS_LAST_ON_ASC_FIRST_ON_DESC) | VARCHAR | NULLS_LAST |
default_order | Тип порядка, используемый при его отсутствии (ASC или DESC) | VARCHAR | ASC |
default_secret_storage | Разрешить смену стандартного хранилища для секретов. | VARCHAR | local_file |
disabled_filesystems | Отключить определенные файловые системы, препятствующие доступу (например, LocalFileSystem). | VARCHAR | |
duckdb_api | Интерфейс API DuckDB. | VARCHAR | cli |
enable_external_access | Разрешить базе данных доступ к внешнему состоянию (например, загрузка/установка модулей, COPY TO/FROM, CSV-читатели, замены сканирования pandas и т.д.). | BOOLEAN | true |
enable_fsst_vectors | Разрешить сканирование сжатых сегментов FSST, чтобы выводить сжатые векторы для использования отложенного распаковки. | BOOLEAN | false |
enable_http_metadata_cache | Использовать ли глобальные метаданные HTTP для кеширования метаданных HTTP. | BOOLEAN | false |
enable_macro_dependencies | Включить создание зависимостей для созданных макросов от связанных объектов (таких как таблицы). | BOOLEAN | false |
enable_object_cache | Использовать ли кэш объектов для кэширования, например, метаданных Parquet. | BOOLEAN | false |
enable_server_cert_verification | Включить проверку сертификатов на стороне сервера. | BOOLEAN | false |
enable_view_dependencies | Включить создание зависимостей для созданных представлений от связанных объектов (таких как таблицы). | BOOLEAN | false |
extension_directory | Установить каталог для хранения расширений. | VARCHAR | |
external_threads | Количество внешних потоков, работающих над задачами DuckDB. | BIGINT | 1 |
force_download | Принудительно загрузить файл заранее. | BOOLEAN | false |
http_keep_alive | Поддерживать активные подключения. Установка этого значения в false может помочь при возникновении проблем с подключениями. | BOOLEAN | true |
http_proxy_password | Пароль для HTTP-прокси. | VARCHAR | |
http_proxy_username | Имя пользователя для HTTP-прокси. | VARCHAR | |
http_proxy | Хост HTTP-прокси. | VARCHAR | |
http_retries | Количество повторных попыток HTTP при ошибках ввода/вывода. | UBIGINT | 3 |
http_retry_backoff | Коэффициент экспоненциального увеличения времени ожидания при повторных попытках. | FLOAT | 4 |
http_retry_wait_ms | Время между повторными попытками. | UBIGINT | 100 |
http_timeout | Таймауты HTTP для чтения/записи/соединения/повторных попыток. | UBIGINT | 30000 |
immediate_transaction_mode | Транзакции должны запускаться лениво при необходимости или сразу при вызове BEGIN TRANSACTION. | BOOLEAN | false |
index_scan_max_count | Максимальное количество сканирований индексов устанавливает порог для сканирования индексов. Если количество совпавших строк меньше MAX(index_scan_max_count, index_scan_percentage * total_row_count), мы выполняем сканирование индекса вместо сканирования таблицы. | UBIGINT | 2048 |
index_scan_percentage | Процент сканирования индекса устанавливает порог для сканирования индексов. Если количество совпавших строк меньше MAX(index_scan_max_count, index_scan_percentage * total_row_count), мы выполняем сканирование индекса вместо сканирования таблицы. | DOUBLE | 0.001 |
lock_configuration | Можно ли изменить конфигурацию. | BOOLEAN | false |
max_memory, memory_limit
| Максимальный объем памяти системы (например, 1 ГБ). | VARCHAR | 80% оперативной памяти |
max_temp_directory_size | Максимальный объем данных, хранящихся в каталоге временных файлов (если он задан). Если каталог временных файлов задан и существует, это значение по умолчанию — доступное пространство на этом диске. В противном случае оно по умолчанию равно 0 (что подразумевает, что временный каталог не используется). | VARCHAR | 0 bytes |
max_vacuum_tasks | Максимальное количество задач вакуума, которые планируются во время точки восстановления. | UBIGINT | 100 |
old_implicit_casting | Разрешить неявное преобразование в/из VARCHAR. | BOOLEAN | false |
password | Пароль для использования. Игнорируется для обратной совместимости. | VARCHAR | NULL |
preserve_insertion_order | Сохранять порядок вставки. Если значение false, система разрешает менять порядок результатов, которые не содержат предложения ORDER BY. | BOOLEAN | true |
produce_arrow_string_view | Производить ли строки в формате Utf8View вместо Utf8. | BOOLEAN | false |
s3_access_key_id | ID ключа доступа к S3. | VARCHAR | |
s3_endpoint | Конечная точка S3. | VARCHAR |
s3_region | Регион S3 | VARCHAR | us-east-1 |
s3_secret_access_key | Ключ доступа S3 | VARCHAR | |
s3_session_token | Токен сессии S3 | VARCHAR | |
s3_uploader_max_filesize | Максимальный размер файла для загрузчика S3 (между 50 ГБ и 5 ТБ) | VARCHAR | 800GB |
s3_uploader_max_parts_per_file | Максимальное количество частей файла для загрузчика S3 (между 1 и 10000) | UBIGINT | 10000 |
s3_uploader_thread_limit | Глобальный лимит потоков загрузчика S3 | UBIGINT | 50 |
s3_url_compatibility_mode | Отключить шаблоны и параметры запроса в URL S3 | BOOLEAN | false |
s3_url_style | Стиль URL S3 | VARCHAR | vhost |
s3_use_ssl | Использовать SSL для S3 | BOOLEAN | true |
secret_directory | Установить директорию для хранения постоянных секретов | VARCHAR | ~/.duckdb/stored_secrets |
storage_compatibility_version | Сериализация при контрольных точках с совместимостью для данной версии duckdb | VARCHAR | v0.10.2 |
temp_directory | Установить директорию для записи временных файлов | VARCHAR |
⟨database_name⟩.tmp или .tmp (в режиме памяти) |
threads, worker_threads
| Общее количество потоков, используемых системой. | BIGINT | Количество ядер процессора |
username, user
| Имя пользователя для использования. Игнорируется для совместимости со старыми версиями. | VARCHAR | NULL |
Параметры локальной конфигурации
| Имя | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
custom_profiling_settings | Принимает JSON для включения пользовательских метрик | VARCHAR | {"RESULT_SET_SIZE": "true", "OPERATOR_TIMING": "true", "OPERATOR_ROWS_SCANNED": "true", "CUMULATIVE_ROWS_SCANNED": "true", "OPERATOR_CARDINALITY": "true", "OPERATOR_TYPE": "true", "CUMULATIVE_CARDINALITY": "true", "EXTRA_INFO": "true", "CPU_TIME": "true", "BLOCKED_THREAD_TIME": "true", "QUERY_NAME": "true"} |
enable_http_logging | Включает HTTP логирование | BOOLEAN | false |
enable_profiling | Включает профилирование и задает формат вывода (JSON, QUERY_TREE, QUERY_TREE_OPTIMIZER) | VARCHAR | NULL |
enable_progress_bar_print | Управляет отображением полосы прогресса, когда 'enable_progress_bar' имеет значение true | BOOLEAN | true |
enable_progress_bar | Включает полосу прогресса, выводящую прогресс в терминал для длительных запросов | BOOLEAN | true |
errors_as_json | Выводит сообщения об ошибках в виде структурированных JSON вместо необработанной строки | BOOLEAN | false |
explain_output | Вывод инструкций EXPLAIN (ALL, OPTIMIZED_ONLY, PHYSICAL_ONLY) | VARCHAR | physical_only |
file_search_path | Список директорий для поиска входных файлов, разделенных запятыми | VARCHAR | |
home_directory | Устанавливает домашний каталог, используемый системой | VARCHAR | |
http_logging_output | Файл, в который должен сохраняться вывод HTTP-логирования, или пустая строка для вывода в терминал | VARCHAR | |
ieee_floating_point_ops | Использовать операции с плавающей точкой, совместимые с IEE754 (возвращать NAN вместо ошибок/NULL) | BOOLEAN | true |
integer_division | Оператор / по умолчанию выполняет целочисленное деление или деление с плавающей точкой | BOOLEAN | false |
log_query_path | Указывает путь, в который должны сохраняться запросы (по умолчанию: NULL, запросы не сохраняются) | VARCHAR | NULL |
max_expression_depth | Максимальная глубина выражения в анализаторе. ПРЕДУПРЕЖДЕНИЕ: увеличение этого параметра и использование очень глубоких выражений может привести к переполнению стека. | UBIGINT | 1000 |
merge_join_threshold | Количество строк на каждой таблице для выбора соединения слиянием | UBIGINT | 1000 |
nested_loop_join_threshold | Количество строк на каждой таблице для выбора вложенного цикла соединения | UBIGINT | 5 |
order_by_non_integer_literal | Разрешить сортировку по литералам, не являющимся целыми числами - сортировка по таким литералам не имеет эффекта | BOOLEAN | false |
ordered_aggregate_threshold | Количество строк для накопления перед сортировкой, используется для настройки | UBIGINT | 262144 |
partitioned_write_flush_threshold | Порог количества строк, после которого состояние потока очищается при записи с использованием PARTITION_BY | UBIGINT | 524288 |
partitioned_write_max_open_files | Максимальное количество файлов, которые система может держать открытыми перед записью на диск при записи с использованием PARTITION_BY | UBIGINT | 100 |
perfect_ht_threshold | Порог в байтах для использования идеальной хеш-таблицы | BIGINT | 12 |
pivot_filter_threshold | Порог для переключения с использования отфильтрованных агрегатов на LIST с выделенным оператором сводки | BIGINT | 20 |
pivot_limit | Максимальное количество сводных столбцов в инструкции сводки | BIGINT | 100000 |
prefer_range_joins | Вынужденное использование объединений диапазонов с смешанными предикатами | BOOLEAN | false |
preserve_identifier_case | Сохранять регистр идентификаторов или всегда приводить все нецитируемые идентификаторы к нижнему регистру | BOOLEAN | true |
profile_output, profiling_output
| Файл, в который должен сохраняться вывод профилирования, или пустая строка для вывода в терминал | VARCHAR | |
profiling_mode | Режим профилирования (STANDARD или DETAILED) | VARCHAR | NULL |
progress_bar_time | Устанавливает время (в миллисекундах), необходимое запросу для начала отображения полосы прогресса | BIGINT | 2000 |
scalar_subquery_error_on_multiple_rows | Если скалярный подзапрос возвращает несколько строк - возвратить случайную строку вместо ошибки | BOOLEAN | true |
schema | Устанавливает схему поиска по умолчанию. Эквивалентно установке search_path для одного значения. | VARCHAR | main |
search_path | Устанавливает путь поиска каталога по умолчанию как список значений, разделенных запятыми | VARCHAR | |
streaming_buffer_size | Максимальный объем памяти для буферизации между извлечением из потокового результата (например, 1 ГБ) | VARCHAR | 976.5 KiB |
Страницы в этом разделе
© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/configuration/overview.html