Server Settings

**For each table**

When creating a table, specify the corresponding [engine setting](/docs/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table). The behaviour of an existing table with this setting does not change, even if the global setting changes.

**Possible values**

- `0` — Functionality is turned off.
- `1` — Functionality is turned on.

If [`use_minimalistic_part_header_in_zookeeper = 1`](#use_minimalistic_part_header_in_zookeeper), then [replicated](/docs/engines/table-engines/mergetree-family/replication) tables store the headers of the data parts compactly using a single `znode`. If the table contains many columns, this storage method significantly reduces the volume of the data stored in Zookeeper.

Note

After applying `use_minimalistic_part_header_in_zookeeper = 1`, you can't downgrade the ClickHouse server to a version that does not support this setting. Be careful when upgrading ClickHouse on servers in a cluster. Don't upgrade all the servers at once. It is safer to test new versions of ClickHouse in a test environment, or on just a few servers of a cluster.

Data part headers already stored with this setting can't be restored to their previous (non-compact) representation.

## use\_separate\_cache\_arena[​](#use_separate_cache_arena "Direct link to use_separate_cache_arena")

Enable a dedicated jemalloc arena for cache allocations (mark cache, uncompressed cache, page cache).
Isolates cache data from query-processing allocations, reducing memory fragmentation.

## use\_shared\_merge\_tree\_log\_pipeline[​](#use_shared_merge_tree_log_pipeline "Direct link to use_shared_merge_tree_log_pipeline")

Only available on ClickHouse Cloud. When enabled, `system.*_log` tables are backed by `SharedMergeTree` via an S3-based pipeline.
For each log `<log>`, the following objects are created automatically on startup:

- `system.<log>_s3` — an `S3`-backed table that is the direct flush target; each
  `SYSTEM FLUSH LOGS` call writes a new partitioned file here.
- `system.<log>_s3queue` — an `S3Queue` table (ordered mode) that picks up files from
  `<log>_s3` and streams rows downstream. Each node processes only its own files via
  `partition_regex`-based partitioning.
- `system.<log>_mv` — a `MATERIALIZED VIEW` that routes rows from `<log>_s3queue` into
  the final `SharedMergeTree` table.
- `system.<log>` — the final `SharedMergeTree` table where rows accumulate and are queried.

On schema or settings change, the affected table is renamed to `<log>_0`, `<log>_1`, etc.
and recreated, consistent with the existing `SystemLog` rotation behavior.

Requires `<shared_log_pipeline><endpoint>` to be set in the server configuration.
See also: `shared_log_pipeline.enable_polling`, `shared_log_pipeline.flush_timeout_seconds`.

## user\_defined\_executable\_functions\_config[​](#user_defined_executable_functions_config "Direct link to user_defined_executable_functions_config")

The path to the config file for executable user defined functions.

Path:

- Specify the absolute path or the path relative to the server config file.
- The path can contain wildcards \* and ?.

See also:

- "[Executable User Defined Functions](/docs/sql-reference/functions/udf#executable-user-defined-functions).".

**Example**

```
<user_defined_executable_functions_config>*_function.xml</user_defined_executable_functions_config>
```

## user\_defined\_path[​](#user_defined_path "Direct link to user_defined_path")

The directory with user defined files. Used for SQL user defined functions [SQL User Defined Functions](/docs/sql-reference/functions/udf).

**Example**

```
<user_defined_path>/var/lib/clickhouse/user_defined/</user_defined_path>
```

## user\_directories[​](#user_directories "Direct link to user_directories")

Section of the configuration file that contains settings:

- Path to configuration file with predefined users.
- Path to folder where users created by SQL commands are stored.
- ZooKeeper node path where users created by SQL commands are stored and replicated.

If this section is specified, the path from [users\_config](/docs/operations/server-configuration-parameters/settings#users_config) and [access\_control\_path](/docs/operations/server-configuration-parameters/settings#access_control_path) won't be used.

The `user_directories` section can contain any number of items, the order of the items means their precedence (the higher the item the higher the precedence).

**Examples**

```
<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <local_directory>
        <path>/var/lib/clickhouse/access/</path>
    </local_directory>
</user_directories>
```

Users, roles, row policies, quotas, and profiles can be also stored in ZooKeeper:

```
<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <replicated>
        <zookeeper_path>/clickhouse/access/</zookeeper_path>
    </replicated>
</user_directories>
```

You can also define sections `memory` — means storing information only in memory, without writing to disk, and `ldap` — means storing information on an LDAP server.

To add an LDAP server as a remote user directory of users that are not defined locally, define a single `ldap` section with the following settings:

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| Setting Description|  |  |  |  | | --- | --- | --- | --- | | `roles` section with a list of locally defined roles that will be assigned to each user retrieved from the LDAP server. If no roles are specified, user will not be able to perform any actions after authentication. If any of the listed roles is not defined locally at the time of authentication, the authentication attempt will fail as if the provided password was incorrect.|  |  | | --- | --- | | `server` one of LDAP server names defined in `ldap_servers` config section. This parameter is mandatory and cannot be empty. | | | | | |

**Example**

```
<ldap>
    <server>my_ldap_server</server>
        <roles>
            <my_local_role1 />
            <my_local_role2 />
        </roles>
</ldap>
```

## user\_files\_path[​](#user_files_path "Direct link to user_files_path")

The directory with user files. Used in the table function [file()](/docs/sql-reference/table-functions/file), [fileCluster()](/docs/sql-reference/table-functions/fileCluster).

**Example**

```
<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
```

## user\_scripts\_path[​](#user_scripts_path "Direct link to user_scripts_path")

The directory with user scripts files. Used for Executable user defined functions [Executable User Defined Functions](/docs/sql-reference/functions/udf#executable-user-defined-functions).

**Example**

```
<user_scripts_path>/var/lib/clickhouse/user_scripts/</user_scripts_path>
```

## users\_config[​](#users_config "Direct link to users_config")

Path to the file that contains:

- User configurations.
- Access rights.
- Settings profiles.
- Quota settings.

**Example**

```
<users_config>users.xml</users_config>
```

## users\_to\_ignore\_early\_memory\_limit\_check[​](#users_to_ignore_early_memory_limit_check "Direct link to users_to_ignore_early_memory_limit_check")

Comma-separated list of users to ignore an early memory limit check. If user is not in this list, a query will be rejected if the total memory usage exceeds the limit.

## validate\_tcp\_client\_information[​](#validate_tcp_client_information "Direct link to validate_tcp_client_information")

Determines whether validation of client information is enabled when a query packet is received.

By default, it is `false`:

```
<validate_tcp_client_information>false</validate_tcp_client_information>
```

## vector\_similarity\_index\_cache\_max\_entries[​](#vector_similarity_index_cache_max_entries "Direct link to vector_similarity_index_cache_max_entries")

Size of cache for vector similarity index in entries. Zero means disabled.

## vector\_similarity\_index\_cache\_policy[​](#vector_similarity_index_cache_policy "Direct link to vector_similarity_index_cache_policy")

Vector similarity index cache policy name.