Список переменных сеанса
На этой странице собраны переменные сеанса Doris. Сейчас здесь описаны только переменные, которые были
добавлены, получили новое значение по умолчанию или были удалены в последних версиях; это пока не полный
справочник. Если переменная здесь не указана, используйте SHOW VARIABLES LIKE '<pattern>', чтобы узнать
её текущее значение.
О классификации, области действия и настройке переменных см. раздел Переменные.
Просмотр и настройка
-- Inspect
SHOW VARIABLES LIKE 'enable_file_scanner_v2';
-- Current session only
SET enable_file_scanner_v2 = false;
-- Globally (applies to sessions created afterwards)
SET GLOBAL enable_file_scanner_v2 = false;
Изменения в 4.1.5
| Категория | Переменные |
|---|---|
| Добавлены | enable_hyperscan_fallback |
| Изменено значение по умолчанию | enable_file_cache: с false на true |
| Исправлено поведение | profile_level передаётся на Master FE; return_object_data_as_binary различает результаты SQL Cache |
Изменения в 4.1.4
| Категория | Переменные |
|---|---|
| Добавлены | enable_file_scanner_v2, enable_external_scan_task_reuse, file_split_size_on_fe, file_split_size_on_be, enable_expr_zonemap_filter, enable_local_exchange_before_agg, enable_local_exchange_before_streaming_agg, runtime_filter_broadcast_join_producer_num, runtime_filter_tree_publish_max_send_bytes, bucket_shuffle_downgrade_ratio, eager_aggregation_on_broadcast_join, eager_agg_broadcast_row_count, force_eager_agg_hint, enable_topn_lazy_mat_phase2_no_write_file_cache, file_cache_query_limit_bytes, file_presigned_url_ttl_seconds, force_forward_all_queries |
| Изменено значение по умолчанию или семантика | max_scanners_concurrency, enable_runtime_filter_partition_prune, enable_nereids_distribute_planner |
| Удалены | eager_aggregation_on_join, plan_nereids_dump |
Сканирование внешних таблиц
enable_file_cache
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | true (false до 4.1.5) |
| Версия | Значение по умолчанию изменено в 4.1.5 |
Определяет, используют ли запросы File Cache. Одноимённый параметр конфигурации BE также должен быть включён; включение только переменной сеанса не приводит к использованию кеша, если параметр BE имеет значение false. В 4.1.5 оба значения по умолчанию изменены на true. После обновления проверьте явно заданные настройки и сохранённые глобальные переменные. Сведения о путях, ёмкости и ограничениях см. в разделе File Cache.
enable_file_scanner_v2
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | true |
| Версия | Добавлена в 4.1.4 |
Определяет, используется ли File Scanner V2 для сканирования внешних файлов. Когда переменная включена, FileScanNode использует новый
нативный движок сканирования в поддерживаемых им сценариях запросов, охватывающих форматы Parquet, ORC, CSV и JSON,
а также форматы таблиц Hive, Iceberg, Paimon и Hudi. Каталоги JDBC и системные таблицы Iceberg
по-прежнему используют прежний механизм сканирования.
Установите значение false, чтобы сравнить поведение, если подозреваете, что проблема с запросом связана с новым сканером. См.
Настройка запросов к озеру данных.
enable_external_scan_task_reuse
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | true |
| Версия | Добавлена в 4.1.4 |
Определяет, переиспользуют ли эквивалентные узлы сканирования внешних таблиц в пределах одного оператора сформированные ими фрагменты сканирования. Когда переменная включена, при самосоединении или многократном обращении к CTE над одной и той же внешней таблицей фрагменты сканирования больше не планируются повторно, что сокращает время планирования на FE. Применяется к Hive, Hudi, Iceberg и Paimon.
file_split_size_on_fe
| Параметр | Значение |
|---|---|
| Тип | Long (байты) |
| По умолчанию | 536870912 (512 MB) |
| Версия | Добавлена в 4.1.4 |
Целевой размер крупных фрагментов файлов, формируемых FE, когда BE может дополнительно разделить их. Неположительное значение отключает дополнительное разбиение на стороне BE и возвращает прежнюю стратегию разбиения на FE.
file_split_size_on_be
| Параметр | Значение |
|---|---|
| Тип | Long (байты) |
| По умолчанию | 67108864 (64 MB) |
| Версия | Добавлена в 4.1.4 |
Целевой размер мелких фрагментов сканирования, которые BE формирует на уровне row group в Parquet или stripe в ORC. Поскольку row group или stripe неделимы, размер отдельного фрагмента может превышать целевой.
enable_expr_zonemap_filter
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | false |
| Версия | Добавлена в 4.1.4 |
Управляет фильтрацией выражений с помощью ZoneMap в сканерах, которые учитывают эту переменную.
File Scanner V2 всегда выполняет безопасный вариант фильтрации выражений с помощью ZoneMap и не зависит от этой переменной.
enable_runtime_filter_partition_prune
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | true |
| Версия | Семантика изменена в 4.1.4 |
Управляет отсечением секций с помощью runtime filter в сканерах, которые учитывают эту переменную.
Начиная с 4.1.4 File Scanner V2 всегда выполняет безопасный вариант отсечения секций, поэтому установка
этой переменной в false не влияет на File Scanner V2.
max_scanners_concurrency
| Параметр | Значение |
|---|---|
| Тип | Int |
| По умолчанию | 8 (4 до 4.1.4) |
| Версия | Значение по умолчанию изменено в 4.1.4 |
Максимальная степень параллелизма сканирования для ScanNode. В 4.1.4 значение по умолчанию увеличено с 4 до 8, чтобы повысить
пропускную способность, когда потоки сканирования становятся узким местом. Верните значение 4, чтобы сохранить прежнее поведение.
Планирование и выполнение запросов
enable_nereids_distribute_planner
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | true |
| Версия | Поведение при обновлении изменено в 4.1.4 |
Определяет, используется ли распределённый планировщик Nereids.
В серии 4.1 начиная с 4.1.4 миграция устанавливает глобальное значение по умолчанию в true только при variable_version < 400, обычно при обновлении с 3.x, даже если ранее было сохранено false. При обновлении кластера, уже работающего на 4.x, это значение повторно не меняется. Если после обновления изменится распределение плана, выполните SET GLOBAL enable_nereids_distribute_planner = false;, чтобы вернуть прежнее поведение.
runtime_filter_broadcast_join_producer_num
| Параметр | Значение |
|---|---|
| Тип | Int |
| По умолчанию | 3 |
| Версия | Добавлена в 4.1.4 |
Максимальное количество узлов BE, создающих каждый runtime filter при broadcast join. Значение, меньшее или
равное 0, снимает ограничение.
При broadcast join каждый BE со стороны build создаёт одинаковое содержимое runtime filter, поэтому ограничение количества таких узлов заметно снижает накладные расходы RPC в крупных кластерах. Это влияет только на распределённое планирование Nereids; прежний механизм Coordinator сохраняет существующее поведение.
runtime_filter_tree_publish_max_send_bytes
| Параметр | Значение |
|---|---|
| Тип | Long (байты) |
| По умолчанию | 268435456 (256 MB) |
| Версия | Добавлена в 4.1.4 |
Максимальное количество байтов, передаваемых одним вызовом RPC при публикации глобального runtime filter. При превышении этого порога Doris переключается на древовидную (многоуровневую) публикацию, чтобы узел слияния больше не отправлял один и тот же большой фильтр каждому узлу сканирования.
Значение 0 отключает древовидную публикацию и возвращает прямую публикацию. Значение должно быть
больше или равно 0, иначе установить его не удастся.
bucket_shuffle_downgrade_ratio
| Параметр | Значение |
|---|---|
| Тип | Double |
| По умолчанию | 0.8 |
| Версия | Добавлена в 4.1.4 (экспериментальная возможность) |
Заменяет bucket shuffle join обычным shuffle join, когда общее количество бакетов на стороне базовой таблицы
меньше произведения общего количества экземпляров на этот коэффициент. При значении, меньшем или равном 0,
такая замена никогда не выполняется. Значение по умолчанию 0.8 сохраняет исходное поведение.
enable_local_exchange_before_agg
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | true |
| Версия | Добавлена в 4.1.4 |
Определяет, добавляется ли local exchange перед оператором агрегации.
Отключать это поведение не рекомендуется. До 4.1.4 его отключение могло приводить к неверным результатам при последовательном local exchange или local exchange без хеширования; эта проблема исправлена в 4.1.4.
enable_local_exchange_before_streaming_agg
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | false |
| Версия | Добавлена в 4.1.4 |
Определяет, добавляется ли local exchange перед оператором потоковой агрегации.
eager_aggregation_on_broadcast_join
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | true |
| Версия | Добавлена в 4.1.4 |
Определяет, разрешена ли eager aggregation (проталкивание агрегации) при broadcast join.
eager_agg_broadcast_row_count
| Параметр | Значение |
|---|---|
| Тип | Int |
| По умолчанию | 250000 |
| Версия | Добавлена в 4.1.4 |
Порог количества строк, по которому определяется, следует ли применять eager aggregation при broadcast join.
force_eager_agg_hint
| Параметр | Значение |
|---|---|
| Тип | String |
| По умолчанию | "" (пустая строка) |
| Версия | Добавлена в 4.1.4 |
Подсказка с шаблоном сопоставления, принудительно включающая проталкивание eager aggregation; предназначена для тестирования и отладки. Не рекомендуется для использования в рабочей среде.
Формат: <func>:<qualifier.column | *>=<push|nopush>, записи разделяются символом ;:
SET force_eager_agg_hint = 'sum:t1.a=push; sum:t2.a=nopush; count:*=push';
Обратите внимание: записи сопоставляются с каждой агрегатной функцией, но результат применяется к текущей рассматриваемой
ветви или поддереву проталкивания, а не к отдельной агрегатной функции независимо от остальных. Если хотя бы одна совпавшая запись
в ветви имеет значение nopush, эта ветвь не проталкивается; в противном случае, если хотя бы одна совпавшая запись имеет значение push,
для этой ветви может быть принудительно включено проталкивание, а остальные агрегатные функции в той же ветви следуют решению,
принятому для всей ветви.
force_forward_all_queries
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | false |
| Версия | Добавлена в 4.1.4 |
Когда переменная включена, каждый запрос текущего сеанса перенаправляется на master FE. Это полезно при диагностике проблем, вызванных несогласованностью метаданных между master FE и follower FE. Эта переменная является аналогом одноимённого параметра конфигурации FE на уровне сеанса.
Кеш
file_cache_query_limit_bytes
| Параметр | Значение |
|---|---|
| Тип | Long (байты) |
| По умолчанию | -1 |
| Версия | Добавлена в 4.1.4 |
Максимальный объём данных в байтах, прочитанных при удалённом сканировании, который один запрос может записать в файловый кеш через механизм read-through на каждом BE:
- меньше
0: без ограничений (функция отключена); - равно
0: запрос никогда не записывает данные в файловый кеш; - больше
0: запрос прекращает запись в файловый кеш, когда суммарный объём данных, прочитанных им при удалённом сканировании, достигает этого порога.
Используйте эту переменную, чтобы разовое сканирование большого объёма данных не вытесняло часто используемые данные из кеша.
enable_topn_lazy_mat_phase2_no_write_file_cache
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | false |
| Версия | Добавлена в 4.1.4 |
Когда переменная включена, чтение на фазе 2 отложенной материализации TopN при промахе файлового кеша обращается напрямую к удалённому хранилищу и не записывает отсутствующий диапазон обратно в файловый кеш. Это полезно, когда чтение на фазе 2 носит случайный характер, а доля попаданий в кеш низка.
Функции AI
file_presigned_url_ttl_seconds
| Параметр | Значение |
|---|---|
| Тип | Long (секунды) |
| По умолчанию | 3600 |
| Версия | Добавлена в 4.1.4 |
Срок действия предварительно подписанного URL, создаваемого для объекта в S3-совместимом хранилище в мультимодальных
сценариях EMBED(). Увеличьте его, если медиафайлы велики и поставщику требуется больше времени для их
получения. См. EMBED.
Профилирование и вывод результатов
profile_level
| Параметр | Значение |
|---|---|
| Тип | Integer (1, 2 или 3) |
| По умолчанию | 2 |
| Версия | Поведение при перенаправлении исправлено в 4.1.5 |
Управляет детализацией Query Profile: 1 собирает объединённые счётчики, 2 выводит подробную информацию, а 3 включает дополнительные счётчики, которые могут влиять на производительность. Начиная с 4.1.5 запросы, перенаправляемые на Master FE, сохраняют уровень текущего сеанса. См. Query Profile.
return_object_data_as_binary
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | false |
| Версия | Разграничение записей SQL Cache исправлено в 4.1.5 |
Определяет, возвращаются ли в результатах MySQL необработанные двоичные данные для объектов HLL, BITMAP и QUANTILE_STATE. При значении false для этих объектов возвращается NULL. Начиная с 4.1.5 эта переменная учитывается при разграничении записей кеша результатов SQL, чтобы сеансы с включённым двоичным выводом не переиспользовали результаты NULL, закешированные сеансами с отключённым двоичным выводом.
Регулярные выражения
enable_hyperscan_fallback
| Параметр | Значение |
|---|---|
| Тип | Boolean |
| По умолчанию | true |
| Версия | Добавлена в 4.1.5 |
Определяет, следует ли переходить к RE2, когда Hyperscan не может скомпилировать шаблон. При значении true Doris пробует RE2; при значении false возвращает ошибку компиляции Hyperscan. Такой переход не добавляет поддержку синтаксиса, который не поддерживается самим RE2. Эта переменная управляет другим механизмом, отличным от enable_extended_regex, который включает расширенный синтаксис Boost.Regex. См. REGEXP.
Удалённые переменные
| Переменная | Удалена в версии | Примечания |
|---|---|---|
eager_aggregation_on_join | 4.1.4 | Стратегия проталкивания агрегации переработана; вместо этой переменной используйте eager_aggregation_on_broadcast_join и eager_agg_broadcast_row_count. Удалите переменную из всех скриптов, в которых она всё ещё задаётся |
plan_nereids_dump | 4.1.4 | Теперь это внутреннее состояние, которое включается только при воспроизведении minidump; его больше нельзя задать с помощью SET |