allow_aggregate_partitions_independently
Включает независимую агрегацию партиций в отдельных потоках, если ключ партиционирования соответствует ключу GROUP BY. Полезно, когда число партиций близко к числу ядер, а сами партиции имеют примерно одинаковый размер. Эвристики вReadFromMergeTree автоматически отключают эту оптимизацию при неблагоприятной структуре (слишком мало партиций, слишком много партиций или размеры партиций сильно перекошены); чтобы обойти эти проверки, см. force_aggregate_partitions_independently.
allow_archive_path_syntax
Движки File/S3 и табличная функция будут разбирать пути с ’::’ как<archive> :: <file>, если у архива корректное расширение.
allow_asynchronous_read_from_io_pool_for_merge_tree
Использовать фоновый пул I/O для чтения из таблиц семейства MergeTree. Эта настройка может повысить производительность запросов, ограниченных пропускной способностью I/Oallow_calculating_subcolumns_sizes_for_merge_tree_reading
Если настройка включена, ClickHouse будет вычислять размер файлов, необходимых для чтения каждого подстолбца, чтобы точнее рассчитывать размеры задач и блоков.allow_changing_replica_until_first_data_packet
Если параметр включен, в хеджированных запросах можно устанавливать новое соединение до получения первого пакета данных, даже если уже был достигнут некоторый прогресс (но прогресс не обновлялся в течение тайм-аутаreceive_data_timeout); в противном случае смена реплики отключается после первого достижения прогресса.
allow_correlated_subqueries
Псевдонимы:allow_experimental_correlated_subqueries
Разрешает выполнение коррелированных подзапросов.
allow_create_index_without_type
Разрешает выполнение запроса CREATE INDEX без TYPE. Запрос будет проигнорирован. Предназначено для тестов совместимости с SQL.allow_creating_set_partitions_independently
Включает параллельную предварительную дедупликацию результата подзапроса по партициям при построении множества дляIN (subquery), если выражение партиционирования таблицы MergeTree в подзапросе является детерминированной функцией выходных столбцов подзапроса. Каждая партиция читается отдельным потоком и дедуплицируется независимо, поэтому единственное преобразование заполнения множества хеширует только уникальные строки. Не применяется с FINAL, параллельными репликами или GLOBAL IN. Оптимизация запрашивает чтение по партициям только если данные содержат более одной партиции, а наибольшая партиция содержит не более чем вдвое больше строк, чем средняя (см. force_creating_set_partitions_independently, чтобы обойти проверку неравномерности); если потоки уже разделены по партициям другой возможностью, работающей по партициям (например, LIMIT BY по партициям), предварительная дедупликация применяется в любом случае, поскольку структура чтения уже определена. Пока строится множество, таблицы дедупликации всех потоков вместе хранят примерно одну дополнительную копию уникальных ключей.
allow_custom_error_code_in_throwif
Разрешает использование пользовательского кода ошибки в функции throwIf(). Если значениеtrue, сгенерированные исключения могут иметь неожиданные коды ошибок.
allow_database_glue_catalog
Псевдонимы:allow_experimental_database_glue_catalog
Разрешает движок баз данных DataLakeCatalog с catalog_type = 'glue'
Значение по умолчанию в Cloud: 1.
allow_database_iceberg
Псевдонимы:allow_experimental_database_iceberg
Разрешает движок баз данных DataLakeCatalog с catalog_type = 'iceberg'
Значение по умолчанию в Cloud: 1.
allow_database_unity_catalog
Псевдонимы:allow_experimental_database_unity_catalog
Разрешает движок баз данных DataLakeCatalog с catalog_type = 'unity'
Значение по умолчанию в Cloud: 1.
allow_ddl
Если установлено значение true, пользователю разрешается выполнять DDL-запросы.allow_delta_kernel_rs
Псевдонимы:allow_experimental_delta_kernel_rs
Разрешает использовать реализацию delta-kernel-rs для чтения таблиц Delta Lake.
allow_delta_lake_create_table
Разрешает создание новой таблицы DeltaLake с помощью delta-kernel-rs или регистрацию существующей таблицы в каталоге. Создание партиционированной таблицы (PARTITION BY) пока не поддерживается. В базе данных DataLakeCatalog таблица регистрируется со своей схемой Delta, поэтому объявленные типы ClickHouse, которым соответствует более широкий тип Delta (например, UInt8 -> short, FixedString(N) -> string), при чтении возвращаются как тип из сопоставления Delta, а не как объявленный.
allow_delta_lake_writes
Псевдонимы:allow_experimental_delta_lake_writes
Включает возможность записи через delta-kernel.
allow_distinct_partitions_independently
Включает независимую обработкуDISTINCT в каждой партиции в отдельных потоках, когда выражение партиционирования является детерминированной функцией от столбцов DISTINCT, без слияния между потоками. Это полезно, когда число партиций близко к числу ядер, а размеры партиций примерно одинаковы; в противном случае эвристика стоимости не применяет эту оптимизацию. См. max_number_of_partitions_for_independent_distinct и force_distinct_partitions_independently. Не применяется с FINAL или параллельными репликами.
Не применяется, если задано max_rows_in_distinct или max_bytes_in_distinct: эти ограничения применяются единственным преобразованием DISTINCT, которое обрабатывает весь объединённый результат, поэтому слияние между потоками сохраняется, чтобы обеспечить их глобальное действие.
allow_distributed_ddl
Если установлено значение true, пользователю разрешено выполнять распределённые DDL-запросы.allow_drop_detached
Разрешает запросы ALTER TABLE … DROP DETACHED PART[ITION] …allow_dynamic_type_in_join_keys
Разрешает использовать тип Dynamic в ключах JOIN. Добавлено для совместимости. Не рекомендуется использовать тип Dynamic в ключах JOIN, поскольку сравнение с другими типами может приводить к неожиданным результатам.allow_executable_tables
Разрешает чтение через табличную функциюexecutable, а также из таблиц Executable и ExecutablePool.
Если настройка отключена, запрещается только чтение: создание, присоединение (ATTACH), удаление и описание таких таблиц продолжают работать. Уже запущенные процессы ExecutablePool не завершаются и продолжают работать, но каждая операция чтения будет отклоняться, пока настройка не будет включена снова.
allow_execute_multiif_columnar
Разрешает выполнять функцию multiIf в столбцовом режимеallow_fuzz_query_functions
Включает функциюfuzzQuery, которая применяет к строке запроса случайные мутации AST.
allow_general_join_planning
Разрешает использовать более универсальный алгоритм планирования JOIN, способный обрабатывать более сложные условия, но работающий только с hash join. Если hash join не включен, то независимо от значения этой настройки используется обычный алгоритм планирования JOIN.allow_geo_types_in_iceberg
Псевдонимы:allow_experimental_geo_types_in_iceberg
Разрешает разбор типов полей Iceberg geometry и geography как типа ClickHouse Geometry (Variant).
allow_get_client_http_header
Разрешает использовать функциюgetClientHTTPHeader, которая позволяет получать значение заголовка текущего HTTP request. По соображениям безопасности эта возможность по умолчанию отключена, поскольку некоторые заголовки, например Cookie, могут содержать конфиденциальную информацию. Обратите внимание, что заголовки X-ClickHouse-*, Authentication и Authorization всегда недоступны и не могут быть получены с помощью этой функции.
allow_hyperscan
Разрешает функции, использующие библиотеку Hyperscan. Отключите, чтобы избежать потенциально длительной компиляции и чрезмерного потребления ресурсов.allow_iceberg_remove_orphan_files
Разрешает использоватьALTER TABLE ... EXECUTE remove_orphan_files() для таблиц Iceberg.
allow_insert_into_iceberg
Псевдонимы:allow_experimental_insert_into_iceberg
Разрешает выполнять запросы insert в Iceberg.
allow_introspection_functions
Включает или отключает функции интроспекции при профилировании запросов. Возможные значения:- 1 — функции интроспекции включены.
- 0 — функции интроспекции отключены.
- Выборочный профилировщик запросов
- Системная таблица trace_log
allow_join_right_table_sorting
Псевдонимы:allow_experimental_join_right_table_sorting
Если задано значение true и выполняются условия join_to_sort_minimum_perkey_rows и join_to_sort_maximum_table_rows, правая таблица переупорядочивается по ключу — это повышает производительность left или inner hash join.
allow_kafka_offsets_storage_in_keeper
Псевдонимы:allow_experimental_kafka_offsets_storage_in_keeper
Разрешает хранение смещений Kafka в ClickHouse Keeper. Если настройка включена, для движка таблицы Kafka можно указать path в ClickHouse Keeper и имя реплики. В этом случае вместо обычного движка Kafka будет использоваться новый тип движка хранения, который хранит зафиксированные смещения преимущественно в ClickHouse Keeper
allow_key_condition_coalesce_rewrite
Переписывает предикаты видаcoalesce(a_1, ..., a_N) <op> const (и аналогично для ifNull, а также с константой слева) в дизъюнкцию (a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const) перед анализом индексов, чтобы можно было использовать первичный ключ по каждому столбцу и индексы пропуска данных для каждого a_i. Обрабатываются формы с частично константными аргументами, такие как coalesce(a, 42, b) и coalesce(a, b, 42): список аргументов нормализуется так же, как в самом coalesce (литералы NULL отбрасываются, аргументы после первого не-Nullable отбрасываются), а завершающая константа, отличная от NULL, если она есть, добавляется как последняя ветвь. Переписывание исключительно расширяет возможности отсечения данных по индексам; при выполнении запроса по-прежнему используется исходный предикат.
Кроме того, предикаты точного равенства вида nullIf(key, sentinel) = const (где sentinel != const и типы полностью совпадают) переписываются в key = const, чтобы первичный ключ, партиция и индексы пропуска данных по key могли напрямую отсекать гранулы. Отсечение гранул для диапазонных и дизъюнктивных условий с nullIf не поддерживается.
allow_limit_by_partitions_independently
Включает независимое вычислениеLIMIT BY для каждой партиции в отдельных потоках, когда выражение партиционирования является детерминированной функцией столбцов LIMIT BY.
allow_lossy_numeric_supertype
Когда настройка включена,if/multiIf/coalesce/ifNull/array/map с набором числовых аргументов, не имеющих общего типа без потери точности (например, Decimal и Float64 или Int64 и Float64), вместо ошибки приводятся к числовому супертипу (Float64) с возможной потерей точности. Это позволяет напрямую использовать результат с агрегатными функциями, объединяющими значения, такими как sum, avg, min и max. Настройка не зависит от use_variant_as_common_type: числовой супертип создаётся независимо от того, включён ли use_variant_as_common_type. Когда настройка отключена (по умолчанию), такие наборы аргументов не имеют общего типа: они либо становятся Variant (если включён use_variant_as_common_type), либо вызывают ошибку NO_COMMON_TYPE.
allow_materialized_view_with_bad_select
Разрешает CREATE MATERIALIZED VIEW с SELECT-запросом, который ссылается на несуществующие таблицы или столбцы. При этом запрос всё равно должен быть синтаксически корректным. Не применяется к обновляемым MV. Не применяется, если схему MV нужно определить по SELECT-запросу (то есть если в CREATE нет списка столбцов и нет TO table). Может использоваться для создания MV до создания её исходной таблицы.allow_metadata_only_named_tuple_alter
Если true, операция ALTER MODIFY COLUMN для именованного Tuple, при которой добавляются только новые подполя, изменяет только метаданные (без мутации данных). Установите false, чтобы принудительно включить прежнее поведение с полной мутацией.allow_minmax_index_for_json
Разрешает создавать индексы пропуска данных minmax для столбцов JSON (Object). По умолчанию отключено, поскольку путь сериализации индекса minmax не может обрабатывать неоднородные значения Field, которые могут содержаться в JSON-столбцах.allow_named_collection_override_by_default
По умолчанию разрешает переопределение полей именованных коллекций.allow_non_metadata_alters
Разрешает выполнять ALTER-запросы, которые затрагивают не только метаданные таблиц, но и данные на дискеallow_nonconst_timezone_arguments
Разрешает использовать неконстантные аргументы часового пояса в некоторых функциях, связанных со временем, таких как toTimeZone(), fromUnixTimestamp*(), snowflakeIDToDateTime*(). Этот параметр существует исключительно для совместимости. В ClickHouse часовой пояс — это свойство типа данных, а значит, и столбца. Включение этого параметра создаёт ложное впечатление, что разные значения в одном столбце могут иметь разные часовые пояса. Поэтому, пожалуйста, не включайте этот параметр.allow_nullable_tuple_in_extracted_subcolumns
Определяет, могут ли извлечённые подстолбцы типаTuple(...) иметь тип Nullable(Tuple(...)).
false: ВозвращаетTuple(...)и использует значения кортежа по умолчанию для строк, в которых подстолбец отсутствует.true: ВозвращаетNullable(Tuple(...))и используетNULLдля строк, в которых подстолбец отсутствует.
Nullable(Tuple(...)); это регулируется параметром enable_nullable_tuple_type.
ClickHouse использует значение этой настройки, загруженное при запуске сервера.
Изменения, внесённые с помощью SET или SETTINGS на уровне запроса, не меняют поведение извлечённых подстолбцов.
Чтобы изменить поведение извлечённых подстолбцов, обновите allow_nullable_tuple_in_extracted_subcolumns в конфигурации профиля запуска (например, в users.xml) и перезапустите сервер.
allow_preliminary_distinct_abandoning
Позволяет предварительному (выполняемому для каждого потока)DISTINCT отказаться от дедупликации почти полностью уникальных входных данных, освободив свою hash table и пропуская оставшиеся строки дальше. Предварительный DISTINCT по своей природе работает по принципу «по мере возможности»: дубликаты из разных потоков проходят через него даже тогда, когда он выполняет дедупликацию, а финальный DISTINCT всё равно повторно дедуплицирует его результат. Поэтому такой отказ практически не ухудшает удаление дубликатов, но экономит память и вычисление hash для второй копии уникальных ключей. Не применяется, если предварительный DISTINCT содержит подсказку об ограничении (простой LIMIT без последующей сортировки).
allow_rank_dense_rank_arguments
Разрешает передавать аргументы в оконные функцииRANK и DENSE_RANK для обратной совместимости.
Согласно стандарту SQL, RANK и DENSE_RANK не принимают аргументов — они ранжируют строки только по
окну OVER (ORDER BY ...). В версиях ClickHouse до 26.5 запросы вида
RANK(x) OVER (...) молча принимали и игнорировали аргумент, что приводило к путанице у пользователей
(наличие аргумента создавало впечатление, что он влияет на ранжирование, хотя это было не так).
Когда эта настройка имеет значение false (по умолчанию), RANK и DENSE_RANK отклоняют любые аргументы и
генерируют ошибку NUMBER_OF_ARGUMENTS_DOESNT_MATCH. Если установить значение true, восстанавливается прежнее более мягкое поведение —
аргументы молча игнорируются, как и до версии 26.5.
allow_reorder_prewhere_conditions
При перемещении условий из WHERE в PREWHERE разрешает менять их порядок для оптимизации фильтрацииallow_replace_partition_from_empty_source
РазрешаетALTER TABLE ... REPLACE PARTITION ... FROM ... молча удалять партицию пункта назначения, если в источнике нет частей в этой партиции.
По умолчанию это запрещено: REPLACE PARTITION из источника, в котором нет данных в запрошенной партиции, вызывает исключение, поскольку в таком случае операция фактически превращается в молчаливый DROP PARTITION для пункта назначения (данные в партиции пункта назначения удаляются, но взамен ничего не записывается), что нередко приводит к случайной потере данных (см. #23727).
Включите эту настройку, чтобы вернуть прежнее поведение, например если вы намеренно используете пустую исходную партицию для очистки данных в пункте назначения. Если нужно просто удалить партицию без дополнительных условий, предпочтительнее использовать ALTER TABLE ... DROP PARTITION ....
allow_settings_after_format_in_insert
Управляет тем, разрешён лиSETTINGS после FORMAT в INSERT-запросах. Использовать это не рекомендуется, поскольку часть SETTINGS может быть интерпретирована как значения.
Пример:
allow_settings_after_format_in_insert:
- 0 — Запрещено.
- 1 — Разрешено.
Используйте эту настройку только для обратной совместимости, если ваши сценарии зависят от старого синтаксиса.
allow_simdjson
Разрешает использовать библиотеку simdjson в функциях ‘JSON*’, если доступны инструкции AVX2. Если параметр отключен, будет использоваться rapidjson.allow_special_serialization_kinds_in_output_formats
Позволяет выводить столбцы со специальными видами сериализации, такими как Sparse и Replicated, без преобразования их в полные столбцы. Это помогает избежать лишнего копирования данных при форматировании.allow_unrestricted_reads_from_keeper
Разрешает неограниченное чтение (без условия по path) из таблицы system.zookeeper; может быть удобно, но небезопасно для ZooKeeperallow_url_wildcard_from_index_pages
Псевдонимы:allow_experimental_url_wildcard_from_index_pages
Разрешает раскрытие wildcard для url() и ENGINE = URL по индексным страницам HTTP.
allow_window_partitions_independently
Включает независимое вычисление оконных функций для каждой партиции в отдельных потоках, если выражение партиционирования таблицыMergeTree является детерминированной функцией столбцов оконного PARTITION BY. Каждая партиция читается через отдельный поток данных, независимо сортируется в соответствии с описанием сортировки окна и обрабатывается собственным оконным преобразованием без хеш-перераспределения, которое обычно перераспределяет каждую строку между потоками. Это полезно, когда число партиций близко к числу ядер, а их размеры примерно одинаковы; в противном случае эвристика стоимости не применяет эту оптимизацию. См. max_number_of_partitions_for_independent_window и force_window_partitions_independently. Не применяется с FINAL или параллельными репликами.