parallel_replicas_allow_in_with_subquery
Если значение true, подзапрос для IN будет выполняться на каждой реплике-follower.parallel_replicas_allow_materialized_views
Разрешить использование материализованных представлений с параллельными репликамиparallel_replicas_allow_merge_tables
Разрешает чтение из таблицыMerge с параллельными репликами. Действует только совместно с parallel_replicas_plan_based: чтение из таблицы Merge разворачивается в объединение чтений из базовых таблиц MergeTree, которое затем распределяется, как любое другое объединение. Таблица Merge обрабатывается одной репликой, если хотя бы одну из её базовых таблиц нельзя читать таким образом (таблица, не относящаяся к MergeTree, чтение с FINAL). Установите значение false, чтобы, как и до добавления этой поддержки, читать каждую таблицу Merge одной репликой. Экспериментальная.
parallel_replicas_allow_view_over_mergetree
Разрешает параллельным репликам выполнять внешний запрос простого представления над таблицамиMergeTree (вместо внутреннего запроса представления), что улучшает распараллеливание между узлами. Также применяется к представлениям UNION ALL, все ветви которых читают из разных таблиц MergeTree.
parallel_replicas_connect_timeout_ms
Тайм-аут в миллисекундах для подключения к удалённой реплике во время выполнения запроса в режиме параллельных реплик. Если тайм-аут истекает, соответствующая реплика не используется для выполнения запросаparallel_replicas_count
Это внутренняя настройка, её не следует использовать напрямую: она отражает детали реализации режима «параллельных реплик». Для распределённых запросов сервер-инициатор автоматически устанавливает её в значение, равное числу параллельных реплик, участвующих в обработке запроса.parallel_replicas_custom_key
Произвольное целочисленное выражение, которое можно использовать для распределения работы между репликами для конкретной таблицы. Значением может быть любое целочисленное выражение. Предпочтительны простые выражения на основе первичных ключей. Если эта настройка используется в кластере, состоящем из одного сегмента и нескольких реплик, эти реплики будут преобразованы в виртуальные сегменты. В противном случае она будет работать так же, как ключSAMPLE: будут использоваться несколько реплик каждого сегмента.
Выражение проверяется с учетом привилегий пользователя SELECT на уровне столбцов. Для представления с SQL SECURITY DEFINER или NONE оно применяется к столбцам представления; тело представления читается без такой проверки.
parallel_replicas_custom_key_range_lower
Позволяет фильтру типаrange равномерно распределять нагрузку между репликами на основе пользовательского диапазона [parallel_replicas_custom_key_range_lower, INT_MAX].
При использовании вместе с parallel_replicas_custom_key_range_upper позволяет фильтру равномерно распределять нагрузку между репликами в диапазоне [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper].
Примечание: эта настройка не приводит к дополнительной фильтрации данных при обработке запросов, а лишь изменяет точки, в которых фильтр диапазона разбивает диапазон [0, INT_MAX] для параллельной обработки.
parallel_replicas_custom_key_range_upper
Позволяет фильтру типаrange равномерно распределять работу между репликами на основе настраиваемого диапазона [0, parallel_replicas_custom_key_range_upper]. Значение 0 отключает верхнюю границу и устанавливает её равной максимальному значению выражения пользовательского ключа.
При использовании вместе с parallel_replicas_custom_key_range_lower эта настройка позволяет фильтру равномерно распределять работу между репликами для диапазона [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper].
Примечание: эта настройка сама по себе не приводит к дополнительной фильтрации данных при обработке запроса, а лишь изменяет точки, в которых фильтр диапазона разбивает диапазон [0, INT_MAX] для параллельной обработки
parallel_replicas_filter_pushdown
Разрешить pushdown фильтров в ту часть запроса, которую выполняют параллельные репликиparallel_replicas_for_cluster_engines
Заменяет движки табличных функций на соответствующие варианты -Clusterparallel_replicas_for_non_replicated_merge_tree
Если установлено значение true, ClickHouse будет использовать алгоритм параллельных реплик и для нереплицируемых таблиц семейства MergeTreeparallel_replicas_for_queries_with_multiple_tables
Если настройка включена, для запросов, объединяющих несколько таблиц (запросов сJOIN), могут использоваться параллельные реплики. Если она выключена, такие запросы выполняются без параллельных реплик.
Настройка влияет только на запросы с JOIN, в которых данные из стороны соединения, отличной от крайней левой, полностью считываются на каждой реплике. На запросы с UNION без JOIN она не влияет: каждая ветвь UNION независимо считывает одну таблицу, поэтому параллельные реплики для таких запросов по-прежнему применимы. Если UNION используется как табличное выражение в JOIN, он становится частью запроса, объединяющего несколько таблиц, и подпадает под действие настройки. ARRAY JOIN не считается соединением таблиц.
parallel_replicas_index_analysis_only_on_coordinator
Анализ индекса выполняется только на реплике-координаторе и не выполняется на других репликах. Действует только при включенном parallel_replicas_local_planparallel_replicas_local_plan
Использовать локальный план для локальной репликиparallel_replicas_mark_segment_size
Части логически разбиваются на сегменты, которые распределяются между репликами для параллельного чтения. Этот параметр задаёт размер этих сегментов. Не рекомендуется изменять его, пока вы не будете полностью уверены в том, что делаете. Значение должно находиться в диапазоне [128; 16384]parallel_replicas_min_number_of_rows_per_replica
Ограничивает число реплик, используемых в запросе, значением (оценочное количество строк для чтения / min_number_of_rows_per_replica). Максимальное значение по-прежнему ограничено параметром ‘max_parallel_replicas’parallel_replicas_mode
Тип фильтра, используемого с пользовательским ключом для параллельных реплик. default — использовать операцию modulo для пользовательского ключа, range — использовать фильтр диапазона для пользовательского ключа с применением всех возможных значений типа значения этого ключа.parallel_replicas_plan_based
Определяет, следует ли использовать параллельные реплики и где именно, на основе анализа плана запроса, а не дерева запроса. В результате удалённым репликам вместо SQL-запроса отправляется фрагмент плана. Экспериментальная. Не влияет на распределённыйINSERT SELECT (parallel_distributed_insert_select = 2), при котором каждой реплике отправляется весь запрос INSERT: выполняя его, реплика считывает данные с помощью реализации на основе дерева запроса. Initiator, участвующий в выполнении как ещё одна реплика, также использует эту реализацию.
parallel_replicas_prefer_local_join
Еслиtrue, и JOIN можно выполнить с помощью алгоритма параллельных реплик, а каждое хранилище той части JOIN, которая иначе была бы материализована во временную таблицу, может быть прочитано каждой репликой самостоятельно, будет использоваться локальный JOIN вместо GLOBAL JOIN. Такой частью является правая — за исключением RIGHT JOIN, где это левая часть и где каждое хранилище должно быть пригодно для параллельных реплик, а не просто быть таблицей семейства *MergeTree. Хранилище на материализуемой стороне вложенного GLOBAL JOIN или под GLOBAL IN не учитывается, поскольку initiator материализует их сам.
parallel_replicas_prefer_local_replica
Если включено (по умолчанию), локальная реплика всегда включается в набор реплик, используемых для параллельного чтения. Если отключено, локальной реплике не отдается предпочтение, и реплики выбираются исключительно алгоритмом балансировки нагрузки. Это позволяет направлять запросы сmax_parallel_replicas = 1 на другой хост, что может улучшить локальность кэша, когда множество коротких запросов распределено по кластеру.