Перейти к содержимому
Последнее обновление

Список переменных сеанса

Эта страница находится в разработке и пока не завершена

На этой странице собраны переменные сеанса 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_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
Изменена семантика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. После обновления проверьте явно заданные настройки и сохранённые глобальные переменные. Сведения о путях, ёмкости и ограничениях см. в разделе Файловый кэш.

external_scan_consistent_hash_spread_num​

Этот параметр предназначен для сборок разработки, поддерживающих распределение внешних сплитов. Он позволяет при независимом планировании запросов распределять сканирование одного и того же сплита удалённого файла между подходящими узлами BE, снижая постоянную концентрацию нагрузки сканирования на одном узле.

ПараметрЗначение
ТипInteger
По умолчанию1
Допустимые значенияОт 0 до 2147483647
Область действияСеанс; SET GLOBAL применяется к новым сеансам
ЗначениеПоведение
1 (по умолчанию)Сохраняет исходную стратегию планирования, настроенное количество кандидатов и глобальное перераспределение сплитов. Не ограничивает сканирование одним узлом BE.
0Включает автоматическое распределение между всеми подходящими узлами BE в вычислительной группе запроса. Использует согласованное хеширование, если включён enable_file_cache или use_consistent_hash_for_external_scan; в противном случае использует случайную стратегию.
N > 1Если включено файловое кэширование или согласованное хеширование, распределяет нагрузку между не более чем N различными кандидатами, выбранными согласованным хешированием, с ограничением по числу подходящих узлов BE. В противном случае сохраняет циклическое планирование.
-- Enable automatic spreading for this session, without requiring file cache or hash scheduling.
SET external_scan_consistent_hash_spread_num = 0;

-- Limit the hash candidate set. This does not require the cluster to have exactly three backends.
SET use_consistent_hash_for_external_scan = true;
SET external_scan_consistent_hash_spread_num = 3;

-- Preserve the original scheduling.
SET external_scan_consistent_hash_spread_num = 1;
-- Restore the compiled default, also 1.
UNSET VARIABLE external_scan_consistent_hash_spread_num;

Режим распределения выбирает кандидата с наименьшим весом сканирования, уже назначенным политикой этого запроса; при равенстве весов выбор делается равновероятно случайным образом. Каждый сплит назначается один раз. Выбор не учитывает текущую загрузку CPU узлов BE и не гарантирует кратного увеличения пропускной способности. Загрузка файлов и сканирование схем сохраняют прежнее поведение.

В режиме распределения при включённом оптимизированном локальном планировании сплит, доступный удалённо, предпочитает узел BE, соответствующий его подсказкам о хостах, только если назначенный этому узлу вес сканирования не превышает минимальный вес среди всех подходящих узлов BE. В противном случае сплит следует настроенной стратегии планирования. Это предпочтение локальности может привести к выбору узла BE, не входящего в набор кандидатов удалённого сплита, выбранных хешированием. Сплиты, недоступные удалённо, по-прежнему должны использовать узлы BE, соответствующие требуемым хостам.

Распределение отключает последующее глобальное перераспределение сплитов, поэтому назначения остаются в пределах подходящих для сплита кандидатов и ограничений локальности. При нескольких сплитах балансировка ограничена кандидатами каждого сплита и может быть менее равномерной, чем исходное глобальное перераспределение.

Этот параметр не включает файловое кэширование. Если файловое кэширование включено, 0 может создавать кэшированные копии на каждом подходящем узле BE и увеличивать объём чтения при прогреве и занимаемое кэшем место; явно заданное N ограничивает число кандидатов для удалённого доступа, выбранных хешированием, с учётом приоритета локальности. Параметр не создаёт реплики кэша заранее. Начните с 1; включайте распределение, когда повторяющиеся запросы сосредоточены на перегруженном узле BE, а у других подходящих узлов BE есть свободные ресурсы. Сравнивайте оба режима на одном и том же запросе, при одинаковом состоянии кэша и одинаковых ресурсах.

Сохранённые глобальные значения сохраняются при обновлении. Изменение значения по умолчанию, заданного при компиляции, не сбрасывает сохранённое глобальное значение 0; используйте SET GLOBAL external_scan_consistent_hash_spread_num = 1, если новые сеансы должны сохранять исходное планирование. В существующих сеансах значение переменной сеанса нужно изменить отдельно. Отрицательные, нецелые и выходящие за допустимый диапазон значения отклоняются.

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_expr_zonemap_filter​

ПараметрЗначение
ТипBoolean
По умолчаниюtrue
ВерсияДобавлена в 4.1.4

