abort_on_logical_error
Crash the server on LOGICAL_ERROR exceptions. Only for experts.allowed_disks_for_table_engines
List of disks allowed for use with Icebergauth_use_forwarded_address
Use originating address for authentication for clients connected through proxy.- Default:
false
This setting should be used with extra caution since forwarded addresses can be easily spoofed - servers accepting such authentication should not be accessed directly but rather exclusively through a trusted proxy.
bcrypt_workfactor
Work factor for thebcrypt_password authentication type which uses the Bcrypt algorithm.
The work factor defines the amount of computations and time needed to compute the hash and verify the password.
- Default:
12
blob_storage_log
Settings for theblob_storage_log system table.
The following settings can be configured by sub-tags:
Additionally, the following server-level setting controls the default flush policy for all system log tables:
Example:
builtin_dictionaries_reload_interval
The interval in seconds before reloading built-in dictionaries. ClickHouse reloads built-in dictionaries every x seconds. This makes it possible to edit dictionaries “on the fly” without restarting the server. Examplecache_size_to_ram_max_ratio
Set cache size to RAM max ratio. Allows lowering the cache size on low-memory systems.cannot_allocate_thread_fault_injection_probability
For testing purposes.cgroups_memory_usage_observer_wait_time
Interval in seconds during which the server’s maximum allowed memory consumption is adjusted by the corresponding threshold in cgroups. To disable the cgroup observer, set this value to0.
compression
Data compression settings for MergeTree-engine tables.We recommend not changing this if you have just started using ClickHouse.
<case> fields:
min_part_size– The minimum size of a data part.min_part_size_ratio– The ratio of the data part size to the table size.method– Compression method. Acceptable values:lz4,lz4hc,zstd,deflate_qpl.level– Compression level. See Codecs.
You can configure multiple
<case> sections.- If a data part matches a condition set, ClickHouse uses the specified compression method.
- If a data part matches multiple condition sets, ClickHouse uses the first matched condition set.
If no conditions are met for a data part, ClickHouse uses the
lz4 compression.config-file
Points to the server config file.config_reload_interval_ms
How often clickhouse will reload config and check for new changescore_dump
Configures soft limit for core dump file size.Hard limit is configured via system tools
crash_log
Settings for the crash_log system table operation. The following settings can be configured by sub-tags:
The default server configuration file
config.xml contains the following settings section:
create_union_system_log_tables
Requests the creation ofall_... tables next to the system log tables (system.all_query_log for system.query_log, system.all_text_log for system.text_log, and so on). Such a table is a union of the corresponding log table, its rotated versions (query_log_0, query_log_1, …) and/or the same tables across all replicas of a cluster, and allows querying them all at once without remembering constructs like clusterAllReplicas(default, merge(system, '^query_log')).
The section is optional. If it is present, at least one of the following settings has to be specified:
If both settings are specified, the table is a union of the rotated tables across all replicas of the cluster.
The option applies to all system log tables; it does not allow for a different configuration for different system logs. The tables are created in the same database as the system log tables at the first flush of each log and are automatically recreated when the structure of the log table changes (on rotation). They have no state, so it is safe to drop them at any time. The creation is supported only for the
Atomic, Replicated and Shared database engines.
When the
cluster setting is used, the table definition references the cluster, and the cluster has to exist for the table to be loaded. If you remove the cluster from the configuration, also drop the all_... tables (they will be recreated according to the new configuration at the next flush).database_atomic_delay_before_drop_table_sec
The delay during which a dropped table can be restored using theUNDROP statement. If DROP TABLE ran with a SYNC modifier, the setting is ignored.
The default for this setting is 480 (8 minutes).
dead_letter_queue
Setting for the ‘dead_letter_queue’ system table. The following settings can be configured by sub-tags:
Additionally, the following server-level setting controls the default flush policy for all system log tables:
The default settings are:
dictionary_background_reconnect_interval
Interval in milliseconds for reconnection attempts of failed MySQL and Postgres dictionaries havingbackground_reconnect enabled.
disk_transaction_wait_for_blob_removal
Default value for the per-diskwait_for_blob_removal setting.
When enabled, the server waits for background blob removal to complete before acknowledging the operation.
display_secrets_in_show_and_select
Enables or disables showing secrets inSHOW and SELECT queries for tables, databases, table functions, and dictionaries.
User wishing to see secrets must also have
format_display_secrets_in_show_and_select format setting
turned on and a
displaySecretsInShowAndSelect privilege.
Possible values:
0— Disabled.1— Enabled.
dns_max_consecutive_failures
Stop further attempts to update a hostname’s DNS cache after this number of consecutive failures. The information still remains in the DNS cache. Zero means unlimited. See alsodynamic_user_defined_executable_functions_path
The directory used to keep configuration files of executable UDFs created dynamically by drivers (seeCREATE FUNCTION ... ENGINE = DriverName(...)).
On server restart, the directory is scanned for configuration files and the corresponding UDFs are loaded without invoking the driver again.
Example
encryption
Configures a command to obtain a key to be used by encryption codecs. Key (or keys) should be written in environment variables or set in the configuration file. Keys can be hex or string with a length equal to 16 bytes. Example Loading from config:Storing keys in the configuration file is not recommended. It isn’t secure. You can move the keys into a separate config file on a secure disk and put a symlink to that config file to
config.d/ folder.current_key_id sets the current key for encryption, and all specified keys can be used for decryption.
Each of these methods can be applied for multiple keys:
current_key_id shows current key for encryption.
Also, users can add nonce that must be 12 bytes long (by default encryption and decryption processes use nonce that consists of zero bytes):
Everything mentioned above can be applied for
aes_256_gcm_siv (but the key must be 32 bytes long).enforce_keeper_component_tracking
If enabled, every ZooKeeper request must have a component name set viaCoordination::setCurrentComponent. Throws a LOGICAL_ERROR exception if the component is missing.
error_log
It is disabled by default. Enabling To manually turn on error history collectionsystem.error_log, create /etc/clickhouse-server/config.d/error_log.xml with the following content:
error_log setting, you should create the following file /etc/clickhouse-server/config.d/disable_error_log.xml with the following content:
Additionally, the following server-level setting controls the default flush policy for all system log tables:
filesystem_caches_path
This setting specifies the cache path. Examplegoogle_protos_path
Defines a directory containing proto files for Protobuf types. Examplehandshake_timeout_milliseconds
Wall-clock timeout in milliseconds for the entire TCP handshake phase (Hello + Addendum). Limits how long an unauthenticated connection can hold a thread. Set to 0 to disable.hdfs.libhdfs3_conf
Points libhdfs3 to the right location for its config.hsts_max_age
Expired time for HSTS in seconds.A value of
0 means ClickHouse disables HSTS. If you set a positive number, the HSTS will be enabled and the max-age is the number you set.iceberg_background_schedule_pool_size
Size of thread pool to asynchronously fetch the latest metadata from a remote iceberg catalog; the pool is shared by all the active tables.ignore_empty_sql_security_in_create_view_query
If true, aCREATE VIEW or CREATE MATERIALIZED VIEW query that specifies neither DEFINER nor SQL SECURITY is stored as written, and the view gets an empty SQL security type. Specifying DEFINER alone counts as SQL SECURITY DEFINER, so such a query is unaffected by this setting. A normal view with an empty SQL security type runs with the permissions of the invoker. For a materialized view with an explicitly specified target table, the access checks on the target table are skipped: inserting into the source table does not require the INSERT privilege on the target table, and reading from the view does not require the SELECT privilege on it.
If false, the defaults from the default_normal_view_sql_security, default_materialized_view_sql_security, and default_view_definer settings are written into the view definition at creation time. With the default values of those settings, a materialized view created with neither clause records the creating user as its definer and runs with that user’s permissions.
Refreshable materialized views always receive the defaults, regardless of this setting.
Changing this setting affects only views created afterwards; the stored definitions of existing views stay unchanged.
include_from
The path to the file with substitutions. Both XML and YAML formats are supported. For more information, see the section Configuration files. Empty by default, which means that no substitutions file is used. Before version 26.8 the file/etc/metrika.xml was used implicitly whenever it existed; if you rely on it, specify the path explicitly.
Note that configuration files that are loaded separately from the main server configuration — the users’ configuration (e.g. users.xml when it is not included in the main file) and XML dictionary configurations — read the include_from element from their own contents, not from the server configuration. Each such file that relies on substitutions needs its own include_from element.
Example
insert_deduplication_version
Deprecated migration guard. ClickHouse versions 26.7 and later support only the unified insert deduplication hash (new_unified_hash); the server refuses to start if this setting is present with any other value (such as old_separate_hashes or compatible_double_hashes). Complete the deduplication migration on the previous version before upgrading by running compatible_double_hashes (which writes both the legacy and unified hashes). For replicated tables run it for at least replicated_deduplication_window_seconds (one hour by default); the default windows retain the unified hashes of all inserts for that window, which is considered enough to cover an insert retry loop. For non-replicated tables with non_replicated_deduplication_window > 0 the window is count-based rather than time-based, so run compatible_double_hashes for at least that many inserts before upgrading.
io_thread_pool_queue_size
The maximum number of jobs that can be scheduled on the IO Thread pool.A value of
0 means unlimited.keep_alive_timeout
The number of seconds that ClickHouse waits for incoming requests for HTTP protocol before closing the connection. Exampleldap_servers
List LDAP servers with their connection parameters here to:- use them as authenticators for dedicated local users, who have an ‘ldap’ authentication mechanism specified instead of ‘password’
- use them as remote user directories.
Setting
user_dn_detection can be configured with sub-tags:
Example:
logger
The location and format of log messages. Keys:
Log format specifiers
File names in
log and errorLog paths support below format specifiers for the resulting file name (the directory part does not support them).
Column “Example” shows the output at 2023-07-06 18:32:07.
Example
<syslog>:
Log formats
You can specify the log format that will be outputted in the console log. Currently, only JSON is supported.
Example
Here is an example of an output JSON log:
<names> tag. For example, to change DATE_TIME to MY_DATE_TIME, you can use <date_time>MY_DATE_TIME</date_time>.
Omitting keys for JSON logs
Log properties can be omitted by commenting out the property. For example, if you do not want your log to print query_id, you can comment out the <query_id> tag.
logger.count
Rotation policy: How many historical log files ClickHouse are kept at most.logger.errorlog
The path to the error log file.logger.formatting.type
Log format for console output. Currently, only<json> is supported.
logger.level
Log level. Acceptable values:<none> (turn logging off), <fatal>, <critical>, <error>, <warning>, <notice>, <information>, <debug>, <trace>, <test>.
logger.log
The path to the log file.logger.rotation
Rotation policy: Controls when log files are rotated. Rotation can be based on size, time, or a combination of both. Examples: 100M, daily, 100M,daily. Once the log file exceeds the specified size or when the specified time interval is reached, it is renamed and archived, and a new log file is created.logger.shutdown_level
Shutdown level is used to set the root logger level at server Shutdown.logger.size
Rotation policy: Maximum size of the log files in bytes. Once the log file size exceeds this threshold, it is renamed and archived, and a new log file is created.logger.startup_level
Startup level is used to set the root logger level at server startup. After startup log level is reverted to the<level> setting.
logger.stream_compress
Compress log messages using LZ4. Set to<1> or <true> to enable.
logger.syslog_level
Log level for logging to syslog.logger.use_syslog
Also forward log output to syslog.macros
Parameter substitutions for replicated tables. Can be omitted if replicated tables are not used. For more information, see the section Creating replicated tables. Examplemessage_queue_disable_insertion
Disable insertion from message queue engines (Kafka, RabbitMQ, NATS) into attached materialized viewsmetric_log
It is disabled by default. Enabling To manually turn on metrics history collectionsystem.metric_log, create /etc/clickhouse-server/config.d/metric_log.xml with the following content:
metric_log setting, you should create the following file /etc/clickhouse-server/config.d/disable_metric_log.xml with the following content:
Additionally, the following server-level setting controls the default flush policy for all system log tables:
mmap_cache_size
This setting allows avoiding frequent open/close calls (which are very expensive due to consequent page faults), and to reuse mappings from several threads and queries. The setting value is the number of mapped regions (usually equal to the number of mapped files). The amount of data in mapped files can be monitored in the following system tables with the following metrics:MMappedFiles/MMappedFileBytes/MMapCacheCellsinsystem.metrics,system.metric_logCreatedReadBufferMMap/CreatedReadBufferMMapFailed/MMappedFileCacheHits/MMappedFileCacheMissesinsystem.events,system.processes,system.query_log,system.query_thread_log,system.query_views_log
The amount of data in mapped files does not consume memory directly and is not accounted for in query or server memory usage — because this memory can be discarded similar to the OS page cache. The cache is dropped (the files are closed) automatically on the removal of old parts in tables of the MergeTree family, also it can be dropped manually by the
SYSTEM DROP MMAP CACHE query.This setting can be modified at runtime and will take effect immediately.mutation_workload
Used to regulate how resources are utilized and shared between mutations and other workloads. Specified value is used asworkload setting value for all background mutations. Can be overridden by a merge tree setting.
See Also
named_collections_storage.type
The storage type for named collections. Possible values arelocal, local_encrypted, keeper,
keeper_encrypted, zookeeper, and zookeeper_encrypted.
Configured as named_collections_storage.type (<named_collections_storage><type> in XML).
oom_score
On Linux systems this can control the behavior of OOM killer.openSSL
SSL client/server configuration. Support for SSL is provided by thelibpoco library. The available configuration options are explained in SSLManager.h. Default values can be found in SSLManager.cpp.
The files referenced by certificateFile, privateKeyFile and caConfig are reloaded without a restart when they change or on SYSTEM RELOAD CONFIG. New connections use the reloaded certificates, established connections are not affected.
Keys for server/client settings:
Example of settings:
openSSL.client.caConfig
Path to the file or directory that contains trusted CA certificates. If this points to a file, it must be in PEM format and can contain several CA certificates. If this points to a directory, it must contain one .pem file per CA certificate. The filenames are looked up by the CA subject name hash value. Details can be found in the man page of SSL_CTX_load_verify_locations. The CA certificates are reloaded without a restart when the file changes or onSYSTEM RELOAD CONFIG; new connections are verified against the reloaded certificates.
openSSL.client.cacheSessions
Enables or disables caching sessions. Must be used in combination with<sessionIdContext>. Acceptable values: <true>, <false>.
openSSL.client.certificateFile
Path to the client/server certificate file in PEM format. You can omit it if<privateKeyFile> contains the certificate.
openSSL.client.cipherList
Supported OpenSSL encryptions.openSSL.client.disableProtocols
Protocols that are not allowed to be used.openSSL.client.extendedVerification
If enabled, verify that the certificate CN or SAN matches the peer hostname.openSSL.client.fips
Activates OpenSSL FIPS mode. Supported if the library’s OpenSSL version supports FIPS.openSSL.client.invalidCertificateHandler.name
Class (a subclass of CertificateHandler) for verifying invalid certificates. For example:<<invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler>>.
openSSL.client.loadDefaultCAFile
Determines whether built-in CA certificates for OpenSSL will be used. ClickHouse assumes that builtin CA certificates are in the file</etc/ssl/cert.pem> (resp. the directory </etc/ssl/certs>) or in file (resp. directory) specified by the environment variable <SSL_CERT_FILE> (resp. <SSL_CERT_DIR>).
openSSL.client.preferServerCiphers
Client-preferred server ciphers.openSSL.client.privateKeyFile
Path to the file with the secret key of the PEM certificate. The file may contain a key and certificate at the same time.openSSL.client.privateKeyPassphraseHandler.name
Class (PrivateKeyPassphraseHandler subclass) that requests the passphrase for accessing the private key. For example:<<privateKeyPassphraseHandler>>, <<name>KeyFileHandler</name>>, <<options><password>test</password></options>>, <</privateKeyPassphraseHandler>>
openSSL.client.verificationDepth
The maximum length of the verification chain. Verification will fail if the certificate chain length exceeds the set value.openSSL.client.verificationMode
The method for checking the node’s certificates. Details are in the description of the Context class. Possible values:<none>, <relaxed>, <strict>, <once>.
openSSL.server.caConfig
Path to the file or directory that contains trusted CA certificates. If this points to a file, it must be in PEM format and can contain several CA certificates. If this points to a directory, it must contain one .pem file per CA certificate. The filenames are looked up by the CA subject name hash value. Details can be found in the man page of SSL_CTX_load_verify_locations. The CA certificates are reloaded without a restart when the file changes or onSYSTEM RELOAD CONFIG; new connections are verified against the reloaded certificates.
openSSL.server.cacheSessions
Enables or disables caching sessions. Must be used in combination with<sessionIdContext>. Acceptable values: <true>, <false>.
openSSL.server.certificateFile
Path to the client/server certificate file in PEM format. You can omit it if<privateKeyFile> contains the certificate.
openSSL.server.cipherList
Supported OpenSSL encryptions.openSSL.server.disableProtocols
Protocols that are not allowed to be used.openSSL.server.extendedVerification
If enabled, verify that the certificate CN or SAN matches the peer hostname.openSSL.server.fips
Activates OpenSSL FIPS mode. Supported if the library’s OpenSSL version supports FIPS.openSSL.server.invalidCertificateHandler.name
Class (a subclass of CertificateHandler) for verifying invalid certificates. For example:<<invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler>>.
openSSL.server.loadDefaultCAFile
Determines whether built-in CA certificates for OpenSSL will be used. ClickHouse assumes that builtin CA certificates are in the file</etc/ssl/cert.pem> (resp. the directory </etc/ssl/certs>) or in file (resp. directory) specified by the environment variable <SSL_CERT_FILE> (resp. <SSL_CERT_DIR>).
openSSL.server.preferServerCiphers
Client-preferred server ciphers.openSSL.server.privateKeyFile
Path to the file with the secret key of the PEM certificate. The file may contain a key and certificate at the same time.openSSL.server.privateKeyPassphraseHandler.name
Class (PrivateKeyPassphraseHandler subclass) that requests the passphrase for accessing the private key. For example:<<privateKeyPassphraseHandler>>, <<name>KeyFileHandler</name>>, <<options><password>test</password></options>>, <</privateKeyPassphraseHandler>>
openSSL.server.sessionCacheSize
The maximum number of sessions that the server caches. A value of 0 means unlimited sessions.openSSL.server.sessionIdContext
A unique set of random characters that the server appends to each generated identifier. The length of the string must not exceed<SSL_MAX_SSL_SESSION_ID_LENGTH>. This parameter is always recommended since it helps avoid problems both if the server caches the session and if the client requested caching.
openSSL.server.sessionTimeout
Time for caching the session on the server in hours.openSSL.server.verificationDepth
The maximum length of the verification chain. Verification will fail if the certificate chain length exceeds the set value.openSSL.server.verificationMode
The method for checking the node’s certificates. Details are in the description of the Context class. Possible values:<none>, <relaxed>, <strict>, <once>.
opentelemetry_span_log
Settings for theopentelemetry_span_log system table.
The following settings can be configured by sub-tags:
Additionally, the following server-level setting controls the default flush policy for all system log tables:
Example:
part_log
Logging events that are associated with MergeTree. For instance, adding or merging data. You can use the log to simulate merge algorithms and compare their characteristics. You can visualize the merge process. Queries are logged in the system.part_log table, not in a separate file. You can configure the name of this table in thetable parameter (see below).
The following settings can be configured by sub-tags:
Additionally, the following server-level setting controls the default flush policy for all system log tables:
Example
path
The path to the directory containing data.The trailing slash is mandatory.
per_cpu_untracked_memory_thread_buffer
Amount of untracked memory, in bytes, each thread may hold without touching the shared per-CPU budget. It amortizes the cost of the per-CPU bookkeeping for small allocations and is the slack added on top ofmax_per_cpu_untracked_memory * number_of_cpus in the worst case. A value of 0 removes the slack: every allocation updates the shared per-CPU counter (most precise, but more contention). Linux only.
point_in_polygon_cache_size
Maximum size in bytes of the cache of preprocessed polygons used by the functionpointInPolygon with a constant polygon argument.
Entries above the limit are evicted in least recently used order.
Setting it to 0 disables the cache: all cached polygons are evicted, and every subsequent query preprocesses its constant polygon anew.
The cache can also be cleared manually, without changing this limit, with the SYSTEM DROP POINT IN POLYGON CACHE query.
This setting can be modified at runtime and will take effect immediately.
prefixes_deserialization_thread_pool_thread_pool_queue_size
The maximum number of jobs that can be scheduled on the prefixes deserialization Thread pool.A value of
0 means unlimited.prepare_system_log_tables_on_startup
If true, ClickHouse creates all configuredsystem.*_log tables before the startup. It can be helpful if some startup scripts depend on these tables.
process_query_plan_packet
This setting allows reading QueryPlan packet. This packet is sent for distributed queries when serialize_query_plan is enabled. Disabled by default to avoid possible security issues which can be caused by bugs in query plan binary deserialization. Exampleprocessors_profile_log
Settings for theprocessors_profile_log system table.
The following settings can be configured by sub-tags:
Additionally, the following server-level setting controls the default flush policy for all system log tables:
The default settings are:
prometheus
Exposing metrics data for scraping from Prometheus. Settings:endpoint– HTTP endpoint for scraping metrics by prometheus server. Start from ’/’.port– Port forendpoint.metrics– Expose metrics from the system.metrics table.events– Expose metrics from the system.events table.asynchronous_metrics– Expose current metrics values from the system.asynchronous_metrics table. Key-value metrics (those broken down per CPU core, block device, network interface, or disk) are exposed as one sample per key, carrying the key as a label:ClickHouseAsyncMetrics_BlockReadBytes{device="sda"}. Theasynchronous_metrics_key_values_modeserver setting exposes them under their pre-26.8 mangled names instead (ClickHouseAsyncMetrics_BlockReadBytes_sda), or both ways at once.errors- Expose the number of errors by error codes occurred since the last server restart. This information could be obtained from the system.errors as well.labels– Constant labels added to every exposed metric. Each child element defines one label: the element name is the label name (must match[a-zA-Z_][a-zA-Z0-9_]*) and the element value is the label value. Label values support standard config substitutions such as thefrom_envattribute. A label name is rejected when it starts with__(reserved by Prometheus), or when it would collide with a label this endpoint already writes for one of its enabled sections — otherwise a sample would carry the same label name twice. The reserved set therefore follows the endpoint’s active export surface:lewhenhistogramsis enabled; theClickHouse_Infolabels (name,version,version_describe,version_major,version_minor,version_patch) wheninfois enabled; the key labels of the key-value asynchronous metrics (channel,cpu,device,disk,interface,mc,sensor) whenasynchronous_metricsis enabled and they are published in the key-value form, which theasynchronous_metrics_key_values_modeserver setting decides; and any label used by an exposed histogram or dimensional metric family (for examplegroup,direction, oroperation_type) whenhistograms/dimensional_metricsis enabled. Because it depends on what the endpoint actually exposes, a name can be valid on one endpoint but rejected on another — for example a Keeperkeeper_metrics_onlyendpoint exposes only thekeeper_*families, so labels used only by server families are accepted there. The constant labels are validated against the same rule when a configuration is loaded, including onSYSTEM RELOAD CONFIG: a reload that would make a constant label collide - by adding such a label, or by changingasynchronous_metrics_key_values_modeso that the key labels start being written - is rejected as a whole before it takes effect, instead of exposing the same label twice. An accepted change of the mode re-creates the endpoints that expose the metrics, so that the new form and the labels of the same configuration are published together.
127.0.0.1 with the IP addr or hostname of your ClickHouse server):
prometheus.keeper_metrics_only
Expose the keeper related metricsproxy
Define proxy servers for HTTP and HTTPS requests, currently supported by S3 storage, S3 table functions, and URL functions. There are three ways to define proxy servers:- environment variables
- proxy lists
- remote proxy resolvers.
no_proxy.
Environment variables
The http_proxy and https_proxy environment variables allow you to specify a
proxy server for a given protocol. If you have it set on your system, it should work seamlessly.
This is the simplest approach if a given protocol has
only one proxy server and that proxy server doesn’t change.
Proxy lists
This approach allows you to specify one or more
proxy servers for a protocol. If more than one proxy server is defined,
ClickHouse uses the different proxies on a round-robin basis, balancing the
load across the servers. This is the simplest approach if there is more than
one proxy server for a protocol and the list of proxy servers doesn’t change.
Configuration template
- <proxy>
- <http> and <https>
\{proxy_scheme\}://\{proxy_host\}:{proxy_port}
Configuration template
- <proxy>
- <http> and <https>
- <resolver>
ClickHouse will check the highest priority resolver type for the request protocol. If it is not defined,
it will check the next highest priority resolver type, until it reaches the environment resolver.
This also allows a mix of resolver types can be used.
remap_executable
Setting to reallocate memory for machine code (“text”) using huge pages.This feature is highly experimental.
replica_group_name
Replica group name for database Replicated. The cluster created by Replicated database will consist of replicas in the same group. DDL queries will only wait for the replicas in the same group.- Default:
""
replicated_merge_tree
Fine-tuning for tables in the ReplicatedMergeTree. This setting has a higher priority. For more information, see the MergeTreeSettings.h header file. Examplerestore_threads
The maximum number of threads to execute RESTORE requests.send_crash_reports
Settings for sending of crash reports to the ClickHouse core developers team. Enabling it, especially in pre-production environments, is highly appreciated. Keys:
Recommended usage
series_keeper_path
Path in Keeper with auto-incremental numbers, generated by thegenerateSerialID function. Each series will be a node under this path.
ssh_server
The public part of the host key will be written to the known_hosts file on the SSH client side on the first connect. Host Key Configurations are inactive by default. Uncomment the host key configurations, and provide the path to the respective ssh key to active them: Example:table_engines_require_grant
If set to true, users require a grant to create a table with a specific engine e.g.GRANT TABLE ENGINE ON TinyLog to user.
- Default:
false
By default, for backward compatibility creating table with a specific table engine ignores grant, however you can change this behaviour by setting this to true.
tcp_ssh_port
Port for the SSH server which allows the user to connect and execute queries in an interactive fashion using the embedded client over the PTY. Example:text_log
Settings for the text_log system table for logging text messages. The following settings can be configured by sub-tags:
Additionally, the following server-level setting controls the default flush policy for all system log tables:
Additionally:
Example
thread_pool_queue_size
The maximum number of jobs that can be scheduled on the Global Thread pool. Increasing queue size leads to larger memory usage. It is recommended to keep this value equal tomax_thread_pool_size.
A value of
0 means unlimited.throw_on_unknown_workload
Defines behaviour on access to unknown WORKLOAD with query setting ‘workload’.- If
true, RESOURCE_ACCESS_DENIED exception is thrown from a query that is trying to access unknown workload. Useful to enforce resource scheduling for all queries after WORKLOAD hierarchy is established and contains WORKLOAD default. - If
false(default), unlimited access w/o resource scheduling is provided to a query with ‘workload’ setting pointing to unknown WORKLOAD. This is important during setting up hierarchy of WORKLOAD, before WORKLOAD default is added.
timezone
The server’s time zone. Specified as an IANA identifier for the UTC timezone or geographic location (for example, Africa/Abidjan). The time zone is necessary for conversions between String and DateTime formats when DateTime fields are output to text format (printed on the screen or in a file), and when getting DateTime from a string. Besides, the time zone is used in functions that work with the time and date if they didn’t receive the time zone in the input parameters. Exampletrace_log
Settings for the trace_log system table operation. The following settings can be configured by sub-tags:
Additionally, the following server-level setting controls the default flush policy for all system log tables:
The default server configuration file
config.xml contains the following settings section:
url_scheme_mappers
Configuration for translating shortened or symbolic URL prefixes into full URLs. Example:validate_tcp_client_information
Determines whether validation of client information is enabled when a query packet is received. By default, it isfalse:
wait_dictionaries_load_at_startup
This setting allows to specify behavior ifdictionaries_lazy_load is false.
(If dictionaries_lazy_load is true this setting doesn’t affect anything.)
If wait_dictionaries_load_at_startup is false, then the server
will start loading all the dictionaries at startup and it will receive connections in parallel with that loading.
When a dictionary is used in a query for the first time then the query will wait until the dictionary is loaded if it’s not loaded yet.
Setting wait_dictionaries_load_at_startup to false can make ClickHouse start faster, however some queries can be executed slower
(because they will have to wait for some dictionaries to be loaded).
If wait_dictionaries_load_at_startup is true, then the server will wait at startup
until all the dictionaries finish their loading (successfully or not) before receiving any connections.
Example
webassembly_udf_engine
The engine used to execute WebAssembly UDFs. The only supported value is ‘wasmtime’.webterminal_allowed_origins
Comma-separated list of full origins (scheme + host + optional port) allowed to open/webterminal WebSocket sessions. When empty, the same-origin policy is enforced strictly (Origin must match the request scheme, host, and port). Set this for deployments behind a TLS-terminating reverse proxy where request.isSecure() is false even though the browser uses https. Example: https://example.com,https://app.example.com:8443.