Управляет фильтрацией выражений с помощью ZoneMap в сканерах, учитывающих эту переменную.

File Scanner V2 всегда выполняет безопасный вариант фильтрации выражений с помощью ZoneMap и не зависит от этой переменной.

enable_runtime_filter_partition_prune​

ПараметрЗначение
ТипBoolean
По умолчаниюtrue
ВерсияСемантика изменена в 4.1.4

Управляет отсечением партиций по фильтрам времени выполнения в сканерах, учитывающих эту переменную.

Начиная с 4.1.4, File Scanner V2 всегда выполняет безопасный вариант отсечения партиций, поэтому установка значения false для этой переменной не влияет на File Scanner V2.

Планирование и выполнение запросов​

enable_nereids_distribute_planner​

ПараметрЗначение
ТипBoolean
По умолчаниюtrue
ВерсияПоведение при обновлении изменено в 4.1.4

Определяет, используется ли распределённый планировщик Nereids.

В dev значение по умолчанию — true. Чтобы явно отключить распределённый планировщик, выполните SET GLOBAL enable_nereids_distribute_planner = false; и отдельно задайте значение для текущего сеанса. Миграция версий в серии 4.1 отличается от dev; не следует считать, что обновление всегда перезаписывает сохранённую глобальную настройку.

runtime_filter_broadcast_join_producer_num​

ПараметрЗначение
ТипInt
По умолчанию3
ВерсияДобавлена в 4.1.4

Максимальное число узлов BE, создающих каждый фильтр времени выполнения в broadcast join. Значение, меньшее или равное 0, снимает ограничение.

В broadcast join каждый узел BE на стороне построения создаёт одинаковое содержимое фильтра времени выполнения, поэтому ограничение числа производителей заметно снижает накладные расходы на RPC в крупных кластерах. Это влияет только на путь распределённого планирования Nereids; прежний путь через Coordinator сохраняет существующее поведение.

runtime_filter_tree_publish_max_send_bytes​

ПараметрЗначение
ТипLong (байты)
По умолчанию268435456 (256 MB)
ВерсияДобавлена в 4.1.4

Максимальное число байтов, отправляемых в одном RPC при публикации глобального фильтра времени выполнения. При превышении этого порога 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

Определяет, вставляется ли локальный обмен перед оператором агрегации.

предупреждение

Отключать этот параметр не рекомендуется. До 4.1.4 отключение этого поведения могло приводить к неверным результатам при последовательных локальных обменах или локальных обменах без хеширования; эта проблема исправлена в 4.1.4.

enable_local_exchange_before_streaming_agg​

ПараметрЗначение
ТипBoolean
По умолчаниюfalse
ВерсияДобавлена в 4.1.4

Определяет, вставляется ли локальный обмен перед оператором потоковой агрегации.

eager_aggregation_on_broadcast_join​

ПараметрЗначение
ТипBoolean
По умолчаниюtrue
ВерсияДобавлена в 4.1.4

Определяет, разрешена ли ранняя агрегация (проталкивание агрегации) для broadcast join.

eager_agg_broadcast_row_count​

ПараметрЗначение
ТипInt
По умолчанию250000
ВерсияДобавлена в 4.1.4

Порог числа строк, используемый при принятии решения о применении ранней агрегации к broadcast join.

force_eager_agg_hint​

ПараметрЗначение
ТипString
По умолчанию"" (пустая строка)
ВерсияДобавлена в 4.1.4

Подсказка с шаблоном сопоставления для принудительного проталкивания ранней агрегации, предназначенная для тестирования и отладки. Не рекомендуется для промышленной эксплуатации.

Формат: <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

Если параметр включён, каждый запрос текущего сеанса перенаправляется на ведущий FE. Это полезно при диагностике проблем, вызванных несогласованностью метаданных между ведущим и ведомыми 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

Управляет подробностью профиля запроса: 1 собирает объединённые счётчики, 2 выводит подробную информацию, а 3 включает дополнительные счётчики, которые могут влиять на производительность. Начиная с 4.1.5, запросы, перенаправленные на Master FE, сохраняют уровень текущего сеанса. См. Профиль запроса.

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_join4.1.4Стратегия проталкивания агрегации переработана; вместо этой переменной используйте eager_aggregation_on_broadcast_join и eager_agg_broadcast_row_count. Удалите переменную из всех скриптов, в которых она ещё задаётся
plan_nereids_dump4.1.4Теперь это внутреннее состояние, которое включается только при воспроизведении minidump; задавать его с помощью SET больше нельзя