usage: clickhouse-local [initial table definition] [--query <query>]
clickhouse-local allows to execute SQL queries on your data files via single command line call. To do so, initially you need to define your data source and its format. After you can execute your SQL queries in usual manner.
There are two ways to define initial table keeping your data. Either just in first query like this:
CREATE TABLE <table> (<structure>) ENGINE = File(<input-format>, <file>);
Either through corresponding command line parameters --table --structure --input-format and --file.
Main options:
--help produce help message
-V [ --version ] print version information and exit
--version-clean print version in machine-readable
format and exit
-C [ --config-file ] arg
config-file path
-q [ --query ] arg
query; can be specified multiple times
(--query "SELECT 1" --query "SELECT
2"...)
--queries-file arg
file path with queries to execute;
multiple files can be specified
(--queries-file file1 file2...)
-n [ --multiquery ]
If specified, multiple queries
separated by semicolons can be listed
after --query. For convenience, it is
also possible to omit --query and pass
the queries directly after
--multiquery.
-m [ --multiline ]
If specified, allow multiline queries
(do not send the query on Enter)
-d [ --database ] arg
database
--query_kind arg (=initial_query)
One of initial_query/secondary_query/no
_query
--query_id arg query_id
--history_file arg
path to history file
--stage arg (=complete)
Request query processing up to
specified stage: complete,fetch_columns
,with_mergeable_state,with_mergeable_st
ate_after_aggregation,with_mergeable_st
ate_after_aggregation_and_limit
--progress [=arg(=tty)] (=default)
Print progress of queries execution -
to TTY: tty|on|1|true|yes; to STDERR
non-interactive mode: err; OFF:
off|0|false|no; DEFAULT - interactive
to TTY, non-interactive is off
-A [ --disable_suggestion ]
Disable loading suggestion data. Note
that suggestion data is loaded
asynchronously through a second
connection to ClickHouse server. Also
it is reasonable to disable suggestion
if you want to paste a query with TAB
characters. Shorthand option -A is for
those who get used to mysql client.
-t [ --time ] print query execution time to stderr in
non-interactive mode (for benchmarks)
--echo in batch mode, print query before
execution
--verbose print query and other debugging info
--log-level arg log level
--server_logs_file arg
put server logs into specified file
--suggestion_limit arg (=10000)
Suggestion limit for how many
databases, tables and columns to fetch.
-f [ --format ] arg
default output format (and input format
for clickhouse-local)
--output-format arg
default output format (this option has
preference over --format)
-E [ --vertical ]
vertical output format, same as
--format=Vertical or FORMAT Vertical or
\G at end of command
--highlight arg (=1)
enable or disable basic syntax
highlight in interactive command line
--ignore-error do not stop processing in multiquery
mode
--stacktrace print stack traces of exceptions
--hardware-utilization
print hardware utilization information
in progress bar
--print-profile-events
Printing ProfileEvents packets
--profile-events-delay-ms arg (=0)
Delay between printing `ProfileEvents`
packets (-1 - print only totals, 0 -
print every single packet)
--processed-rows print the number of locally processed
rows
--interactive Process queries-file or --query query
and start interactive mode
--pager arg Pipe all output into this command (less
or similar)
--max_memory_usage_in_client arg
Set memory limit in client/local server
--fuzzer-args arg Command line arguments for the LLVM's
libFuzzer driver. Only relevant if the
application is compiled with libFuzzer.
-N [ --table ] arg
name of the initial table
-S [ --structure ] arg
structure of the initial table (list of
column and type names)
-F [ --file ] arg path to file with data of the initial
table (stdin if not specified)
--input-format arg
input format of the initial table data
--logger.console [=arg(=1)]
Log to console
--logger.log arg Log file name
--logger.level arg
Log level
--no-system-tables
do not attach system tables (better
startup time)
--path arg Storage path
--only-system-tables
attach only system tables from
specified path
--top_level_domains_path arg
Path to lists with custom TLDs
--dialect arg Which dialect will be used to parse
query
--min_compress_block_size arg
The actual size of the block to
compress, if the uncompressed data less
than max_compress_block_size is no less
than this value and no less than the
volume of data for one mark.
--max_compress_block_size arg
The maximum size of blocks of
uncompressed data before compressing
for writing to a table.
--max_block_size arg
Maximum block size for reading
--max_insert_block_size arg
The maximum block size for insertion,
if we control the creation of blocks
for insertion.
--min_insert_block_size_rows arg
Squash blocks passed to INSERT query to
specified size in rows, if blocks are
not big enough.
--min_insert_block_size_bytes arg
Squash blocks passed to INSERT query to
specified size in bytes, if blocks are
not big enough.
--min_insert_block_size_rows_for_materialized_views arg
Like min_insert_block_size_rows, but
applied only during pushing to
MATERIALIZED VIEW (default:
min_insert_block_size_rows)
--min_insert_block_size_bytes_for_materialized_views arg
Like min_insert_block_size_bytes, but
applied only during pushing to
MATERIALIZED VIEW (default:
min_insert_block_size_bytes)
--min_external_table_block_size_rows arg
Squash blocks passed to external table
to specified size in rows, if blocks
are not big enough.
--min_external_table_block_size_bytes arg
Squash blocks passed to external table
to specified size in bytes, if blocks
are not big enough.
--max_joined_block_size_rows arg
Maximum block size for JOIN result (if
join algorithm supports it). 0 means
unlimited.
--max_insert_threads arg
The maximum number of threads to
execute the INSERT SELECT query. Values
0 or 1 means that INSERT SELECT is not
run in parallel. Higher values will
lead to higher memory usage. Parallel
INSERT SELECT has effect only if the
SELECT part is run on parallel, see
'max_threads' setting.
--max_insert_delayed_streams_for_parallel_write arg
The maximum number of streams (columns)
to delay final part flush. Default -
auto (1000 in case of underlying
storage supports parallel write, for
example S3 and disabled otherwise)
--max_final_threads arg
The maximum number of threads to read
from table with FINAL.
--max_threads_for_indexes arg
The maximum number of threads process
indices.
--max_threads arg The maximum number of threads to
execute the request. By default, it is
determined automatically.
--use_concurrency_control arg
Respect the server's concurrency
control (see the `concurrent_threads_so
ft_limit_num` and `concurrent_threads_s
oft_limit_ratio_to_cores` global server
settings). If disabled, it allows using
a larger number of threads even if the
server is overloaded (not recommended
for normal usage, and needed mostly for
tests).
--max_download_threads arg
The maximum number of threads to
download data (e.g. for URL engine).
--max_download_buffer_size arg
The maximal size of buffer for parallel
downloading (e.g. for URL engine) per
each thread.
--max_read_buffer_size arg
The maximum size of the buffer to read
from the filesystem.
--max_read_buffer_size_local_fs arg
The maximum size of the buffer to read
from local filesystem. If set to 0 then
max_read_buffer_size will be used.
--max_read_buffer_size_remote_fs arg
The maximum size of the buffer to read
from remote filesystem. If set to 0
then max_read_buffer_size will be used.
--max_distributed_connections arg
The maximum number of connections for
distributed processing of one query
(should be greater than max_threads).
--max_query_size arg
The maximum number of bytes of a query
string parsed by the SQL parser. Data
in the VALUES clause of INSERT queries
is processed by a separate stream
parser (that consumes O(1) RAM) and not
affected by this restriction.
--interactive_delay arg
The interval in microseconds to check
if the request is cancelled, and to
send progress info.
--connect_timeout arg
Connection timeout if there are no
replicas.
--handshake_timeout_ms arg
Timeout for receiving HELLO packet from
replicas.
--connect_timeout_with_failover_ms arg
Connection timeout for selecting first
healthy replica.
--connect_timeout_with_failover_secure_ms arg
Connection timeout for selecting first
healthy replica (for secure
connections).
--receive_timeout arg
Timeout for receiving data from
network, in seconds. If no bytes were
received in this interval, exception is
thrown. If you set this setting on
client, the 'send_timeout' for the
socket will be also set on the
corresponding connection end on the
server.
--send_timeout arg
Timeout for sending data to network, in
seconds. If client needs to sent some
data, but it did not able to send any
bytes in this interval, exception is
thrown. If you set this setting on
client, the 'receive_timeout' for the
socket will be also set on the
corresponding connection end on the
server.
--tcp_keep_alive_timeout arg
The time in seconds the connection
needs to remain idle before TCP starts
sending keepalive probes
--hedged_connection_timeout_ms arg
Connection timeout for establishing
connection with replica for Hedged
requests
--receive_data_timeout_ms arg
Connection timeout for receiving first
packet of data or packet with positive
progress from replica
--use_hedged_requests arg
Use hedged requests for distributed
queries
--allow_changing_replica_until_first_data_packet arg
Allow HedgedConnections to change
replica until receiving first data
packet
--queue_max_wait_ms arg
The wait time in the request queue, if
the number of concurrent requests
exceeds the maximum.
--connection_pool_max_wait_ms arg
The wait time when the connection pool
is full.
--replace_running_query_max_wait_ms arg
The wait time for running query with
the same query_id to finish when
setting 'replace_running_query' is
active.
--kafka_max_wait_ms arg
The wait time for reading from Kafka
before retry.
--rabbitmq_max_wait_ms arg
The wait time for reading from RabbitMQ
before retry.
--poll_interval arg
Block at the query wait loop on the
server for the specified number of
seconds.
--idle_connection_timeout arg
Close idle TCP connections after
specified number of seconds.
--distributed_connections_pool_size arg
Maximum number of connections with one
remote server in the pool.
--connections_with_failover_max_tries arg
The maximum number of attempts to
connect to replicas.
--s3_strict_upload_part_size arg
The exact size of part to upload during
multipart upload to S3 (some
implementations does not supports
variable size parts).
--azure_strict_upload_part_size arg
The exact size of part to upload during
multipart upload to Azure blob storage.
--s3_min_upload_part_size arg
The minimum size of part to upload
during multipart upload to S3.
--s3_max_upload_part_size arg
The maximum size of part to upload
during multipart upload to S3.
--azure_min_upload_part_size arg
The minimum size of part to upload
during multipart upload to Azure blob
storage.
--azure_max_upload_part_size arg
The maximum size of part to upload
during multipart upload to Azure blob
storage.
--s3_upload_part_size_multiply_factor arg
Multiply s3_min_upload_part_size by
this factor each time
s3_multiply_parts_count_threshold parts
were uploaded from a single write to
S3.
--s3_upload_part_size_multiply_parts_count_threshold arg
Each time this number of parts was
uploaded to S3, s3_min_upload_part_size
is multiplied by s3_upload_part_size_mu
ltiply_factor.
--azure_upload_part_size_multiply_factor arg
Multiply azure_min_upload_part_size by
this factor each time
azure_multiply_parts_count_threshold
parts were uploaded from a single write
to Azure blob storage.
--azure_upload_part_size_multiply_parts_count_threshold arg
Each time this number of parts was
uploaded to Azure blob storage,
azure_min_upload_part_size is
multiplied by azure_upload_part_size_mu
ltiply_factor.
--s3_max_inflight_parts_for_one_file arg
The maximum number of a concurrent
loaded parts in multipart upload
request. 0 means unlimited.
--azure_max_inflight_parts_for_one_file arg
The maximum number of a concurrent
loaded parts in multipart upload
request. 0 means unlimited.
--s3_max_single_part_upload_size arg
The maximum size of object to upload
using singlepart upload to S3.
--azure_max_single_part_upload_size arg
The maximum size of object to upload
using singlepart upload to Azure blob
storage.
--azure_max_single_part_copy_size arg
The maximum size of object to copy
using single part copy to Azure blob
storage.
--s3_max_single_read_retries arg
The maximum number of retries during
single S3 read.
--azure_max_single_read_retries arg
The maximum number of retries during
single Azure blob storage read.
--azure_max_unexpected_write_error_retries arg
The maximum number of retries in case
of unexpected errors during Azure blob
storage write
--s3_max_unexpected_write_error_retries arg
The maximum number of retries in case
of unexpected errors during S3 write.
--s3_max_redirects arg
Max number of S3 redirects hops
allowed.
--s3_max_connections arg
The maximum number of connections per
server.
--s3_max_get_rps arg
Limit on S3 GET request per second rate
before throttling. Zero means
unlimited.
--s3_max_get_burst arg
Max number of requests that can be
issued simultaneously before hitting
request per second limit. By default
(0) equals to `s3_max_get_rps`
--s3_max_put_rps arg
Limit on S3 PUT request per second rate
before throttling. Zero means
unlimited.
--s3_max_put_burst arg
Max number of requests that can be
issued simultaneously before hitting
request per second limit. By default
(0) equals to `s3_max_put_rps`
--s3_list_object_keys_size arg
Maximum number of files that could be
returned in batch by ListObject request
--s3_use_adaptive_timeouts arg
When adaptive timeouts are enabled
first two attempts are made with low
receive and send timeout
--azure_list_object_keys_size arg
Maximum number of files that could be
returned in batch by ListObject request
--s3_truncate_on_insert arg
Enables or disables truncate before
insert in s3 engine tables.
--azure_truncate_on_insert arg
Enables or disables truncate before
insert in azure engine tables.
--s3_create_new_file_on_insert arg
Enables or disables creating a new file
on each insert in s3 engine tables
--s3_skip_empty_files arg
Allow to skip empty files in s3 table
engine
--azure_create_new_file_on_insert arg
Enables or disables creating a new file
on each insert in azure engine tables
--s3_check_objects_after_upload arg
Check each uploaded object to s3 with
head request to be sure that upload was
successful
--s3_allow_parallel_part_upload arg
Use multiple threads for s3 multipart
upload. It may lead to slightly higher
memory usage
--s3_throw_on_zero_files_match arg
Throw an error, when ListObjects
request cannot match any files
--s3_disable_checksum arg
Do not calculate a checksum when
sending a file to S3. This speeds up
writes by avoiding excessive processing
passes on a file. It is mostly safe as
the data of MergeTree tables is
checksummed by ClickHouse anyway, and
when S3 is accessed with HTTPS, the TLS
layer already provides integrity while
transferring through the network. While
additional checksums on S3 give defense
in depth.
--s3_retry_attempts arg
Setting for Aws::Client::RetryStrategy,
Aws::Client does retries itself, 0
means no retries
--s3_request_timeout_ms arg
Idleness timeout for sending and
receiving data to/from S3. Fail if a
single TCP read or write call blocks
for this long.
--s3_connect_timeout_ms arg
Connection timeout for host from s3
disks.
--enable_s3_requests_logging arg
Enable very explicit logging of S3
requests. Makes sense for debug only.
--s3queue_default_zookeeper_path arg
Default zookeeper path prefix for
S3Queue engine
--s3queue_enable_logging_to_s3queue_log arg
Enable writing to system.s3queue_log.
The value can be overwritten per table
with table settings
--s3queue_allow_experimental_sharded_mode arg
Enable experimental sharded mode of
S3Queue table engine. It is
experimental because it will be
rewritten
--hdfs_replication arg
The actual number of replications can
be specified when the hdfs file is
created.
--hdfs_truncate_on_insert arg
Enables or disables truncate before
insert in s3 engine tables
--hdfs_create_new_file_on_insert arg
Enables or disables creating a new file
on each insert in hdfs engine tables
--hdfs_skip_empty_files arg
Allow to skip empty files in hdfs table
engine
--hsts_max_age arg
Expired time for hsts. 0 means disable
HSTS.
--extremes arg Calculate minimums and maximums of the
result columns. They can be output in
JSON-formats.
--use_uncompressed_cache arg
Whether to use the cache of
uncompressed blocks.
--replace_running_query arg
Whether the running request should be
canceled with the same id as the new
one.
--max_remote_read_network_bandwidth arg
The maximum speed of data exchange over
the network in bytes per second for
read.
--max_remote_write_network_bandwidth arg
The maximum speed of data exchange over
the network in bytes per second for
write.
--max_local_read_bandwidth arg
The maximum speed of local reads in
bytes per second.
--max_local_write_bandwidth arg
The maximum speed of local writes in
bytes per second.
--stream_like_engine_allow_direct_select arg
Allow direct SELECT query for Kafka,
RabbitMQ, FileLog, Redis Streams, and
NATS engines. In case there are
attached materialized views, SELECT
query is not allowed even if this
setting is enabled.
--stream_like_engine_insert_queue arg
When stream like engine reads from
multiple queues, user will need to
select one queue to insert into when
writing. Used by Redis Streams and
NATS.
--distributed_insert_skip_read_only_replicas arg
If true, INSERT into Distributed will
skip read-only replicas.
--distributed_foreground_insert arg
If setting is enabled, insert query
into distributed waits until data are
sent to all nodes in a cluster.
Enables or disables synchronous data
insertion into a `Distributed` table.
By default, when inserting data into a
Distributed table, the ClickHouse
server sends data to cluster nodes in
the background. When
`distributed_foreground_insert` = 1,
the data is processed synchronously,
and the `INSERT` operation succeeds
only after all the data is saved on all
shards (at least one replica for each
shard if `internal_replication` is
true).
--insert_distributed_sync arg
If setting is enabled, insert query
into distributed waits until data are
sent to all nodes in a cluster.
Enables or disables synchronous data
insertion into a `Distributed` table.
By default, when inserting data into a
Distributed table, the ClickHouse
server sends data to cluster nodes in
the background. When
`distributed_foreground_insert` = 1,
the data is processed synchronously,
and the `INSERT` operation succeeds
only after all the data is saved on all
shards (at least one replica for each
shard if `internal_replication` is
true).
--distributed_background_insert_timeout arg
Timeout for insert query into
distributed. Setting is used only with
insert_distributed_sync enabled. Zero
value means no timeout.
--insert_distributed_timeout arg
Timeout for insert query into
distributed. Setting is used only with
insert_distributed_sync enabled. Zero
value means no timeout.
--distributed_background_insert_sleep_time_ms arg
Sleep time for background INSERTs into
Distributed, in case of any errors
delay grows exponentially.
--distributed_directory_monitor_sleep_time_ms arg
Sleep time for background INSERTs into
Distributed, in case of any errors
delay grows exponentially.
--distributed_background_insert_max_sleep_time_ms arg
Maximum sleep time for background
INSERTs into Distributed, it limits
exponential growth too.
--distributed_directory_monitor_max_sleep_time_ms arg
Maximum sleep time for background
INSERTs into Distributed, it limits
exponential growth too.
--distributed_background_insert_batch arg
Should background INSERTs into
Distributed be batched into bigger
blocks.
--distributed_directory_monitor_batch_inserts arg
Should background INSERTs into
Distributed be batched into bigger
blocks.
--distributed_background_insert_split_batch_on_failure arg
Should batches of the background INSERT
into Distributed be split into smaller
batches in case of failures.
--distributed_directory_monitor_split_batch_on_failure arg
Should batches of the background INSERT
into Distributed be split into smaller
batches in case of failures.
--optimize_move_to_prewhere arg
Allows disabling WHERE to PREWHERE
optimization in SELECT queries from
MergeTree.
--optimize_move_to_prewhere_if_final arg
If query has `FINAL`, the optimization
`move_to_prewhere` is not always
correct and it is enabled only if both
settings `optimize_move_to_prewhere`
and `optimize_move_to_prewhere_if_final
` are turned on
--move_all_conditions_to_prewhere arg
Move all viable conditions from WHERE
to PREWHERE
--enable_multiple_prewhere_read_steps arg
Move more conditions from WHERE to
PREWHERE and do reads from disk and
filtering in multiple steps if there
are multiple conditions combined with
AND
--move_primary_key_columns_to_end_of_prewhere arg
Move PREWHERE conditions containing
primary key columns to the end of AND
chain. It is likely that these
conditions are taken into account
during primary key analysis and thus
will not contribute a lot to PREWHERE
filtering.
--allow_statistic_optimize arg
Allows using statistic to optimize
queries
--allow_experimental_statistic arg
Allows using statistic
--alter_sync arg Wait for actions to manipulate the
partitions. 0 - do not wait, 1 - wait
for execution only of itself, 2 - wait
for everyone.
--replication_alter_partitions_sync arg
Wait for actions to manipulate the
partitions. 0 - do not wait, 1 - wait
for execution only of itself, 2 - wait
for everyone.
--replication_wait_for_inactive_replica_timeout arg
Wait for inactive replica to execute
ALTER/OPTIMIZE. Time in seconds, 0 - do
not wait, negative - wait for unlimited
time.
--alter_move_to_space_execute_async arg
Execute ALTER TABLE MOVE ... TO
[DISK|VOLUME] asynchronously
--load_balancing arg
Which replicas (among healthy replicas)
to preferably send a query to (on the
first attempt) for distributed
processing.
--load_balancing_first_offset arg
Which replica to preferably send a
query when FIRST_OR_RANDOM load
balancing strategy is used.
--totals_mode arg How to calculate TOTALS when HAVING is
present, as well as when
max_rows_to_group_by and
group_by_overflow_mode = ‘any’ are
present.
--totals_auto_threshold arg
The threshold for totals_mode = 'auto'.
--allow_suspicious_low_cardinality_types arg
In CREATE TABLE statement allows
specifying LowCardinality modifier for
types of small fixed size (8 or less).
Enabling this may increase merge times
and memory consumption.
--allow_suspicious_fixed_string_types arg
In CREATE TABLE statement allows
creating columns of type FixedString(n)
with n > 256. FixedString with length
>= 256 is suspicious and most likely
indicates misuse
--allow_suspicious_indices arg
Reject primary/secondary indexes and
sorting keys with identical expressions
--allow_suspicious_ttl_expressions arg
Reject TTL expressions that don't
depend on any of table's columns. It
indicates a user error most of the
time.
--allow_suspicious_variant_types arg
In CREATE TABLE statement allows
specifying Variant type with similar
variant types (for example, with
different numeric or date types).
Enabling this setting may introduce
some ambiguity when working with values
with similar types.
--allow_suspicious_primary_key arg
Forbid suspicious PRIMARY KEY/ORDER BY
for MergeTree (i.e. SimpleAggregateFunc
tion)
--compile_expressions arg
Compile some scalar functions and
operators to native code.
--min_count_to_compile_expression arg
The number of identical expressions
before they are JIT-compiled
--compile_aggregate_expressions arg
Compile aggregate functions to native
code.
--min_count_to_compile_aggregate_expression arg
The number of identical aggregate
expressions before they are
JIT-compiled
--compile_sort_description arg
Compile sort description to native
code.
--min_count_to_compile_sort_description arg
The number of identical sort
descriptions before they are
JIT-compiled
--group_by_two_level_threshold arg
From what number of keys, a two-level
aggregation starts. 0 - the threshold
is not set.
--group_by_two_level_threshold_bytes arg
From what size of the aggregation state
in bytes, a two-level aggregation
begins to be used. 0 - the threshold is
not set. Two-level aggregation is used
when at least one of the thresholds is
triggered.
--distributed_aggregation_memory_efficient arg
Is the memory-saving mode of
distributed aggregation enabled.
--aggregation_memory_efficient_merge_threads arg
Number of threads to use for merge
intermediate aggregation results in
memory efficient mode. When bigger,
then more memory is consumed. 0 means -
same as 'max_threads'.
--enable_memory_bound_merging_of_aggregation_results arg
Enable memory bound merging strategy
for aggregation.
--enable_positional_arguments arg
Enable positional arguments in ORDER
BY, GROUP BY and LIMIT BY
--enable_extended_results_for_datetime_functions arg
Enable date functions like
toLastDayOfMonth return Date32 results
(instead of Date results) for
Date32/DateTime64 arguments.
--allow_nonconst_timezone_arguments arg
Allow non-const timezone arguments in
certain time-related functions like
toTimeZone(), fromUnixTimestamp*(),
snowflakeToDateTime*()
--function_locate_has_mysql_compatible_argument_order arg
Function locate() has arguments
(needle, haystack[, start_pos]) like in
MySQL instead of (haystack, needle[,
start_pos]) like function position()
--group_by_use_nulls arg
Treat columns mentioned in ROLLUP, CUBE
or GROUPING SETS as Nullable
--max_parallel_replicas arg
The maximum number of replicas of each
shard used when the query is executed.
For consistency (to get different parts
of the same partition), this option
only works for the specified sampling
key. The lag of the replicas is not
controlled.
--parallel_replicas_count arg
This is internal setting that should
not be used directly and represents an
implementation detail of the 'parallel
replicas' mode. This setting will be
automatically set up by the initiator
server for distributed queries to the
number of parallel replicas
participating in query processing.
--parallel_replica_offset arg
This is internal setting that should
not be used directly and represents an
implementation detail of the 'parallel
replicas' mode. This setting will be
automatically set up by the initiator
server for distributed queries to the
index of the replica participating in
query processing among parallel
replicas.
--parallel_replicas_custom_key arg
Custom key assigning work to replicas
when parallel replicas are used.
--parallel_replicas_custom_key_filter_type arg
Type of filter to use with custom key
for parallel replicas. default - use
modulo operation on the custom key,
range - use range filter on custom key
using all possible values for the value
type of custom key.
--cluster_for_parallel_replicas arg
Cluster for a shard in which current
server is located
--allow_experimental_parallel_reading_from_replicas arg
Use all the replicas from a shard for
SELECT query execution. Reading is
parallelized and coordinated
dynamically. 0 - disabled, 1 - enabled,
silently disable them in case of
failure, 2 - enabled, throw an
exception in case of failure
--parallel_replicas_allow_in_with_subquery arg
If true, subquery for IN will be
executed on every follower replica.
--parallel_replicas_single_task_marks_count_multiplier arg
A multiplier which will be added during
calculation for minimal number of marks
to retrieve from coordinator. This will
be applied only for remote replicas.
--parallel_replicas_for_non_replicated_merge_tree arg
If true, ClickHouse will use parallel
replicas algorithm also for
non-replicated MergeTree tables
--parallel_replicas_min_number_of_rows_per_replica arg
Limit the number of replicas used in a
query to (estimated rows to read /
min_number_of_rows_per_replica). The
max is still limited by
'max_parallel_replicas'
--parallel_replicas_prefer_local_join arg
If true, and JOIN can be executed with
parallel replicas algorithm, and all
storages of right JOIN part are
*MergeTree, local JOIN will be used
instead of GLOBAL JOIN.
--parallel_replicas_mark_segment_size arg
Parts virtually divided into segments
to be distributed between replicas for
parallel reading. This setting controls
the size of these segments. Not
recommended to change until you're
absolutely sure in what you're doing
--skip_unavailable_shards arg
If true, ClickHouse silently skips
unavailable shards. Shard is marked as
unavailable when: 1) The shard cannot
be reached due to a connection failure.
2) Shard is unresolvable through DNS.
3) Table does not exist on the shard.
--parallel_distributed_insert_select arg
Process distributed INSERT SELECT query
in the same cluster on local tables on
every shard; if set to 1 - SELECT is
executed on each shard; if set to 2 -
SELECT and INSERT are executed on each
shard
--distributed_group_by_no_merge arg
If 1, Do not merge aggregation states
from different servers for distributed
queries (shards will process query up
to the Complete stage, initiator just
proxies the data from the shards). If 2
the initiator will apply ORDER BY and
LIMIT stages (it is not in case when
shard process query up to the Complete
stage)
--distributed_push_down_limit arg
If 1, LIMIT will be applied on each
shard separately. Usually you don't
need to use it, since this will be done
automatically if it is possible, i.e.
for simple query SELECT FROM LIMIT.
--optimize_distributed_group_by_sharding_key arg
Optimize GROUP BY sharding_key queries
(by avoiding costly aggregation on the
initiator server).
--optimize_skip_unused_shards_limit arg
Limit for number of sharding key
values, turns off optimize_skip_unused_
shards if the limit is reached
--optimize_skip_unused_shards arg
Assumes that data is distributed by
sharding_key. Optimization to skip
unused shards if SELECT query filters
by sharding_key.
--optimize_skip_unused_shards_rewrite_in arg
Rewrite IN in query for remote shards
to exclude values that does not belong
to the shard (requires
optimize_skip_unused_shards)
--allow_nondeterministic_optimize_skip_unused_shards arg
Allow non-deterministic functions
(includes dictGet) in sharding_key for
optimize_skip_unused_shards
--force_optimize_skip_unused_shards arg
Throw an exception if unused shards
cannot be skipped (1 - throw only if
the table has the sharding key, 2 -
always throw.
--optimize_skip_unused_shards_nesting arg
Same as optimize_skip_unused_shards,
but accept nesting level until which it
will work.
--force_optimize_skip_unused_shards_nesting arg
Same as force_optimize_skip_unused_shar
ds, but accept nesting level until
which it will work.
--input_format_parallel_parsing arg
Enable parallel parsing for some data
formats.
--min_chunk_bytes_for_parallel_parsing arg
The minimum chunk size in bytes, which
each thread will parse in parallel.
--output_format_parallel_formatting arg
Enable parallel formatting for some
data formats.
--output_format_compression_level arg
Default compression level if query
output is compressed. The setting is
applied when `SELECT` query has `INTO
OUTFILE` or when inserting to table
function `file`, `url`, `hdfs`, `s3`,
and `azureBlobStorage`.
--output_format_compression_zstd_window_log arg
Can be used when the output compression
method is `zstd`. If greater than `0`,
this setting explicitly sets
compression window size (power of `2`)
and enables a long-range mode for zstd
compression.
--merge_tree_min_rows_for_concurrent_read arg
If at least as many lines are read from
one file, the reading can be
parallelized.
--merge_tree_min_bytes_for_concurrent_read arg
If at least as many bytes are read from
one file, the reading can be
parallelized.
--merge_tree_min_rows_for_seek arg
You can skip reading more than that
number of rows at the price of one seek
per file.
--merge_tree_min_bytes_for_seek arg
You can skip reading more than that
number of bytes at the price of one
seek per file.
--merge_tree_coarse_index_granularity arg
If the index segment can contain the
required keys, divide it into as many
parts and recursively check them.
--merge_tree_max_rows_to_use_cache arg
The maximum number of rows per request,
to use the cache of uncompressed data.
If the request is large, the cache is
not used. (For large queries not to
flush out the cache.)
--merge_tree_max_bytes_to_use_cache arg
The maximum number of bytes per
request, to use the cache of
uncompressed data. If the request is
large, the cache is not used. (For
large queries not to flush out the
cache.)
--do_not_merge_across_partitions_select_final arg
Merge parts only in one partition in
select final
--split_parts_ranges_into_intersecting_and_non_intersecting_final arg
Split parts ranges into intersecting
and non intersecting during FINAL
optimization
--split_intersecting_parts_ranges_into_layers_final arg
Split intersecting parts ranges into
layers during FINAL optimization
--allow_experimental_inverted_index arg
If it is set to true, allow to use
experimental inverted index.
--mysql_max_rows_to_insert arg
The maximum number of rows in MySQL
batch insertion of the MySQL storage
engine
--mysql_map_string_to_text_in_show_columns arg
If enabled, String type will be mapped
to TEXT in SHOW [FULL] COLUMNS, BLOB
otherwise. Has an effect only when the
connection is made through the MySQL
wire protocol.
--mysql_map_fixed_string_to_text_in_show_columns arg
If enabled, FixedString type will be
mapped to TEXT in SHOW [FULL] COLUMNS,
BLOB otherwise. Has an effect only when
the connection is made through the
MySQL wire protocol.
--optimize_min_equality_disjunction_chain_length arg
The minimum length of the expression
`expr = x1 OR ... expr = xN` for
optimization
--optimize_min_inequality_conjunction_chain_length arg
The minimum length of the expression
`expr <> x1 AND ... expr <> xN` for
optimization
--min_bytes_to_use_direct_io arg
The minimum number of bytes for reading
the data with O_DIRECT option during
SELECT queries execution. 0 - disabled.
--min_bytes_to_use_mmap_io arg
The minimum number of bytes for reading
the data with mmap option during SELECT
queries execution. 0 - disabled.
--checksum_on_read arg
Validate checksums on reading. It is
enabled by default and should be always
enabled in production. Please do not
expect any benefits in disabling this
setting. It may only be used for
experiments and benchmarks. The setting
only applicable for tables of MergeTree
family. Checksums are always validated
for other table engines and when
receiving data over network.
--force_index_by_date arg
Throw an exception if there is a
partition key in a table, and it is not
used.
--force_primary_key arg
Throw an exception if there is primary
key in a table, and it is not used.
--use_skip_indexes arg
Use data skipping indexes during query
execution.
--use_skip_indexes_if_final arg
If query has FINAL, then skipping data
based on indexes may produce incorrect
result, hence disabled by default.
--ignore_data_skipping_indices arg
Comma separated list of strings or
literals with the name of the data
skipping indices that should be
excluded during query execution.
--force_data_skipping_indices arg
Comma separated list of strings or
literals with the name of the data
skipping indices that should be used
during query execution, otherwise an
exception will be thrown.
--max_streams_to_max_threads_ratio arg
Allows you to use more sources than the
number of threads - to more evenly
distribute work across threads. It is
assumed that this is a temporary
solution, since it will be possible in
the future to make the number of
sources equal to the number of threads,
but for each source to dynamically
select available work for itself.
--max_streams_multiplier_for_merge_tables arg
Ask more streams when reading from
Merge table. Streams will be spread
across tables that Merge table will
use. This allows more even distribution
of work across threads and especially
helpful when merged tables differ in
size.
--network_compression_method arg
Allows you to select the method of data
compression when writing.
--network_zstd_compression_level arg
Allows you to select the level of ZSTD
compression.
--zstd_window_log_max arg
Allows you to select the max window log
of ZSTD (it will not be used for
MergeTree family)
--priority arg Priority of the query. 1 - the highest,
higher value - lower priority; 0 - do
not use priorities.
--os_thread_priority arg
If non zero - set corresponding 'nice'
value for query processing threads. Can
be used to adjust query priority for OS
scheduler.
--log_queries arg Log requests and write the log to the
system table.
--log_formatted_queries arg
Log formatted queries and write the log
to the system table.
--log_queries_min_type arg
Minimal type in query_log to log,
possible values (from low to high):
QUERY_START, QUERY_FINISH,
EXCEPTION_BEFORE_START,
EXCEPTION_WHILE_PROCESSING.
--log_queries_min_query_duration_ms arg
Minimal time for the query to run, to
get to the query_log/query_thread_log/q
uery_views_log.
--log_queries_cut_to_length arg
If query length is greater than
specified threshold (in bytes), then
cut query when writing to query log.
Also limit length of printed query in
ordinary text log.
--log_queries_probability arg
Log queries with the specified
probability.
--log_processors_profiles arg
Log Processors profile events.
--distributed_product_mode arg
How are distributed subqueries
performed inside IN or JOIN sections?
--max_concurrent_queries_for_all_users arg
The maximum number of concurrent
requests for all users.
--max_concurrent_queries_for_user arg
The maximum number of concurrent
requests per user.
--insert_deduplicate arg
For INSERT queries in the replicated
table, specifies that deduplication of
inserting blocks should be performed
--async_insert_deduplicate arg
For async INSERT queries in the
replicated table, specifies that
deduplication of inserting blocks
should be performed
--insert_quorum arg
For INSERT queries in the replicated
table, wait writing for the specified
number of replicas and linearize the
addition of the data. 0 - disabled,
'auto' - use majority
--insert_quorum_timeout arg
If the quorum of replicas did not meet
in specified time (in milliseconds),
exception will be thrown and insertion
is aborted.
--insert_quorum_parallel arg
For quorum INSERT queries - enable to
make parallel inserts without
linearizability
--select_sequential_consistency arg
For SELECT queries from the replicated
table, throw an exception if the
replica does not have a chunk written
with the quorum; do not read the parts
that have not yet been written with the
quorum.
--table_function_remote_max_addresses arg
The maximum number of different shards
and the maximum number of replicas of
one shard in the `remote` function.
--read_backoff_min_latency_ms arg
Setting to reduce the number of threads
in case of slow reads. Pay attention
only to reads that took at least that
much time.
--read_backoff_max_throughput arg
Settings to reduce the number of
threads in case of slow reads. Count
events when the read bandwidth is less
than that many bytes per second.
--read_backoff_min_interval_between_events_ms arg
Settings to reduce the number of
threads in case of slow reads. Do not
pay attention to the event, if the
previous one has passed less than a
certain amount of time.
--read_backoff_min_events arg
Settings to reduce the number of
threads in case of slow reads. The
number of events after which the number
of threads will be reduced.
--read_backoff_min_concurrency arg
Settings to try keeping the minimal
number of threads in case of slow
reads.
--memory_tracker_fault_probability arg
For testing of `exception safety` -
throw an exception every time you
allocate memory with the specified
probability.
--merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability arg
For testing of `PartsSplitter` - split
read ranges into intersecting and non
intersecting every time you read from
MergeTree with the specified
probability.
--enable_http_compression arg
Compress the result if the client over
HTTP said that it understands data
compressed by gzip, deflate, zstd, br,
lz4, bz2, xz.
--http_zlib_compression_level arg
Compression level - used if the client
on HTTP said that it understands data
compressed by gzip or deflate.
--http_native_compression_disable_checksumming_on_decompress arg
If you uncompress the POST data from
the client compressed by the native
format, do not check the checksum.
--count_distinct_implementation arg
What aggregate function to use for
implementation of count(DISTINCT ...)
--add_http_cors_header arg
Write add http CORS header.
--max_http_get_redirects arg
Max number of http GET redirects hops
allowed. Ensures additional security
measures are in place to prevent a
malicious server to redirect your
requests to unexpected services.
It is the case when an external server
redirects to another address, but that
address appears to be internal to the
company's infrastructure, and by
sending an HTTP request to an internal
server, you could request an internal
API from the internal network,
bypassing the auth, or even query other
services, such as Redis or Memcached.
When you don't have an internal
infrastructure (including something
running on your localhost), or you
trust the server, it is safe to allow
redirects. Although keep in mind, that
if the URL uses HTTP instead of HTTPS,
and you will have to trust not only the
remote server but also your ISP and
every network in the middle.
--use_client_time_zone arg
Use client timezone for interpreting
DateTime string values, instead of
adopting server timezone.
--send_progress_in_http_headers arg
Send progress notifications using
X-ClickHouse-Progress headers. Some
clients do not support high amount of
HTTP headers (Python requests in
particular), so it is disabled by
default.
--http_headers_progress_interval_ms arg
Do not send HTTP headers
X-ClickHouse-Progress more frequently
than at each specified interval.
--http_wait_end_of_query arg
Enable HTTP response buffering on the
server-side.
--http_write_exception_in_output_format arg
Write exception in output format to
produce valid output. Works with JSON
and XML formats.
--http_response_buffer_size arg
The number of bytes to buffer in the
server memory before sending a HTTP
response to the client or flushing to
disk (when http_wait_end_of_query is
enabled).
--fsync_metadata arg
Do fsync after changing metadata for
tables and databases (.sql files).
Could be disabled in case of poor
latency on server with high load of DDL
queries and high load of disk
subsystem.
--join_use_nulls arg
Use NULLs for non-joined rows of outer
JOINs for types that can be inside
Nullable. If false, use default value
of corresponding columns data type.
--join_default_strictness arg
Set default strictness in JOIN query.
Possible values: empty string, 'ANY',
'ALL'. If empty, query without
strictness will throw exception.
--any_join_distinct_right_table_keys arg
Enable old ANY JOIN logic with
many-to-one left-to-right table keys
mapping for all ANY JOINs. It leads to
confusing not equal results for 't1 ANY
LEFT JOIN t2' and 't2 ANY RIGHT JOIN
t1'. ANY RIGHT JOIN needs one-to-many
keys mapping to be consistent with LEFT
one.
--single_join_prefer_left_table arg
For single JOIN in case of identifier
ambiguity prefer left table
--preferred_block_size_bytes arg
This setting adjusts the data block
size for query processing and
represents additional fine tune to the
more rough 'max_block_size' setting. If
the columns are large and with
'max_block_size' rows the block size is
likely to be larger than the specified
amount of bytes, its size will be
lowered for better CPU cache locality.
--max_replica_delay_for_distributed_queries arg
If set, distributed queries of
Replicated tables will choose servers
with replication delay in seconds less
than the specified value (not
inclusive). Zero means do not take
delay into account.
--fallback_to_stale_replicas_for_distributed_queries arg
Suppose max_replica_delay_for_distribut
ed_queries is set and all replicas for
the queried table are stale. If this
setting is enabled, the query will be
performed anyway, otherwise the error
will be reported.
--preferred_max_column_in_block_size_bytes arg
Limit on max column size in block while
reading. Helps to decrease cache misses
count. Should be close to L2 cache
size.
--parts_to_delay_insert arg
If the destination table contains at
least that many active parts in a
single partition, artificially slow
down insert into table.
--parts_to_throw_insert arg
If more than this number active parts
in a single partition of the
destination table, throw 'Too many
parts ...' exception.
--number_of_mutations_to_delay arg
If the mutated table contains at least
that many unfinished mutations,
artificially slow down mutations of
table. 0 - disabled
--number_of_mutations_to_throw arg
If the mutated table contains at least
that many unfinished mutations, throw
'Too many mutations ...' exception. 0 -
disabled
--distributed_ddl_task_timeout arg
Timeout for DDL query responses from
all hosts in cluster. If a ddl request
has not been performed on all hosts, a
response will contain a timeout error
and a request will be executed in an
async mode. Negative value means
infinite. Zero means async mode.
--stream_flush_interval_ms arg
Timeout for flushing data from
streaming storages.
--stream_poll_timeout_ms arg
Timeout for polling data from/to
streaming storages.
--final arg Query with the FINAL modifier by
default. If the engine does not support
final, it does not have any effect. On
queries with multiple tables final is
applied only on those that support it.
It also works on distributed tables
--partial_result_on_first_cancel arg
Allows query to return a partial result
after cancel.
--ignore_on_cluster_for_replicated_udf_queries arg
Ignore ON CLUSTER clause for replicated
UDF management queries.
--ignore_on_cluster_for_replicated_access_entities_queries arg
Ignore ON CLUSTER clause for replicated
access entities management queries.
--sleep_in_send_tables_status_ms arg
Time to sleep in sending tables status
response in TCPHandler
--sleep_in_send_data_ms arg
Time to sleep in sending data in
TCPHandler
--sleep_after_receiving_query_ms arg
Time to sleep after receiving query in
TCPHandler
--unknown_packet_in_send_data arg
Send unknown packet instead of data Nth
data packet
--insert_allow_materialized_columns arg
If setting is enabled, Allow
materialized columns in INSERT.
--http_connection_timeout arg
HTTP connection timeout.
--http_send_timeout arg
HTTP send timeout
--http_receive_timeout arg
HTTP receive timeout
--http_max_uri_size arg
Maximum URI length of HTTP request
--http_max_fields arg
Maximum number of fields in HTTP header
--http_max_field_name_size arg
Maximum length of field name in HTTP
header
--http_max_field_value_size arg
Maximum length of field value in HTTP
header
--http_max_chunk_size arg
Maximum value of a chunk size in HTTP
chunked transfer encoding
--http_skip_not_found_url_for_globs arg
Skip url's for globs with
HTTP_NOT_FOUND error
--http_make_head_request arg
Allows the execution of a `HEAD`
request while reading data from HTTP to
retrieve information about the file to
be read, such as its size
--optimize_throw_if_noop arg
If setting is enabled and OPTIMIZE
query didn't actually assign a merge
then an explanatory exception is thrown
--use_index_for_in_with_subqueries arg
Try using an index if there is a
subquery or a table expression on the
right side of the IN operator.
--use_index_for_in_with_subqueries_max_values arg
The maximum size of set in the right
hand side of the IN operator to use
table index for filtering. It allows to
avoid performance degradation and
higher memory usage due to preparation
of additional data structures for large
queries. Zero means no limit.
--analyze_index_with_space_filling_curves arg
If a table has a space-filling curve in
its index, e.g. `ORDER BY
mortonEncode(x, y)`, and the query has
conditions on its arguments, e.g. `x >=
10 AND x <= 20 AND y >= 20 AND y <=
30`, use the space-filling curve for
index analysis.
--joined_subquery_requires_alias arg
Force joined subqueries and table
functions to have aliases for correct
name qualification.
--empty_result_for_aggregation_by_empty_set arg
Return empty result when aggregating
without keys on empty set.
--empty_result_for_aggregation_by_constant_keys_on_empty_set arg
Return empty result when aggregating by
constant keys on empty set.
--allow_distributed_ddl arg
If it is set to true, then a user is
allowed to executed distributed DDL
queries.
--allow_suspicious_codecs arg
If it is set to true, allow to specify
meaningless compression codecs.
--allow_experimental_codecs arg
If it is set to true, allow to specify
experimental compression codecs (but we
don't have those yet and this option
does nothing).
--enable_deflate_qpl_codec arg
Enable/disable the DEFLATE_QPL codec.
--enable_zstd_qat_codec arg
Enable/disable the ZSTD_QAT codec.
--query_profiler_real_time_period_ns arg
Period for real clock timer of query
profiler (in nanoseconds). Set 0 value
to turn off the real clock query
profiler. Recommended value is at least
10000000 (100 times a second) for
single queries or 1000000000 (once a
second) for cluster-wide profiling.
--query_profiler_cpu_time_period_ns arg
Period for CPU clock timer of query
profiler (in nanoseconds). Set 0 value
to turn off the CPU clock query
profiler. Recommended value is at least
10000000 (100 times a second) for
single queries or 1000000000 (once a
second) for cluster-wide profiling.
--metrics_perf_events_enabled arg
If enabled, some of the perf events
will be measured throughout queries'
execution.
--metrics_perf_events_list arg
Comma separated list of perf metrics
that will be measured throughout
queries' execution. Empty means all
events. See PerfEventInfo in sources
for the available events.
--opentelemetry_start_trace_probability arg
Probability to start an OpenTelemetry
trace for an incoming query.
--opentelemetry_trace_processors arg
Collect OpenTelemetry spans for
processors.
--prefer_column_name_to_alias arg
Prefer using column names instead of
aliases if possible.
--allow_experimental_analyzer arg
Allow experimental analyzer.
--analyzer_compatibility_join_using_top_level_identifier arg
Force to resolve identifier in JOIN
USING from projection (for example, in
`SELECT a + 1 AS b FROM t1 JOIN t2
USING (b)` join will be performed by
`t1.a + 1 = t2.b`, rather then `t1.b =
t2.b`).
--prefer_global_in_and_join arg
If enabled, all IN/JOIN operators will
be rewritten as GLOBAL IN/JOIN. It's
useful when the to-be-joined tables are
only available on the initiator and we
need to always scatter their data
on-the-fly during distributed
processing with the GLOBAL keyword.
It's also useful to reduce the need to
access the external sources joining
external tables.
--enable_vertical_final arg
Not recommended. If enable, remove
duplicated rows during FINAL by marking
rows as deleted and filtering them
later instead of merging rows
--max_rows_to_read arg
Limit on read rows from the most 'deep'
sources. That is, only in the deepest
subquery. When reading from a remote
server, it is only checked on a remote
server.
--max_bytes_to_read arg
Limit on read bytes (after
decompression) from the most 'deep'
sources. That is, only in the deepest
subquery. When reading from a remote
server, it is only checked on a remote
server.
--read_overflow_mode arg
What to do when the limit is exceeded.
--max_rows_to_read_leaf arg
Limit on read rows on the leaf nodes
for distributed queries. Limit is
applied for local reads only, excluding
the final merge stage on the root node.
Note, the setting is unstable with
prefer_localhost_replica=1.
--max_bytes_to_read_leaf arg
Limit on read bytes (after
decompression) on the leaf nodes for
distributed queries. Limit is applied
for local reads only, excluding the
final merge stage on the root node.
Note, the setting is unstable with
prefer_localhost_replica=1.
--read_overflow_mode_leaf arg
What to do when the leaf limit is
exceeded.
--max_rows_to_group_by arg
If aggregation during GROUP BY is
generating more than the specified
number of rows (unique GROUP BY keys),
the behavior will be determined by the
'group_by_overflow_mode' which by
default is - throw an exception, but
can be also switched to an approximate
GROUP BY mode.
--group_by_overflow_mode arg
What to do when the limit is exceeded.
--max_bytes_before_external_group_by arg
If memory usage during GROUP BY
operation is exceeding this threshold
in bytes, activate the 'external
aggregation' mode (spill data to disk).
Recommended value is half of available
system memory.
--max_rows_to_sort arg
If more than the specified amount of
records have to be processed for ORDER
BY operation, the behavior will be
determined by the 'sort_overflow_mode'
which by default is - throw an
exception
--max_bytes_to_sort arg
If more than the specified amount of
(uncompressed) bytes have to be
processed for ORDER BY operation, the
behavior will be determined by the
'sort_overflow_mode' which by default
is - throw an exception
--sort_overflow_mode arg
What to do when the limit is exceeded.
--max_bytes_before_external_sort arg
If memory usage during ORDER BY
operation is exceeding this threshold
in bytes, activate the 'external
sorting' mode (spill data to disk).
Recommended value is half of available
system memory.
--max_bytes_before_remerge_sort arg
In case of ORDER BY with LIMIT, when
memory usage is higher than specified
threshold, perform additional steps of
merging blocks before final merge to
keep just top LIMIT rows.
--remerge_sort_lowered_memory_bytes_ratio arg
If memory usage after remerge does not
reduced by this ratio, remerge will be
disabled.
--max_result_rows arg
Limit on result size in rows. The query
will stop after processing a block of
data if the threshold is met, but it
will not cut the last block of the
result, therefore the result size can
be larger than the threshold.
--max_result_bytes arg
Limit on result size in bytes
(uncompressed). The query will stop
after processing a block of data if the
threshold is met, but it will not cut
the last block of the result, therefore
the result size can be larger than the
threshold. Caveats: the result size in
memory is taken into account for this
threshold. Even if the result size is
small, it can reference larger data
structures in memory, representing
dictionaries of LowCardinality columns,
and Arenas of AggregateFunction
columns, so the threshold can be
exceeded despite the small result size.
The setting is fairly low level and
should be used with caution.
--result_overflow_mode arg
What to do when the limit is exceeded.
--max_execution_time arg
If query runtime exceeds the specified
number of seconds, the behavior will be
determined by the 'timeout_overflow_mod
e', which by default is - throw an
exception. Note that the timeout is
checked and query can stop only in
designated places during data
processing. It currently cannot stop
during merging of aggregation states or
during query analysis, and the actual
run time will be higher than the value
of this setting.
--timeout_overflow_mode arg
What to do when the limit is exceeded.
--max_execution_time_leaf arg
Similar semantic to max_execution_time
but only apply on leaf node for
distributed queries, the time out
behavior will be determined by
'timeout_overflow_mode_leaf' which by
default is - throw an exception
--timeout_overflow_mode_leaf arg
What to do when the leaf limit is
exceeded.
--min_execution_speed arg
Minimum number of execution rows per
second.
--max_execution_speed arg
Maximum number of execution rows per
second.
--min_execution_speed_bytes arg
Minimum number of execution bytes per
second.
--max_execution_speed_bytes arg
Maximum number of execution bytes per
second.
--timeout_before_checking_execution_speed arg
Check that the speed is not too low
after the specified time has elapsed.
--max_estimated_execution_time arg
Maximum query estimate execution time
in seconds.
--max_columns_to_read arg
If a query requires reading more than
specified number of columns, exception
is thrown. Zero value means unlimited.
This setting is useful to prevent too
complex queries.
--max_temporary_columns arg
If a query generates more than the
specified number of temporary columns
in memory as a result of intermediate
calculation, exception is thrown. Zero
value means unlimited. This setting is
useful to prevent too complex queries.
--max_temporary_non_const_columns arg
Similar to the 'max_temporary_columns'
setting but applies only to
non-constant columns. This makes sense,
because constant columns are cheap and
it is reasonable to allow more of them.
--max_sessions_for_user arg
Maximum number of simultaneous sessions
for a user.
--max_subquery_depth arg
If a query has more than the specified
number of nested subqueries, throw an
exception. This allows you to have a
sanity check to protect the users of
your cluster from going insane with
their queries.
--max_analyze_depth arg
Maximum number of analyses performed by
interpreter.
--max_ast_depth arg
Maximum depth of query syntax tree.
Checked after parsing.
--max_ast_elements arg
Maximum size of query syntax tree in
number of nodes. Checked after parsing.
--max_expanded_ast_elements arg
Maximum size of query syntax tree in
number of nodes after expansion of
aliases and the asterisk.
--readonly arg 0 - no read-only restrictions. 1 - only
read requests, as well as changing
explicitly allowed settings. 2 - only
read requests, as well as changing
settings, except for the 'readonly'
setting.
--max_rows_in_set arg
Maximum size of the set (in number of
elements) resulting from the execution
of the IN section.
--max_bytes_in_set arg
Maximum size of the set (in bytes in
memory) resulting from the execution of
the IN section.
--set_overflow_mode arg
What to do when the limit is exceeded.
--max_rows_in_join arg
Maximum size of the hash table for JOIN
(in number of rows).
--max_bytes_in_join arg
Maximum size of the hash table for JOIN
(in number of bytes in memory).
--join_overflow_mode arg
What to do when the limit is exceeded.
--join_any_take_last_row arg
When disabled (default) ANY JOIN will
take the first found row for a key.
When enabled, it will take the last row
seen if there are multiple rows for the
same key.
--join_algorithm arg
Specify join algorithm.
--default_max_bytes_in_join arg
Maximum size of right-side table if
limit is required but max_bytes_in_join
is not set.
--partial_merge_join_left_table_buffer_bytes arg
If not 0 group left table blocks in
bigger ones for left-side table in
partial merge join. It uses up to 2x of
specified memory per joining thread.
--partial_merge_join_rows_in_right_blocks arg
Split right-hand joining data in blocks
of specified size. It's a portion of
data indexed by min-max values and
possibly unloaded on disk.
--join_on_disk_max_files_to_merge arg
For MergeJoin on disk set how much
files it's allowed to sort
simultaneously. Then this value bigger
then more memory used and then less
disk I/O needed. Minimum is 2.
--max_rows_in_set_to_optimize_join arg
Maximal size of the set to filter
joined tables by each other row sets
before joining. 0 - disable.
--compatibility_ignore_collation_in_create_table arg
Compatibility ignore collation in
create table
--temporary_files_codec arg
Set compression codec for temporary
files produced by (JOINs, external
GROUP BY, external ORDER BY). I.e. LZ4,
NONE.
--max_rows_to_transfer arg
Maximum size (in rows) of the
transmitted external table obtained
when the GLOBAL IN/JOIN section is
executed.
--max_bytes_to_transfer arg
Maximum size (in uncompressed bytes) of
the transmitted external table obtained
when the GLOBAL IN/JOIN section is
executed.
--transfer_overflow_mode arg
What to do when the limit is exceeded.
--max_rows_in_distinct arg
Maximum number of elements during
execution of DISTINCT.
--max_bytes_in_distinct arg
Maximum total size of state (in
uncompressed bytes) in memory for the
execution of DISTINCT.
--distinct_overflow_mode arg
What to do when the limit is exceeded.
--max_memory_usage arg
Maximum memory usage for processing of
single query. Zero means unlimited.
--memory_overcommit_ratio_denominator arg
It represents soft memory limit on the
user level. This value is used to
compute query overcommit ratio.
--max_memory_usage_for_user arg
Maximum memory usage for processing all
concurrently running queries for the
user. Zero means unlimited.
--memory_overcommit_ratio_denominator_for_user arg
It represents soft memory limit on the
global level. This value is used to
compute query overcommit ratio.
--max_untracked_memory arg
Small allocations and deallocations are
grouped in thread local variable and
tracked or profiled only when amount
(in absolute value) becomes larger than
specified value. If the value is higher
than 'memory_profiler_step' it will be
effectively lowered to
'memory_profiler_step'.
--memory_profiler_step arg
Whenever query memory usage becomes
larger than every next step in number
of bytes the memory profiler will
collect the allocating stack trace.
Zero means disabled memory profiler.
Values lower than a few megabytes will
slow down query processing.
--memory_profiler_sample_probability arg
Collect random allocations and
deallocations and write them into
system.trace_log with 'MemorySample'
trace_type. The probability is for
every alloc/free regardless to the size
of the allocation (can be changed with
`memory_profiler_sample_min_allocation_
size` and `memory_profiler_sample_max_a
llocation_size`). Note that sampling
happens only when the amount of
untracked memory exceeds
'max_untracked_memory'. You may want to
set 'max_untracked_memory' to 0 for
extra fine grained sampling.
--memory_profiler_sample_min_allocation_size arg
Collect random allocations of size
greater or equal than specified value
with probability equal to
`memory_profiler_sample_probability`. 0
means disabled. You may want to set
'max_untracked_memory' to 0 to make
this threshold to work as expected.
--memory_profiler_sample_max_allocation_size arg
Collect random allocations of size less
or equal than specified value with
probability equal to
`memory_profiler_sample_probability`. 0
means disabled. You may want to set
'max_untracked_memory' to 0 to make
this threshold to work as expected.
--trace_profile_events arg
Send to system.trace_log profile event
and value of increment on each
increment with 'ProfileEvent'
trace_type
--memory_usage_overcommit_max_wait_microseconds arg
Maximum time thread will wait for
memory to be freed in the case of
memory overcommit. If timeout is
reached and memory is not freed,
exception is thrown.
--max_network_bandwidth arg
The maximum speed of data exchange over
the network in bytes per second for a
query. Zero means unlimited.
--max_network_bytes arg
The maximum number of bytes
(compressed) to receive or transmit
over the network for execution of the
query.
--max_network_bandwidth_for_user arg
The maximum speed of data exchange over
the network in bytes per second for all
concurrently running user queries. Zero
means unlimited.
--max_network_bandwidth_for_all_users arg
The maximum speed of data exchange over
the network in bytes per second for all
concurrently running queries. Zero
means unlimited.
--max_temporary_data_on_disk_size_for_user arg
The maximum amount of data consumed by
temporary files on disk in bytes for
all concurrently running user queries.
Zero means unlimited.
--max_temporary_data_on_disk_size_for_query arg
The maximum amount of data consumed by
temporary files on disk in bytes for
all concurrently running queries. Zero
means unlimited.
--backup_restore_keeper_max_retries arg
Max retries for keeper operations
during backup or restore
--backup_restore_keeper_retry_initial_backoff_ms arg
Initial backoff timeout for [Zoo]Keeper
operations during backup or restore
--backup_restore_keeper_retry_max_backoff_ms arg
Max backoff timeout for [Zoo]Keeper
operations during backup or restore
--backup_restore_keeper_fault_injection_probability arg
Approximate probability of failure for
a keeper request during backup or
restore. Valid value is in interval
[0.0f, 1.0f]
--backup_restore_keeper_fault_injection_seed arg
0 - random seed, otherwise the setting
value
--backup_restore_keeper_value_max_size arg
Maximum size of data of a [Zoo]Keeper's
node during backup
--backup_restore_batch_size_for_keeper_multiread arg
Maximum size of batch for multiread
request to [Zoo]Keeper during backup or
restore
--backup_restore_batch_size_for_keeper_multi arg
Maximum size of batch for multi request
to [Zoo]Keeper during backup or restore
--max_backup_bandwidth arg
The maximum read speed in bytes per
second for particular backup on server.
Zero means unlimited.
--log_profile_events arg
Log query performance statistics into
the query_log, query_thread_log and
query_views_log.
--log_query_settings arg
Log query settings into the query_log.
--log_query_threads arg
Log query threads into
system.query_thread_log table. This
setting have effect only when
'log_queries' is true.
--log_query_views arg
Log query dependent views into
system.query_views_log table. This
setting have effect only when
'log_queries' is true.
--log_comment arg Log comment into system.query_log table
and server log. It can be set to
arbitrary string no longer than
max_query_size.
--send_logs_level arg
Send server text logs with specified
minimum level to client. Valid values:
'trace', 'debug', 'information',
'warning', 'error', 'fatal', 'none'
--send_logs_source_regexp arg
Send server text logs with specified
regexp to match log source name. Empty
means all sources.
--enable_optimize_predicate_expression arg
If it is set to true, optimize
predicates to subqueries.
--enable_optimize_predicate_expression_to_final_subquery arg
Allow push predicate to final subquery.
--allow_push_predicate_when_subquery_contains_with arg
Allows push predicate when subquery
contains WITH clause
--low_cardinality_max_dictionary_size arg
Maximum size (in rows) of shared global
dictionary for LowCardinality type.
--low_cardinality_use_single_dictionary_for_part arg
LowCardinality type serialization
setting. If is true, than will use
additional keys when global dictionary
overflows. Otherwise, will create
several shared dictionaries.
--decimal_check_overflow arg
Check overflow of decimal
arithmetic/comparison operations
--allow_custom_error_code_in_throwif arg
Enable custom error code in function
throwIf(). If true, thrown exceptions
may have unexpected error codes.
--prefer_localhost_replica arg
If it's true then queries will be
always sent to local replica (if it
exists). If it's false then replica to
send a query will be chosen between
local and remote ones according to
load_balancing
--max_fetch_partition_retries_count arg
Amount of retries while fetching
partition from another host.
--http_max_multipart_form_data_size arg
Limit on size of multipart/form-data
content. This setting cannot be parsed
from URL parameters and should be set
in user profile. Note that content is
parsed and external tables are created
in memory before start of query
execution. And this is the only limit
that has effect on that stage (limits
on max memory usage and max execution
time have no effect while reading HTTP
form data).
--calculate_text_stack_trace arg
Calculate text stack trace in case of
exceptions during query execution. This
is the default. It requires symbol
lookups that may slow down fuzzing
tests when huge amount of wrong queries
are executed. In normal cases you
should not disable this option.
--enable_job_stack_trace arg
Output stack trace of a job creator
when job results in exception
--allow_ddl arg If it is set to true, then a user is
allowed to executed DDL queries.
--parallel_view_processing arg
Enables pushing to attached views
concurrently instead of sequentially.
--enable_unaligned_array_join arg
Allow ARRAY JOIN with multiple arrays
that have different sizes. When this
settings is enabled, arrays will be
resized to the longest one.
--optimize_read_in_order arg
Enable ORDER BY optimization for
reading data in corresponding order in
MergeTree tables.
--optimize_read_in_window_order arg
Enable ORDER BY optimization in window
clause for reading data in
corresponding order in MergeTree
tables.
--optimize_aggregation_in_order arg
Enable GROUP BY optimization for
aggregating data in corresponding order
in MergeTree tables.
--aggregation_in_order_max_block_bytes arg
Maximal size of block in bytes
accumulated during aggregation in order
of primary key. Lower block size allows
to parallelize more final merge stage
of aggregation.
--read_in_order_two_level_merge_threshold arg
Minimal number of parts to read to run
preliminary merge step during
multithread reading in order of primary
key.
--low_cardinality_allow_in_native_format arg
Use LowCardinality type in Native
format. Otherwise, convert
LowCardinality columns to ordinary for
select query, and convert ordinary
columns to required LowCardinality for
insert query.
--cancel_http_readonly_queries_on_client_close arg
Cancel HTTP readonly queries when a
client closes the connection without
waiting for response.
--external_table_functions_use_nulls arg
If it is set to true, external table
functions will implicitly use Nullable
type if needed. Otherwise NULLs will be
substituted with default values.
Currently supported only by 'mysql',
'postgresql' and 'odbc' table
functions.
--external_table_strict_query arg
If it is set to true, transforming
expression to local filter is forbidden
for queries to external tables.
--allow_hyperscan arg
Allow functions that use Hyperscan
library. Disable to avoid potentially
long compilation times and excessive
resource usage.
--max_hyperscan_regexp_length arg
Max length of regexp than can be used
in hyperscan multi-match functions.
Zero means unlimited.
--max_hyperscan_regexp_total_length arg
Max total length of all regexps than
can be used in hyperscan multi-match
functions (per every function). Zero
means unlimited.
--reject_expensive_hyperscan_regexps arg
Reject patterns which will likely be
expensive to evaluate with hyperscan
(due to NFA state explosion)
--allow_simdjson arg
Allow using simdjson library in 'JSON*'
functions if AVX2 instructions are
available. If disabled rapidjson will
be used.
--allow_introspection_functions arg
Allow functions for introspection of
ELF and DWARF for query profiling.
These functions are slow and may impose
security considerations.
--splitby_max_substrings_includes_remaining_string arg
Functions 'splitBy*()' with
'max_substrings' argument > 0 include
the remaining string as last element in
the result
--allow_execute_multiif_columnar arg
Allow execute multiIf function columnar
--formatdatetime_f_prints_single_zero arg
Formatter '%f' in function
'formatDateTime()' prints a single zero
instead of six zeros if the formatted
value has no fractional seconds.
--formatdatetime_parsedatetime_m_is_month_name arg
Formatter '%M' in functions
'formatDateTime()' and
'parseDateTime()' print/parse the month
name instead of minutes.
--parsedatetime_parse_without_leading_zeros arg
Formatters '%c', '%l' and '%k' in
function 'parseDateTime()' parse months
and hours without leading zeros.
--formatdatetime_format_without_leading_zeros arg
Formatters '%c', '%l' and '%k' in
function 'formatDateTime()' print
months and hours without leading zeros.
--max_partitions_per_insert_block arg
Limit maximum number of partitions in
single INSERTed block. Zero means
unlimited. Throw exception if the block
contains too many partitions. This
setting is a safety threshold, because
using large number of partitions is a
common misconception.
--throw_on_max_partitions_per_insert_block arg
Used with max_partitions_per_insert_blo
ck. If true (default), an exception
will be thrown when max_partitions_per_
insert_block is reached. If false,
details of the insert query reaching
this limit with the number of
partitions will be logged. This can be
useful if you're trying to understand
the impact on users when changing
max_partitions_per_insert_block.
--max_partitions_to_read arg
Limit the max number of partitions that
can be accessed in one query. <= 0
means unlimited.
--check_query_single_value_result arg
Return check query result as single 1/0
value
--allow_drop_detached arg
Allow ALTER TABLE ... DROP DETACHED
PART[ITION] ... queries
--max_table_size_to_drop arg
If size of a table is greater than this
value (in bytes) than table could not
be dropped with any DROP query.
--max_partition_size_to_drop arg
Same as max_table_size_to_drop, but for
the partitions.
--postgresql_connection_pool_size arg
Connection pool size for PostgreSQL
table engine and database engine.
--postgresql_connection_pool_wait_timeout arg
Connection pool push/pop timeout on
empty pool for PostgreSQL table engine
and database engine. By default it will
block on empty pool.
--postgresql_connection_pool_auto_close_connection arg
Close connection before returning
connection to the pool.
--glob_expansion_max_elements arg
Maximum number of allowed addresses
(For external storages, table
functions, etc).
--odbc_bridge_connection_pool_size arg
Connection pool size for each
connection settings string in ODBC
bridge.
--odbc_bridge_use_connection_pooling arg
Use connection pooling in ODBC bridge.
If set to false, a new connection is
created every time
--distributed_replica_error_half_life arg
Time period reduces replica error
counter by 2 times.
--distributed_replica_error_cap arg
Max number of errors per replica,
prevents piling up an incredible amount
of errors if replica was offline for
some time and allows it to be
reconsidered in a shorter amount of
time.
--distributed_replica_max_ignored_errors arg
Number of errors that will be ignored
while choosing replicas
--allow_experimental_live_view arg
Enable LIVE VIEW. Not mature enough.
--live_view_heartbeat_interval arg
The heartbeat interval in seconds to
indicate live query is alive.
--max_live_view_insert_blocks_before_refresh arg
Limit maximum number of inserted blocks
after which mergeable blocks are
dropped and query is re-executed.
--allow_experimental_window_view arg
Enable WINDOW VIEW. Not mature enough.
--window_view_clean_interval arg
The clean interval of window view in
seconds to free outdated data.
--window_view_heartbeat_interval arg
The heartbeat interval in seconds to
indicate watch query is alive.
--wait_for_window_view_fire_signal_timeout arg
Timeout for waiting for window view
fire signal in event time processing
--min_free_disk_space_for_temporary_data arg
The minimum disk space to keep while
writing temporary data used in external
sorting and aggregation.
--default_temporary_table_engine arg
Default table engine used when ENGINE
is not set in CREATE TEMPORARY
statement.
--default_table_engine arg
Default table engine used when ENGINE
is not set in CREATE statement.
--show_table_uuid_in_table_create_query_if_not_nil arg
For tables in databases with
Engine=Atomic show UUID of the table in
its CREATE query.
--database_atomic_wait_for_drop_and_detach_synchronously arg
When executing DROP or DETACH TABLE in
Atomic database, wait for table data to
be finally dropped or detached.
--enable_scalar_subquery_optimization arg
If it is set to true, prevent scalar
subqueries from (de)serializing large
scalar values and possibly avoid
running the same subquery more than
once.
--optimize_trivial_count_query arg
Process trivial 'SELECT count() FROM
table' query from metadata.
--optimize_trivial_approximate_count_query arg
Use an approximate value for trivial
count optimization of storages that
support such estimations.
--optimize_count_from_files arg
Optimize counting rows from files in
supported input formats
--use_cache_for_count_from_files arg
Use cache to count the number of rows
in files
--optimize_respect_aliases arg
If it is set to true, it will respect
aliases in WHERE/GROUP BY/ORDER BY,
that will help with partition
pruning/secondary indexes/optimize_aggr
egation_in_order/optimize_read_in_order
/optimize_trivial_count
--mutations_sync arg
Wait for synchronous execution of ALTER
TABLE UPDATE/DELETE queries
(mutations). 0 - execute
asynchronously. 1 - wait current
server. 2 - wait all replicas if they
exist.
--enable_lightweight_delete arg
Enable lightweight DELETE mutations for
mergetree tables.
--allow_experimental_lightweight_delete arg
Enable lightweight DELETE mutations for
mergetree tables.
--apply_deleted_mask arg
Enables filtering out rows deleted with
lightweight DELETE. If disabled, a
query will be able to read those rows.
This is useful for debugging and
"undelete" scenarios
--optimize_normalize_count_variants arg
Rewrite aggregate functions that
semantically equals to count() as
count().
--optimize_injective_functions_inside_uniq arg
Delete injective functions of one
argument inside uniq*() functions.
--rewrite_count_distinct_if_with_count_distinct_implementation arg
Rewrite countDistinctIf with
count_distinct_implementation
configuration
--convert_query_to_cnf arg
Convert SELECT query to CNF
--optimize_or_like_chain arg
Optimize multiple OR LIKE into
multiMatchAny. This optimization should
not be enabled by default, because it
defies index analysis in some cases.
--optimize_arithmetic_operations_in_aggregate_functions arg
Move arithmetic operations out of
aggregation functions
--optimize_redundant_functions_in_order_by arg
Remove functions from ORDER BY if its
argument is also in ORDER BY
--optimize_if_chain_to_multiif arg
Replace if(cond1, then1, if(cond2,
...)) chains to multiIf. Currently it's
not beneficial for numeric types.
--optimize_multiif_to_if arg
Replace 'multiIf' with only one
condition to 'if'.
--optimize_if_transform_strings_to_enum arg
Replaces string-type arguments in If
and Transform to enum. Disabled by
default cause it could make
inconsistent change in distributed
query that would lead to its fail.
--optimize_monotonous_functions_in_order_by arg
Replace monotonous function with its
argument in ORDER BY
--optimize_functions_to_subcolumns arg
Transform functions to subcolumns, if
possible, to reduce amount of read
data. E.g. 'length(arr)' ->
'arr.size0', 'col IS NULL' ->
'col.null'
--optimize_using_constraints arg
Use constraints for query optimization
--optimize_substitute_columns arg
Use constraints for column substitution
--optimize_append_index arg
Use constraints in order to append
index condition (indexHint)
--optimize_time_filter_with_preimage arg
Optimize Date and DateTime predicates
by converting functions into equivalent
comparisons without conversions (e.g.
toYear(col) = 2023 -> col >=
'2023-01-01' AND col <= '2023-12-31')
--normalize_function_names arg
Normalize function names to their
canonical names
--enable_early_constant_folding arg
Enable query optimization where we
analyze function and subqueries results
and rewrite query if there are
constants there
--deduplicate_blocks_in_dependent_materialized_views arg
Should deduplicate blocks for
materialized views if the block is not
a duplicate for the table. Use true to
always deduplicate in dependent tables.
--throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert arg
Throw exception on INSERT query when
the setting `deduplicate_blocks_in_depe
ndent_materialized_views` is enabled
along with `async_insert`. It
guarantees correctness, because these
features can't work together.
--update_insert_deduplication_token_in_dependent_materialized_views arg
Should update insert deduplication
token with table identifier during
insert in dependent materialized views.
--materialized_views_ignore_errors arg
Allows to ignore errors for
MATERIALIZED VIEW, and deliver original
block to the table regardless of MVs
--ignore_materialized_views_with_dropped_target_table arg
Ignore MVs with dropped target table
during pushing to views
--allow_experimental_refreshable_materialized_view arg
Allow refreshable materialized views
(CREATE MATERIALIZED VIEW <name>
REFRESH ...).
--stop_refreshable_materialized_views_on_startup arg
On server startup, prevent scheduling
of refreshable materialized views, as
if with SYSTEM STOP VIEWS. You can
manually start them with SYSTEM START
VIEWS or SYSTEM START VIEW <name>
afterwards. Also applies to newly
created views. Has no effect on
non-refreshable materialized views.
--use_compact_format_in_distributed_parts_names arg
Changes format of directories names for
distributed table insert parts.
--validate_polygons arg
Throw exception if polygon is invalid
in function pointInPolygon (e.g.
self-tangent, self-intersecting). If
the setting is false, the function will
accept invalid polygons but may
silently return wrong result.
--max_parser_depth arg
Maximum parser depth (recursion depth
of recursive descend parser).
--max_parser_backtracks arg
Maximum parser backtracking (how many
times it tries different alternatives
in the recursive descend parsing
process).
--allow_settings_after_format_in_insert arg
Allow SETTINGS after FORMAT, but note,
that this is not always safe (note:
this is a compatibility setting).
--periodic_live_view_refresh arg
Interval after which periodically
refreshed live view is forced to
refresh.
--transform_null_in arg
If enabled, NULL values will be matched
with 'IN' operator as if they are
considered equal.
--allow_nondeterministic_mutations arg
Allow non-deterministic functions in
ALTER UPDATE/ALTER DELETE statements
--lock_acquire_timeout arg
How long locking request should wait
before failing
--materialize_ttl_after_modify arg
Apply TTL for old data, after ALTER
MODIFY TTL query
--function_implementation arg
Choose function implementation for
specific target or variant
(experimental). If empty enable all of
them.
--data_type_default_nullable arg
Data types without NULL or NOT NULL
will make Nullable
--cast_keep_nullable arg
CAST operator keep Nullable for result
data type
--cast_ipv4_ipv6_default_on_conversion_error arg
CAST operator into IPv4, CAST operator
into IPV6 type, toIPv4, toIPv6
functions will return default value
instead of throwing exception on
conversion error.
--alter_partition_verbose_result arg
Output information about affected
parts. Currently works only for FREEZE
and ATTACH commands.
--allow_experimental_database_materialized_mysql arg
Allow to create database with
Engine=MaterializedMySQL(...).
--allow_experimental_database_materialized_postgresql arg
Allow to create database with
Engine=MaterializedPostgreSQL(...).
--system_events_show_zero_values arg
When querying system.events or
system.metrics tables, include all
metrics, even with zero values.
--mysql_datatypes_support_level arg
Which MySQL types should be converted
to corresponding ClickHouse types
(rather than being represented as
String). Can be empty or any
combination of 'decimal', 'datetime64',
'date2Date32' or 'date2String'. When
empty MySQL's DECIMAL and
DATETIME/TIMESTAMP with non-zero
precision are seen as String on
ClickHouse's side.
--optimize_trivial_insert_select arg
Optimize trivial 'INSERT INTO table
SELECT ... FROM TABLES' query
--allow_non_metadata_alters arg
Allow to execute alters which affects
not only tables metadata, but also data
on disk
--enable_global_with_statement arg
Propagate WITH statements to UNION
queries and all subqueries
--aggregate_functions_null_for_empty arg
Rewrite all aggregate functions in a
query, adding -OrNull suffix to them
--optimize_syntax_fuse_functions arg
Allow apply fuse aggregating function.
Available only with `allow_experimental
_analyzer`
--flatten_nested arg
If true, columns of type Nested will be
flatten to separate array columns
instead of one array of tuples
--asterisk_include_materialized_columns arg
Include MATERIALIZED columns for
wildcard query
--asterisk_include_alias_columns arg
Include ALIAS columns for wildcard
query
--optimize_skip_merged_partitions arg
Skip partitions with one part with
level > 0 in optimize final
--optimize_on_insert arg
Do the same transformation for inserted
block of data as if merge was done on
this block.
--optimize_use_projections arg
Automatically choose projections to
perform SELECT query
--allow_experimental_projection_optimization arg
Automatically choose projections to
perform SELECT query
--optimize_use_implicit_projections arg
Automatically choose implicit
projections to perform SELECT query
--force_optimize_projection arg
If projection optimization is enabled,
SELECT queries need to use projection
--force_optimize_projection_name arg
If it is set to a non-empty string,
check that this projection is used in
the query at least once.
--preferred_optimize_projection_name arg
If it is set to a non-empty string,
ClickHouse tries to apply specified
projection
--async_socket_for_remote arg
Asynchronously read from socket
executing remote query
--async_query_sending_for_remote arg
Asynchronously create connections and
send query to shards in remote query
--insert_null_as_default arg
Insert DEFAULT values instead of NULL
in INSERT SELECT (UNION ALL)
--describe_extend_object_types arg
Deduce concrete type of columns of type
Object in DESCRIBE query
--describe_include_subcolumns arg
If true, subcolumns of all table
columns will be included into result of
DESCRIBE query
--describe_include_virtual_columns arg
If true, virtual columns of table will
be included into result of DESCRIBE
query
--describe_compact_output arg
If true, include only column names and
types into result of DESCRIBE query
--apply_mutations_on_fly arg
Only available in ClickHouse Cloud
--mutations_execute_nondeterministic_on_initiator arg
If true nondeterministic function are
executed on initiator and replaced to
literals in UPDATE and DELETE queries
--mutations_execute_subqueries_on_initiator arg
If true scalar subqueries are executed
on initiator and replaced to literals
in UPDATE and DELETE queries
--mutations_max_literal_size_to_replace arg
The maximum size of serialized literal
in bytes to replace in UPDATE and
DELETE queries
--create_replicated_merge_tree_fault_injection_probability arg
The probability of a fault injection
during table creation after creating
metadata in ZooKeeper
--use_query_cache arg
Enable the query cache
--enable_writes_to_query_cache arg
Enable storing results of SELECT
queries in the query cache
--enable_reads_from_query_cache arg
Enable reading results of SELECT
queries from the query cache
--query_cache_nondeterministic_function_handling arg
How the query cache handles queries
with non-deterministic functions, e.g.
now()
--query_cache_max_size_in_bytes arg
The maximum amount of memory (in bytes)
the current user may allocate in the
query cache. 0 means unlimited.
--query_cache_max_entries arg
The maximum number of query results the
current user may store in the query
cache. 0 means unlimited.
--query_cache_min_query_runs arg
Minimum number a SELECT query must run
before its result is stored in the
query cache
--query_cache_min_query_duration arg
Minimum time in milliseconds for a
query to run for its result to be
stored in the query cache.
--query_cache_compress_entries arg
Compress cache entries.
--query_cache_squash_partial_results arg
Squash partial result blocks to blocks
of size 'max_block_size'. Reduces
performance of inserts into the query
cache but improves the compressability
of cache entries.
--query_cache_ttl arg
After this time in seconds entries in
the query cache become stale
--query_cache_share_between_users arg
Allow other users to read entry in the
query cache
--enable_sharing_sets_for_mutations arg
Allow sharing set objects build for IN
subqueries between different tasks of
the same mutation. This reduces memory
usage and CPU consumption
--optimize_rewrite_sum_if_to_count_if arg
Rewrite sumIf() and sum(if()) function
countIf() function when logically
equivalent
--optimize_rewrite_aggregate_function_with_if arg
Rewrite aggregate functions with if
expression as argument when logically
equivalent. For example, avg(if(cond,
col, null)) can be rewritten to
avgIf(cond, col)
--optimize_rewrite_array_exists_to_has arg
Rewrite arrayExists() functions to
has() when logically equivalent. For
example, arrayExists(x -> x = 1, arr)
can be rewritten to has(arr, 1)
--insert_shard_id arg
If non zero, when insert into a
distributed table, the data will be
inserted into the shard
`insert_shard_id` synchronously.
Possible values range from 1 to
[truncated]
Options (589)
| Option | Description | Source |
|---|---|---|
--help | produce help message | help |
-V | print version information and exit | help |
--version-clean | print version in machine-readable format and exit | help |
--queries-file arg | file path with queries to execute; | help |
--query_id arg | query_id | help |
--history_file arg | path to history file | help |
-t | print query execution time to stderr in non-interactive mode (for benchmarks) | help |
--echo | in batch mode, print query before execution | help |
--verbose | print query and other debugging info | help |
--log-level arg | log level | help |
--server_logs_file arg | put server logs into specified file | help |
--output-format arg | default output format (this option has preference over --format) | help |
--ignore-error | do not stop processing in multiquery mode | help |
--stacktrace | print stack traces of exceptions | help |
--hardware-utilization | print hardware utilization information in progress bar | help |
--print-profile-events | Printing ProfileEvents packets | help |
--processed-rows | print the number of locally processed rows | help |
--interactive | Process queries-file or --query query and start interactive mode | help |
--pager arg | Pipe all output into this command (less or similar) | help |
--max_memory_usage_in_client arg | Set memory limit in client/local server | help |
--input-format arg | input format of the initial table data | help |
--logger.console arg(=1) | Log to console | help |
--logger.log arg | Log file name | help |
--logger.level arg | Log level | help |
--no-system-tables | do not attach system tables (better startup time) | help |
--path arg | Storage path | help |
--only-system-tables | attach only system tables from specified path | help |
--top_level_domains_path arg | Path to lists with custom TLDs | help |
--dialect arg | Which dialect will be used to parse query | help |
--min_compress_block_size arg | The actual size of the block to compress, if the uncompressed data less than max_compress_block_size is no less than this value and no less than the volume of data for one mark. | help |
--max_compress_block_size arg | The maximum size of blocks of uncompressed data before compressing for writing to a table. | help |
--max_block_size arg | Maximum block size for reading | help |
--max_insert_block_size arg | The maximum block size for insertion, if we control the creation of blocks for insertion. | help |
--min_insert_block_size_rows arg | Squash blocks passed to INSERT query to specified size in rows, if blocks are not big enough. | help |
--min_insert_block_size_bytes arg | Squash blocks passed to INSERT query to specified size in bytes, if blocks are not big enough. | help |
--min_insert_block_size_rows_for_materialized_views arg | Like min_insert_block_size_rows, but applied only during pushing to MATERIALIZED VIEW (default: min_insert_block_size_rows) | help |
--min_insert_block_size_bytes_for_materialized_views arg | Like min_insert_block_size_bytes, but applied only during pushing to MATERIALIZED VIEW (default: min_insert_block_size_bytes) | help |
--min_external_table_block_size_rows arg | Squash blocks passed to external table to specified size in rows, if blocks are not big enough. | help |
--min_external_table_block_size_bytes arg | Squash blocks passed to external table to specified size in bytes, if blocks are not big enough. | help |
--max_joined_block_size_rows arg | Maximum block size for JOIN result (if join algorithm supports it). | help |
--max_insert_threads arg | The maximum number of threads to execute the INSERT SELECT query. | help |
--max_insert_delayed_streams_for_parallel_write arg | The maximum number of streams (columns) to delay final part flush. | help |
--max_final_threads arg | The maximum number of threads to read from table with FINAL. | help |
--max_threads_for_indexes arg | The maximum number of threads process indices. | help |
--use_concurrency_control arg | Respect the server's concurrency control (see the `concurrent_threads_so ft_limit_num` and `concurrent_threads_s oft_limit_ratio_to_cores` global server settings). | help |
--max_download_threads arg | The maximum number of threads to download data (e.g. for URL engine). | help |
--max_download_buffer_size arg | The maximal size of buffer for parallel downloading (e.g. for URL engine) per each thread. | help |
--max_read_buffer_size arg | The maximum size of the buffer to read from the filesystem. | help |
--max_read_buffer_size_local_fs arg | The maximum size of the buffer to read from local filesystem. | help |
--max_read_buffer_size_remote_fs arg | The maximum size of the buffer to read from remote filesystem. | help |
--max_distributed_connections arg | The maximum number of connections for distributed processing of one query (should be greater than max_threads). | help |
--max_query_size arg | The maximum number of bytes of a query string parsed by the SQL parser. | help |
--interactive_delay arg | The interval in microseconds to check if the request is cancelled, and to send progress info. | help |
--connect_timeout arg | Connection timeout if there are no replicas. | help |
--handshake_timeout_ms arg | Timeout for receiving HELLO packet from replicas. | help |
--connect_timeout_with_failover_ms arg | Connection timeout for selecting first healthy replica. | help |
--connect_timeout_with_failover_secure_ms arg | Connection timeout for selecting first healthy replica (for secure connections). | help |
--receive_timeout arg | Timeout for receiving data from network, in seconds. | help |
--send_timeout arg | Timeout for sending data to network, in seconds. | help |
--tcp_keep_alive_timeout arg | The time in seconds the connection needs to remain idle before TCP starts sending keepalive probes | help |
--hedged_connection_timeout_ms arg | Connection timeout for establishing connection with replica for Hedged requests | help |
--receive_data_timeout_ms arg | Connection timeout for receiving first packet of data or packet with positive progress from replica | help |
--use_hedged_requests arg | Use hedged requests for distributed queries | help |
--allow_changing_replica_until_first_data_packet arg | Allow HedgedConnections to change replica until receiving first data packet | help |
--queue_max_wait_ms arg | The wait time in the request queue, if the number of concurrent requests exceeds the maximum. | help |
--connection_pool_max_wait_ms arg | The wait time when the connection pool is full. | help |
--replace_running_query_max_wait_ms arg | The wait time for running query with the same query_id to finish when setting 'replace_running_query' is active. | help |
--kafka_max_wait_ms arg | The wait time for reading from Kafka before retry. | help |
--rabbitmq_max_wait_ms arg | The wait time for reading from RabbitMQ before retry. | help |
--poll_interval arg | Block at the query wait loop on the server for the specified number of seconds. | help |
--idle_connection_timeout arg | Close idle TCP connections after specified number of seconds. | help |
--distributed_connections_pool_size arg | Maximum number of connections with one remote server in the pool. | help |
--connections_with_failover_max_tries arg | The maximum number of attempts to connect to replicas. | help |
--s3_strict_upload_part_size arg | The exact size of part to upload during multipart upload to S3 (some implementations does not supports variable size parts). | help |
--azure_strict_upload_part_size arg | The exact size of part to upload during multipart upload to Azure blob storage. | help |
--s3_min_upload_part_size arg | The minimum size of part to upload during multipart upload to S3. | help |
--s3_max_upload_part_size arg | The maximum size of part to upload during multipart upload to S3. | help |
--azure_min_upload_part_size arg | The minimum size of part to upload during multipart upload to Azure blob storage. | help |
--azure_max_upload_part_size arg | The maximum size of part to upload during multipart upload to Azure blob storage. | help |
--s3_upload_part_size_multiply_factor arg | Multiply s3_min_upload_part_size by this factor each time s3_multiply_parts_count_threshold parts were uploaded from a single write to S3. | help |
--s3_upload_part_size_multiply_parts_count_threshold arg | Each time this number of parts was uploaded to S3, s3_min_upload_part_size is multiplied by s3_upload_part_size_mu ltiply_factor. | help |
--azure_upload_part_size_multiply_factor arg | Multiply azure_min_upload_part_size by this factor each time azure_multiply_parts_count_threshold parts were uploaded from a single write to Azure blob storage. | help |
--azure_upload_part_size_multiply_parts_count_threshold arg | Each time this number of parts was uploaded to Azure blob storage, azure_min_upload_part_size is multiplied by azure_upload_part_size_mu ltiply_factor. | help |
--s3_max_inflight_parts_for_one_file arg | The maximum number of a concurrent loaded parts in multipart upload request. | help |
--azure_max_inflight_parts_for_one_file arg | The maximum number of a concurrent loaded parts in multipart upload request. | help |
--s3_max_single_part_upload_size arg | The maximum size of object to upload using singlepart upload to S3. | help |
--azure_max_single_part_upload_size arg | The maximum size of object to upload using singlepart upload to Azure blob storage. | help |
--azure_max_single_part_copy_size arg | The maximum size of object to copy using single part copy to Azure blob storage. | help |
--s3_max_single_read_retries arg | The maximum number of retries during single S3 read. | help |
--azure_max_single_read_retries arg | The maximum number of retries during single Azure blob storage read. | help |
--azure_max_unexpected_write_error_retries arg | The maximum number of retries in case of unexpected errors during Azure blob storage write | help |
--s3_max_unexpected_write_error_retries arg | The maximum number of retries in case of unexpected errors during S3 write. | help |
--s3_max_redirects arg | Max number of S3 redirects hops allowed. | help |
--s3_max_connections arg | The maximum number of connections per server. | help |
--s3_max_get_rps arg | Limit on S3 GET request per second rate before throttling. | help |
--s3_max_get_burst arg | Max number of requests that can be issued simultaneously before hitting request per second limit. | help |
--s3_max_put_rps arg | Limit on S3 PUT request per second rate before throttling. | help |
--s3_max_put_burst arg | Max number of requests that can be issued simultaneously before hitting request per second limit. | help |
--s3_list_object_keys_size arg | Maximum number of files that could be returned in batch by ListObject request | help |
--s3_use_adaptive_timeouts arg | When adaptive timeouts are enabled first two attempts are made with low receive and send timeout | help |
--azure_list_object_keys_size arg | Maximum number of files that could be returned in batch by ListObject request | help |
--s3_truncate_on_insert arg | Enables or disables truncate before insert in s3 engine tables. | help |
--azure_truncate_on_insert arg | Enables or disables truncate before insert in azure engine tables. | help |
--s3_create_new_file_on_insert arg | Enables or disables creating a new file on each insert in s3 engine tables | help |
--s3_skip_empty_files arg | Allow to skip empty files in s3 table engine | help |
--azure_create_new_file_on_insert arg | Enables or disables creating a new file on each insert in azure engine tables | help |
--s3_check_objects_after_upload arg | Check each uploaded object to s3 with head request to be sure that upload was successful | help |
--s3_allow_parallel_part_upload arg | Use multiple threads for s3 multipart upload. | help |
--s3_throw_on_zero_files_match arg | Throw an error, when ListObjects request cannot match any files | help |
--s3_disable_checksum arg | Do not calculate a checksum when sending a file to S3. | help |
--s3_retry_attempts arg | Setting for Aws::Client::RetryStrategy, Aws::Client does retries itself, 0 means no retries | help |
--s3_request_timeout_ms arg | Idleness timeout for sending and receiving data to/from S3. | help |
--s3_connect_timeout_ms arg | Connection timeout for host from s3 disks. | help |
--enable_s3_requests_logging arg | Enable very explicit logging of S3 requests. | help |
--s3queue_default_zookeeper_path arg | Default zookeeper path prefix for S3Queue engine | help |
--s3queue_enable_logging_to_s3queue_log arg | Enable writing to system.s3queue_log. | help |
--s3queue_allow_experimental_sharded_mode arg | Enable experimental sharded mode of S3Queue table engine. | help |
--hdfs_replication arg | The actual number of replications can be specified when the hdfs file is created. | help |
--hdfs_truncate_on_insert arg | Enables or disables truncate before insert in s3 engine tables | help |
--hdfs_create_new_file_on_insert arg | Enables or disables creating a new file on each insert in hdfs engine tables | help |
--hdfs_skip_empty_files arg | Allow to skip empty files in hdfs table engine | help |
--hsts_max_age arg | Expired time for hsts. | help |
--extremes arg | Calculate minimums and maximums of the result columns. | help |
--use_uncompressed_cache arg | Whether to use the cache of uncompressed blocks. | help |
--replace_running_query arg | Whether the running request should be canceled with the same id as the new one. | help |
--max_remote_read_network_bandwidth arg | The maximum speed of data exchange over the network in bytes per second for read. | help |
--max_remote_write_network_bandwidth arg | The maximum speed of data exchange over the network in bytes per second for write. | help |
--max_local_read_bandwidth arg | The maximum speed of local reads in bytes per second. | help |
--max_local_write_bandwidth arg | The maximum speed of local writes in bytes per second. | help |
--stream_like_engine_allow_direct_select arg | Allow direct SELECT query for Kafka, RabbitMQ, FileLog, Redis Streams, and NATS engines. | help |
--stream_like_engine_insert_queue arg | When stream like engine reads from multiple queues, user will need to select one queue to insert into when writing. | help |
--distributed_insert_skip_read_only_replicas arg | If true, INSERT into Distributed will skip read-only replicas. | help |
--distributed_foreground_insert arg | If setting is enabled, insert query into distributed waits until data are sent to all nodes in a cluster. | help |
--insert_distributed_sync arg | If setting is enabled, insert query into distributed waits until data are sent to all nodes in a cluster. | help |
--distributed_background_insert_timeout arg | Timeout for insert query into distributed. | help |
--insert_distributed_timeout arg | Timeout for insert query into distributed. | help |
--distributed_background_insert_sleep_time_ms arg | Sleep time for background INSERTs into Distributed, in case of any errors delay grows exponentially. | help |
--distributed_directory_monitor_sleep_time_ms arg | Sleep time for background INSERTs into Distributed, in case of any errors delay grows exponentially. | help |
--distributed_background_insert_max_sleep_time_ms arg | Maximum sleep time for background INSERTs into Distributed, it limits exponential growth too. | help |
--distributed_directory_monitor_max_sleep_time_ms arg | Maximum sleep time for background INSERTs into Distributed, it limits exponential growth too. | help |
--distributed_background_insert_batch arg | Should background INSERTs into Distributed be batched into bigger blocks. | help |
--distributed_directory_monitor_batch_inserts arg | Should background INSERTs into Distributed be batched into bigger blocks. | help |
--distributed_background_insert_split_batch_on_failure arg | Should batches of the background INSERT into Distributed be split into smaller batches in case of failures. | help |
--distributed_directory_monitor_split_batch_on_failure arg | Should batches of the background INSERT into Distributed be split into smaller batches in case of failures. | help |
--optimize_move_to_prewhere arg | Allows disabling WHERE to PREWHERE optimization in SELECT queries from MergeTree. | help |
--optimize_move_to_prewhere_if_final arg | If query has `FINAL`, the optimization `move_to_prewhere` is not always correct and it is enabled only if both settings `optimize_move_to_prewhere` and `optimize_move_to_prewhere_if_final ` are… | help |
--move_all_conditions_to_prewhere arg | Move all viable conditions from WHERE to PREWHERE | help |
--enable_multiple_prewhere_read_steps arg | Move more conditions from WHERE to PREWHERE and do reads from disk and filtering in multiple steps if there are multiple conditions combined with AND | help |
--move_primary_key_columns_to_end_of_prewhere arg | Move PREWHERE conditions containing primary key columns to the end of AND chain. | help |
--allow_statistic_optimize arg | Allows using statistic to optimize queries | help |
--allow_experimental_statistic arg | Allows using statistic | help |
--alter_sync arg | Wait for actions to manipulate the partitions. | help |
--replication_alter_partitions_sync arg | Wait for actions to manipulate the partitions. | help |
--replication_wait_for_inactive_replica_timeout arg | Wait for inactive replica to execute ALTER/OPTIMIZE. | help |
--alter_move_to_space_execute_async arg | Execute ALTER TABLE MOVE ... | help |
--load_balancing arg | Which replicas (among healthy replicas) to preferably send a query to (on the first attempt) for distributed processing. | help |
--load_balancing_first_offset arg | Which replica to preferably send a query when FIRST_OR_RANDOM load balancing strategy is used. | help |
--totals_auto_threshold arg | The threshold for totals_mode = 'auto'. | help |
--allow_suspicious_low_cardinality_types arg | In CREATE TABLE statement allows specifying LowCardinality modifier for types of small fixed size (8 or less). | help |
--allow_suspicious_fixed_string_types arg | In CREATE TABLE statement allows creating columns of type FixedString(n) with n > 256. | help |
--allow_suspicious_indices arg | Reject primary/secondary indexes and sorting keys with identical expressions | help |
--allow_suspicious_ttl_expressions arg | Reject TTL expressions that don't depend on any of table's columns. | help |
--allow_suspicious_variant_types arg | In CREATE TABLE statement allows specifying Variant type with similar variant types (for example, with different numeric or date types). | help |
--allow_suspicious_primary_key arg | Forbid suspicious PRIMARY KEY/ORDER BY for MergeTree (i.e. SimpleAggregateFunc tion) | help |
--compile_expressions arg | Compile some scalar functions and operators to native code. | help |
--min_count_to_compile_expression arg | The number of identical expressions before they are JIT-compiled | help |
--compile_aggregate_expressions arg | Compile aggregate functions to native code. | help |
--min_count_to_compile_aggregate_expression arg | The number of identical aggregate expressions before they are JIT-compiled | help |
--compile_sort_description arg | Compile sort description to native code. | help |
--min_count_to_compile_sort_description arg | The number of identical sort descriptions before they are JIT-compiled | help |
--group_by_two_level_threshold arg | From what number of keys, a two-level aggregation starts. | help |
--group_by_two_level_threshold_bytes arg | From what size of the aggregation state in bytes, a two-level aggregation begins to be used. | help |
--distributed_aggregation_memory_efficient arg | Is the memory-saving mode of distributed aggregation enabled. | help |
--aggregation_memory_efficient_merge_threads arg | Number of threads to use for merge intermediate aggregation results in memory efficient mode. | help |
--enable_memory_bound_merging_of_aggregation_results arg | Enable memory bound merging strategy for aggregation. | help |
--enable_positional_arguments arg | Enable positional arguments in ORDER BY, GROUP BY and LIMIT BY | help |
--enable_extended_results_for_datetime_functions arg | Enable date functions like toLastDayOfMonth return Date32 results (instead of Date results) for Date32/DateTime64 arguments. | help |
--allow_nonconst_timezone_arguments arg | Allow non-const timezone arguments in certain time-related functions like toTimeZone(), fromUnixTimestamp*(), snowflakeToDateTime*() | help |
--function_locate_has_mysql_compatible_argument_order arg | Function locate() has arguments (needle, haystack[, start_pos]) like in MySQL instead of (haystack, needle[, start_pos]) like function position() | help |
--group_by_use_nulls arg | Treat columns mentioned in ROLLUP, CUBE or GROUPING SETS as Nullable | help |
--max_parallel_replicas arg | The maximum number of replicas of each shard used when the query is executed. | help |
--parallel_replicas_count arg | This is internal setting that should not be used directly and represents an implementation detail of the 'parallel replicas' mode. | help |
--parallel_replica_offset arg | This is internal setting that should not be used directly and represents an implementation detail of the 'parallel replicas' mode. | help |
--parallel_replicas_custom_key arg | Custom key assigning work to replicas when parallel replicas are used. | help |
--parallel_replicas_custom_key_filter_type arg | Type of filter to use with custom key for parallel replicas. | help |
--cluster_for_parallel_replicas arg | Cluster for a shard in which current server is located | help |
--allow_experimental_parallel_reading_from_replicas arg | Use all the replicas from a shard for SELECT query execution. | help |
--parallel_replicas_allow_in_with_subquery arg | If true, subquery for IN will be executed on every follower replica. | help |
--parallel_replicas_single_task_marks_count_multiplier arg | A multiplier which will be added during calculation for minimal number of marks to retrieve from coordinator. | help |
--parallel_replicas_for_non_replicated_merge_tree arg | If true, ClickHouse will use parallel replicas algorithm also for non-replicated MergeTree tables | help |
--parallel_replicas_min_number_of_rows_per_replica arg | Limit the number of replicas used in a query to (estimated rows to read / min_number_of_rows_per_replica). | help |
--parallel_replicas_prefer_local_join arg | If true, and JOIN can be executed with parallel replicas algorithm, and all storages of right JOIN part are *MergeTree, local JOIN will be used instead of GLOBAL JOIN. | help |
--parallel_replicas_mark_segment_size arg | Parts virtually divided into segments to be distributed between replicas for parallel reading. | help |
--skip_unavailable_shards arg | If true, ClickHouse silently skips unavailable shards. | help |
--parallel_distributed_insert_select arg | Process distributed INSERT SELECT query in the same cluster on local tables on every shard; | help |
--distributed_group_by_no_merge arg | If 1, Do not merge aggregation states from different servers for distributed queries (shards will process query up to the Complete stage, initiator just proxies the data from the shards). | help |
--distributed_push_down_limit arg | If 1, LIMIT will be applied on each shard separately. | help |
--optimize_distributed_group_by_sharding_key arg | Optimize GROUP BY sharding_key queries (by avoiding costly aggregation on the initiator server). | help |
--optimize_skip_unused_shards_limit arg | Limit for number of sharding key values, turns off optimize_skip_unused_ shards if the limit is reached | help |
--optimize_skip_unused_shards arg | Assumes that data is distributed by sharding_key. | help |
--optimize_skip_unused_shards_rewrite_in arg | Rewrite IN in query for remote shards to exclude values that does not belong to the shard (requires optimize_skip_unused_shards) | help |
--allow_nondeterministic_optimize_skip_unused_shards arg | Allow non-deterministic functions (includes dictGet) in sharding_key for optimize_skip_unused_shards | help |
--force_optimize_skip_unused_shards arg | Throw an exception if unused shards cannot be skipped (1 - throw only if the table has the sharding key, 2 - always throw. | help |
--optimize_skip_unused_shards_nesting arg | Same as optimize_skip_unused_shards, but accept nesting level until which it will work. | help |
--force_optimize_skip_unused_shards_nesting arg | Same as force_optimize_skip_unused_shar ds, but accept nesting level until which it will work. | help |
--input_format_parallel_parsing arg | Enable parallel parsing for some data formats. | help |
--min_chunk_bytes_for_parallel_parsing arg | The minimum chunk size in bytes, which each thread will parse in parallel. | help |
--output_format_parallel_formatting arg | Enable parallel formatting for some data formats. | help |
--output_format_compression_level arg | Default compression level if query output is compressed. | help |
--output_format_compression_zstd_window_log arg | Can be used when the output compression method is `zstd`. | help |
--merge_tree_min_rows_for_concurrent_read arg | If at least as many lines are read from one file, the reading can be parallelized. | help |
--merge_tree_min_bytes_for_concurrent_read arg | If at least as many bytes are read from one file, the reading can be parallelized. | help |
--merge_tree_min_rows_for_seek arg | You can skip reading more than that number of rows at the price of one seek per file. | help |
--merge_tree_min_bytes_for_seek arg | You can skip reading more than that number of bytes at the price of one seek per file. | help |
--merge_tree_coarse_index_granularity arg | If the index segment can contain the required keys, divide it into as many parts and recursively check them. | help |
--merge_tree_max_rows_to_use_cache arg | The maximum number of rows per request, to use the cache of uncompressed data. | help |
--merge_tree_max_bytes_to_use_cache arg | The maximum number of bytes per request, to use the cache of uncompressed data. | help |
--do_not_merge_across_partitions_select_final arg | Merge parts only in one partition in select final | help |
--split_parts_ranges_into_intersecting_and_non_intersecting_final arg | Split parts ranges into intersecting and non intersecting during FINAL optimization | help |
--split_intersecting_parts_ranges_into_layers_final arg | Split intersecting parts ranges into layers during FINAL optimization | help |
--allow_experimental_inverted_index arg | If it is set to true, allow to use experimental inverted index. | help |
--mysql_max_rows_to_insert arg | The maximum number of rows in MySQL batch insertion of the MySQL storage engine | help |
--mysql_map_string_to_text_in_show_columns arg | If enabled, String type will be mapped to TEXT in SHOW [FULL] COLUMNS, BLOB otherwise. | help |
--mysql_map_fixed_string_to_text_in_show_columns arg | If enabled, FixedString type will be mapped to TEXT in SHOW [FULL] COLUMNS, BLOB otherwise. | help |
--optimize_min_equality_disjunction_chain_length arg | The minimum length of the expression `expr = x1 OR ... | help |
--optimize_min_inequality_conjunction_chain_length arg | The minimum length of the expression `expr <> x1 AND ... | help |
--min_bytes_to_use_direct_io arg | The minimum number of bytes for reading the data with O_DIRECT option during SELECT queries execution. | help |
--min_bytes_to_use_mmap_io arg | The minimum number of bytes for reading the data with mmap option during SELECT queries execution. | help |
--checksum_on_read arg | Validate checksums on reading. | help |
--force_index_by_date arg | Throw an exception if there is a partition key in a table, and it is not used. | help |
--force_primary_key arg | Throw an exception if there is primary key in a table, and it is not used. | help |
--use_skip_indexes arg | Use data skipping indexes during query execution. | help |
--use_skip_indexes_if_final arg | If query has FINAL, then skipping data based on indexes may produce incorrect result, hence disabled by default. | help |
--ignore_data_skipping_indices arg | Comma separated list of strings or literals with the name of the data skipping indices that should be excluded during query execution. | help |
--force_data_skipping_indices arg | Comma separated list of strings or literals with the name of the data skipping indices that should be used during query execution, otherwise an exception will be thrown. | help |
--max_streams_to_max_threads_ratio arg | Allows you to use more sources than the number of threads - to more evenly distribute work across threads. | help |
--max_streams_multiplier_for_merge_tables arg | Ask more streams when reading from Merge table. | help |
--network_compression_method arg | Allows you to select the method of data compression when writing. | help |
--network_zstd_compression_level arg | Allows you to select the level of ZSTD compression. | help |
--zstd_window_log_max arg | Allows you to select the max window log of ZSTD (it will not be used for MergeTree family) | help |
--priority arg | Priority of the query. | help |
--os_thread_priority arg | If non zero - set corresponding 'nice' value for query processing threads. | help |
--log_formatted_queries arg | Log formatted queries and write the log to the system table. | help |
--log_queries_min_type arg | Minimal type in query_log to log, possible values (from low to high): QUERY_START, QUERY_FINISH, EXCEPTION_BEFORE_START, EXCEPTION_WHILE_PROCESSING. | help |
--log_queries_min_query_duration_ms arg | Minimal time for the query to run, to get to the query_log/query_thread_log/q uery_views_log. | help |
--log_queries_cut_to_length arg | If query length is greater than specified threshold (in bytes), then cut query when writing to query log. | help |
--log_queries_probability arg | Log queries with the specified probability. | help |
--log_processors_profiles arg | Log Processors profile events. | help |
--distributed_product_mode arg | How are distributed subqueries performed inside IN or JOIN sections? | help |
--max_concurrent_queries_for_all_users arg | The maximum number of concurrent requests for all users. | help |
--max_concurrent_queries_for_user arg | The maximum number of concurrent requests per user. | help |
--insert_deduplicate arg | For INSERT queries in the replicated table, specifies that deduplication of inserting blocks should be performed | help |
--async_insert_deduplicate arg | For async INSERT queries in the replicated table, specifies that deduplication of inserting blocks should be performed | help |
--insert_quorum arg | For INSERT queries in the replicated table, wait writing for the specified number of replicas and linearize the addition of the data. | help |
--insert_quorum_timeout arg | If the quorum of replicas did not meet in specified time (in milliseconds), exception will be thrown and insertion is aborted. | help |
--insert_quorum_parallel arg | For quorum INSERT queries - enable to make parallel inserts without linearizability | help |
--select_sequential_consistency arg | For SELECT queries from the replicated table, throw an exception if the replica does not have a chunk written with the quorum; | help |
--table_function_remote_max_addresses arg | The maximum number of different shards and the maximum number of replicas of one shard in the `remote` function. | help |
--read_backoff_min_latency_ms arg | Setting to reduce the number of threads in case of slow reads. | help |
--read_backoff_max_throughput arg | Settings to reduce the number of threads in case of slow reads. | help |
--read_backoff_min_interval_between_events_ms arg | Settings to reduce the number of threads in case of slow reads. | help |
--read_backoff_min_events arg | Settings to reduce the number of threads in case of slow reads. | help |
--read_backoff_min_concurrency arg | Settings to try keeping the minimal number of threads in case of slow reads. | help |
--memory_tracker_fault_probability arg | For testing of `exception safety` - throw an exception every time you allocate memory with the specified probability. | help |
--merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability arg | For testing of `PartsSplitter` - split read ranges into intersecting and non intersecting every time you read from MergeTree with the specified probability. | help |
--enable_http_compression arg | Compress the result if the client over HTTP said that it understands data compressed by gzip, deflate, zstd, br, lz4, bz2, xz. | help |
--http_zlib_compression_level arg | Compression level - used if the client on HTTP said that it understands data compressed by gzip or deflate. | help |
--http_native_compression_disable_checksumming_on_decompress arg | If you uncompress the POST data from the client compressed by the native format, do not check the checksum. | help |
--count_distinct_implementation arg | What aggregate function to use for implementation of count(DISTINCT ...) | help |
--add_http_cors_header arg | Write add http CORS header. | help |
--max_http_get_redirects arg | Max number of http GET redirects hops allowed. | help |
--use_client_time_zone arg | Use client timezone for interpreting DateTime string values, instead of adopting server timezone. | help |
--send_progress_in_http_headers arg | Send progress notifications using X-ClickHouse-Progress headers. | help |
--http_headers_progress_interval_ms arg | Do not send HTTP headers X-ClickHouse-Progress more frequently than at each specified interval. | help |
--http_wait_end_of_query arg | Enable HTTP response buffering on the server-side. | help |
--http_write_exception_in_output_format arg | Write exception in output format to produce valid output. | help |
--http_response_buffer_size arg | The number of bytes to buffer in the server memory before sending a HTTP response to the client or flushing to disk (when http_wait_end_of_query is enabled). | help |
--fsync_metadata arg | Do fsync after changing metadata for tables and databases (.sql files). | help |
--join_use_nulls arg | Use NULLs for non-joined rows of outer JOINs for types that can be inside Nullable. | help |
--join_default_strictness arg | Set default strictness in JOIN query. | help |
--any_join_distinct_right_table_keys arg | Enable old ANY JOIN logic with many-to-one left-to-right table keys mapping for all ANY JOINs. | help |
--single_join_prefer_left_table arg | For single JOIN in case of identifier ambiguity prefer left table | help |
--preferred_block_size_bytes arg | This setting adjusts the data block size for query processing and represents additional fine tune to the more rough 'max_block_size' setting. | help |
--max_replica_delay_for_distributed_queries arg | If set, distributed queries of Replicated tables will choose servers with replication delay in seconds less than the specified value (not inclusive). | help |
--fallback_to_stale_replicas_for_distributed_queries arg | Suppose max_replica_delay_for_distribut ed_queries is set and all replicas for the queried table are stale. | help |
--preferred_max_column_in_block_size_bytes arg | Limit on max column size in block while reading. | help |
--parts_to_delay_insert arg | If the destination table contains at least that many active parts in a single partition, artificially slow down insert into table. | help |
--parts_to_throw_insert arg | If more than this number active parts in a single partition of the destination table, throw 'Too many parts ...' exception. | help |
--number_of_mutations_to_delay arg | If the mutated table contains at least that many unfinished mutations, artificially slow down mutations of table. | help |
--number_of_mutations_to_throw arg | If the mutated table contains at least that many unfinished mutations, throw 'Too many mutations ...' exception. | help |
--distributed_ddl_task_timeout arg | Timeout for DDL query responses from all hosts in cluster. | help |
--stream_flush_interval_ms arg | Timeout for flushing data from streaming storages. | help |
--stream_poll_timeout_ms arg | Timeout for polling data from/to streaming storages. | help |
--final arg | Query with the FINAL modifier by default. | help |
--partial_result_on_first_cancel arg | Allows query to return a partial result after cancel. | help |
--ignore_on_cluster_for_replicated_udf_queries arg | Ignore ON CLUSTER clause for replicated UDF management queries. | help |
--ignore_on_cluster_for_replicated_access_entities_queries arg | Ignore ON CLUSTER clause for replicated access entities management queries. | help |
--sleep_in_send_tables_status_ms arg | Time to sleep in sending tables status response in TCPHandler | help |
--sleep_in_send_data_ms arg | Time to sleep in sending data in TCPHandler | help |
--sleep_after_receiving_query_ms arg | Time to sleep after receiving query in TCPHandler | help |
--unknown_packet_in_send_data arg | Send unknown packet instead of data Nth data packet | help |
--insert_allow_materialized_columns arg | If setting is enabled, Allow materialized columns in INSERT. | help |
--http_connection_timeout arg | HTTP connection timeout. | help |
--http_send_timeout arg | HTTP send timeout | help |
--http_receive_timeout arg | HTTP receive timeout | help |
--http_max_uri_size arg | Maximum URI length of HTTP request | help |
--http_max_fields arg | Maximum number of fields in HTTP header | help |
--http_max_field_name_size arg | Maximum length of field name in HTTP header | help |
--http_max_field_value_size arg | Maximum length of field value in HTTP header | help |
--http_max_chunk_size arg | Maximum value of a chunk size in HTTP chunked transfer encoding | help |
--http_skip_not_found_url_for_globs arg | Skip url's for globs with HTTP_NOT_FOUND error | help |
--http_make_head_request arg | Allows the execution of a `HEAD` request while reading data from HTTP to retrieve information about the file to be read, such as its size | help |
--optimize_throw_if_noop arg | If setting is enabled and OPTIMIZE query didn't actually assign a merge then an explanatory exception is thrown | help |
--use_index_for_in_with_subqueries arg | Try using an index if there is a subquery or a table expression on the right side of the IN operator. | help |
--use_index_for_in_with_subqueries_max_values arg | The maximum size of set in the right hand side of the IN operator to use table index for filtering. | help |
--analyze_index_with_space_filling_curves arg | If a table has a space-filling curve in its index, e.g. `ORDER BY mortonEncode(x, y)`, and the query has conditions on its arguments, e.g. `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`, use the… | help |
--joined_subquery_requires_alias arg | Force joined subqueries and table functions to have aliases for correct name qualification. | help |
--empty_result_for_aggregation_by_empty_set arg | Return empty result when aggregating without keys on empty set. | help |
--empty_result_for_aggregation_by_constant_keys_on_empty_set arg | Return empty result when aggregating by constant keys on empty set. | help |
--allow_distributed_ddl arg | If it is set to true, then a user is allowed to executed distributed DDL queries. | help |
--allow_suspicious_codecs arg | If it is set to true, allow to specify meaningless compression codecs. | help |
--allow_experimental_codecs arg | If it is set to true, allow to specify experimental compression codecs (but we don't have those yet and this option does nothing). | help |
--enable_deflate_qpl_codec arg | Enable/disable the DEFLATE_QPL codec. | help |
--enable_zstd_qat_codec arg | Enable/disable the ZSTD_QAT codec. | help |
--query_profiler_real_time_period_ns arg | Period for real clock timer of query profiler (in nanoseconds). | help |
--query_profiler_cpu_time_period_ns arg | Period for CPU clock timer of query profiler (in nanoseconds). | help |
--metrics_perf_events_enabled arg | If enabled, some of the perf events will be measured throughout queries' execution. | help |
--metrics_perf_events_list arg | Comma separated list of perf metrics that will be measured throughout queries' execution. | help |
--opentelemetry_start_trace_probability arg | Probability to start an OpenTelemetry trace for an incoming query. | help |
--opentelemetry_trace_processors arg | Collect OpenTelemetry spans for processors. | help |
--prefer_column_name_to_alias arg | Prefer using column names instead of aliases if possible. | help |
--allow_experimental_analyzer arg | Allow experimental analyzer. | help |
--analyzer_compatibility_join_using_top_level_identifier arg | Force to resolve identifier in JOIN USING from projection (for example, in `SELECT a + 1 AS b FROM t1 JOIN t2 USING (b)` join will be performed by `t1.a + 1 = t2.b`, rather then `t1.b = t2.b`). | help |
--prefer_global_in_and_join arg | If enabled, all IN/JOIN operators will be rewritten as GLOBAL IN/JOIN. | help |
--enable_vertical_final arg | Not recommended. | help |
--max_rows_to_read arg | Limit on read rows from the most 'deep' sources. | help |
--max_bytes_to_read arg | Limit on read bytes (after decompression) from the most 'deep' sources. | help |
--read_overflow_mode arg | What to do when the limit is exceeded. | help |
--max_rows_to_read_leaf arg | Limit on read rows on the leaf nodes for distributed queries. | help |
--max_bytes_to_read_leaf arg | Limit on read bytes (after decompression) on the leaf nodes for distributed queries. | help |
--read_overflow_mode_leaf arg | What to do when the leaf limit is exceeded. | help |
--max_rows_to_group_by arg | If aggregation during GROUP BY is generating more than the specified number of rows (unique GROUP BY keys), the behavior will be determined by the 'group_by_overflow_mode' which by default is - throw… | help |
--group_by_overflow_mode arg | What to do when the limit is exceeded. | help |
--max_bytes_before_external_group_by arg | If memory usage during GROUP BY operation is exceeding this threshold in bytes, activate the 'external aggregation' mode (spill data to disk). | help |
--max_rows_to_sort arg | If more than the specified amount of records have to be processed for ORDER BY operation, the behavior will be determined by the 'sort_overflow_mode' which by default is - throw an exception | help |
--max_bytes_to_sort arg | If more than the specified amount of (uncompressed) bytes have to be processed for ORDER BY operation, the behavior will be determined by the 'sort_overflow_mode' which by default is - throw an… | help |
--sort_overflow_mode arg | What to do when the limit is exceeded. | help |
--max_bytes_before_external_sort arg | If memory usage during ORDER BY operation is exceeding this threshold in bytes, activate the 'external sorting' mode (spill data to disk). | help |
--max_bytes_before_remerge_sort arg | In case of ORDER BY with LIMIT, when memory usage is higher than specified threshold, perform additional steps of merging blocks before final merge to keep just top LIMIT rows. | help |
--remerge_sort_lowered_memory_bytes_ratio arg | If memory usage after remerge does not reduced by this ratio, remerge will be disabled. | help |
--max_result_rows arg | Limit on result size in rows. | help |
--max_result_bytes arg | Limit on result size in bytes (uncompressed). | help |
--result_overflow_mode arg | What to do when the limit is exceeded. | help |
--max_execution_time arg | If query runtime exceeds the specified number of seconds, the behavior will be determined by the 'timeout_overflow_mod e', which by default is - throw an exception. | help |
--timeout_overflow_mode arg | What to do when the limit is exceeded. | help |
--max_execution_time_leaf arg | Similar semantic to max_execution_time but only apply on leaf node for distributed queries, the time out behavior will be determined by 'timeout_overflow_mode_leaf' which by default is - throw an… | help |
--timeout_overflow_mode_leaf arg | What to do when the leaf limit is exceeded. | help |
--min_execution_speed arg | Minimum number of execution rows per second. | help |
--max_execution_speed arg | Maximum number of execution rows per second. | help |
--min_execution_speed_bytes arg | Minimum number of execution bytes per second. | help |
--max_execution_speed_bytes arg | Maximum number of execution bytes per second. | help |
--timeout_before_checking_execution_speed arg | Check that the speed is not too low after the specified time has elapsed. | help |
--max_estimated_execution_time arg | Maximum query estimate execution time in seconds. | help |
--max_columns_to_read arg | If a query requires reading more than specified number of columns, exception is thrown. | help |
--max_temporary_columns arg | If a query generates more than the specified number of temporary columns in memory as a result of intermediate calculation, exception is thrown. | help |
--max_temporary_non_const_columns arg | Similar to the 'max_temporary_columns' setting but applies only to non-constant columns. | help |
--max_sessions_for_user arg | Maximum number of simultaneous sessions for a user. | help |
--max_subquery_depth arg | If a query has more than the specified number of nested subqueries, throw an exception. | help |
--max_analyze_depth arg | Maximum number of analyses performed by interpreter. | help |
--max_ast_depth arg | Maximum depth of query syntax tree. | help |
--max_ast_elements arg | Maximum size of query syntax tree in number of nodes. | help |
--max_expanded_ast_elements arg | Maximum size of query syntax tree in number of nodes after expansion of aliases and the asterisk. | help |
--readonly arg | 0 - no read-only restrictions. | help |
--max_rows_in_set arg | Maximum size of the set (in number of elements) resulting from the execution of the IN section. | help |
--max_bytes_in_set arg | Maximum size of the set (in bytes in memory) resulting from the execution of the IN section. | help |
--set_overflow_mode arg | What to do when the limit is exceeded. | help |
--max_rows_in_join arg | Maximum size of the hash table for JOIN (in number of rows). | help |
--max_bytes_in_join arg | Maximum size of the hash table for JOIN (in number of bytes in memory). | help |
--join_overflow_mode arg | What to do when the limit is exceeded. | help |
--join_any_take_last_row arg | When disabled (default) ANY JOIN will take the first found row for a key. | help |
--join_algorithm arg | Specify join algorithm. | help |
--default_max_bytes_in_join arg | Maximum size of right-side table if limit is required but max_bytes_in_join is not set. | help |
--partial_merge_join_left_table_buffer_bytes arg | If not 0 group left table blocks in bigger ones for left-side table in partial merge join. | help |
--partial_merge_join_rows_in_right_blocks arg | Split right-hand joining data in blocks of specified size. | help |
--join_on_disk_max_files_to_merge arg | For MergeJoin on disk set how much files it's allowed to sort simultaneously. | help |
--max_rows_in_set_to_optimize_join arg | Maximal size of the set to filter joined tables by each other row sets before joining. | help |
--compatibility_ignore_collation_in_create_table arg | Compatibility ignore collation in create table | help |
--temporary_files_codec arg | Set compression codec for temporary files produced by (JOINs, external GROUP BY, external ORDER BY). | help |
--max_rows_to_transfer arg | Maximum size (in rows) of the transmitted external table obtained when the GLOBAL IN/JOIN section is executed. | help |
--max_bytes_to_transfer arg | Maximum size (in uncompressed bytes) of the transmitted external table obtained when the GLOBAL IN/JOIN section is executed. | help |
--transfer_overflow_mode arg | What to do when the limit is exceeded. | help |
--max_rows_in_distinct arg | Maximum number of elements during execution of DISTINCT. | help |
--max_bytes_in_distinct arg | Maximum total size of state (in uncompressed bytes) in memory for the execution of DISTINCT. | help |
--distinct_overflow_mode arg | What to do when the limit is exceeded. | help |
--max_memory_usage arg | Maximum memory usage for processing of single query. | help |
--memory_overcommit_ratio_denominator arg | It represents soft memory limit on the user level. | help |
--max_memory_usage_for_user arg | Maximum memory usage for processing all concurrently running queries for the user. | help |
--memory_overcommit_ratio_denominator_for_user arg | It represents soft memory limit on the global level. | help |
--max_untracked_memory arg | Small allocations and deallocations are grouped in thread local variable and tracked or profiled only when amount (in absolute value) becomes larger than specified value. | help |
--memory_profiler_step arg | Whenever query memory usage becomes larger than every next step in number of bytes the memory profiler will collect the allocating stack trace. | help |
--memory_profiler_sample_probability arg | Collect random allocations and deallocations and write them into system.trace_log with 'MemorySample' trace_type. | help |
--memory_profiler_sample_min_allocation_size arg | Collect random allocations of size greater or equal than specified value with probability equal to `memory_profiler_sample_probability`. | help |
--memory_profiler_sample_max_allocation_size arg | Collect random allocations of size less or equal than specified value with probability equal to `memory_profiler_sample_probability`. | help |
--trace_profile_events arg | Send to system.trace_log profile event and value of increment on each increment with 'ProfileEvent' trace_type | help |
--memory_usage_overcommit_max_wait_microseconds arg | Maximum time thread will wait for memory to be freed in the case of memory overcommit. | help |
--max_network_bandwidth arg | The maximum speed of data exchange over the network in bytes per second for a query. | help |
--max_network_bytes arg | The maximum number of bytes (compressed) to receive or transmit over the network for execution of the query. | help |
--max_network_bandwidth_for_user arg | The maximum speed of data exchange over the network in bytes per second for all concurrently running user queries. | help |
--max_network_bandwidth_for_all_users arg | The maximum speed of data exchange over the network in bytes per second for all concurrently running queries. | help |
--max_temporary_data_on_disk_size_for_user arg | The maximum amount of data consumed by temporary files on disk in bytes for all concurrently running user queries. | help |
--max_temporary_data_on_disk_size_for_query arg | The maximum amount of data consumed by temporary files on disk in bytes for all concurrently running queries. | help |
--backup_restore_keeper_max_retries arg | Max retries for keeper operations during backup or restore | help |
--backup_restore_keeper_retry_initial_backoff_ms arg | Initial backoff timeout for [Zoo]Keeper operations during backup or restore | help |
--backup_restore_keeper_retry_max_backoff_ms arg | Max backoff timeout for [Zoo]Keeper operations during backup or restore | help |
--backup_restore_keeper_fault_injection_probability arg | Approximate probability of failure for a keeper request during backup or restore. | help |
--backup_restore_keeper_fault_injection_seed arg | 0 - random seed, otherwise the setting value | help |
--backup_restore_keeper_value_max_size arg | Maximum size of data of a [Zoo]Keeper's node during backup | help |
--backup_restore_batch_size_for_keeper_multiread arg | Maximum size of batch for multiread request to [Zoo]Keeper during backup or restore | help |
--backup_restore_batch_size_for_keeper_multi arg | Maximum size of batch for multi request to [Zoo]Keeper during backup or restore | help |
--max_backup_bandwidth arg | The maximum read speed in bytes per second for particular backup on server. | help |
--log_profile_events arg | Log query performance statistics into the query_log, query_thread_log and query_views_log. | help |
--log_query_settings arg | Log query settings into the query_log. | help |
--log_query_threads arg | Log query threads into system.query_thread_log table. | help |
--log_query_views arg | Log query dependent views into system.query_views_log table. | help |
--send_logs_level arg | Send server text logs with specified minimum level to client. | help |
--send_logs_source_regexp arg | Send server text logs with specified regexp to match log source name. | help |
--enable_optimize_predicate_expression arg | If it is set to true, optimize predicates to subqueries. | help |
--enable_optimize_predicate_expression_to_final_subquery arg | Allow push predicate to final subquery. | help |
--allow_push_predicate_when_subquery_contains_with arg | Allows push predicate when subquery contains WITH clause | help |
--low_cardinality_max_dictionary_size arg | Maximum size (in rows) of shared global dictionary for LowCardinality type. | help |
--low_cardinality_use_single_dictionary_for_part arg | LowCardinality type serialization setting. | help |
--decimal_check_overflow arg | Check overflow of decimal arithmetic/comparison operations | help |
--allow_custom_error_code_in_throwif arg | Enable custom error code in function throwIf(). | help |
--prefer_localhost_replica arg | If it's true then queries will be always sent to local replica (if it exists). | help |
--max_fetch_partition_retries_count arg | Amount of retries while fetching partition from another host. | help |
--http_max_multipart_form_data_size arg | Limit on size of multipart/form-data content. | help |
--calculate_text_stack_trace arg | Calculate text stack trace in case of exceptions during query execution. | help |
--enable_job_stack_trace arg | Output stack trace of a job creator when job results in exception | help |
--allow_ddl arg | If it is set to true, then a user is allowed to executed DDL queries. | help |
--parallel_view_processing arg | Enables pushing to attached views concurrently instead of sequentially. | help |
--enable_unaligned_array_join arg | Allow ARRAY JOIN with multiple arrays that have different sizes. | help |
--optimize_read_in_order arg | Enable ORDER BY optimization for reading data in corresponding order in MergeTree tables. | help |
--optimize_read_in_window_order arg | Enable ORDER BY optimization in window clause for reading data in corresponding order in MergeTree tables. | help |
--optimize_aggregation_in_order arg | Enable GROUP BY optimization for aggregating data in corresponding order in MergeTree tables. | help |
--aggregation_in_order_max_block_bytes arg | Maximal size of block in bytes accumulated during aggregation in order of primary key. | help |
--read_in_order_two_level_merge_threshold arg | Minimal number of parts to read to run preliminary merge step during multithread reading in order of primary key. | help |
--low_cardinality_allow_in_native_format arg | Use LowCardinality type in Native format. | help |
--cancel_http_readonly_queries_on_client_close arg | Cancel HTTP readonly queries when a client closes the connection without waiting for response. | help |
--external_table_functions_use_nulls arg | If it is set to true, external table functions will implicitly use Nullable type if needed. | help |
--external_table_strict_query arg | If it is set to true, transforming expression to local filter is forbidden for queries to external tables. | help |
--allow_hyperscan arg | Allow functions that use Hyperscan library. | help |
--max_hyperscan_regexp_length arg | Max length of regexp than can be used in hyperscan multi-match functions. | help |
--max_hyperscan_regexp_total_length arg | Max total length of all regexps than can be used in hyperscan multi-match functions (per every function). | help |
--reject_expensive_hyperscan_regexps arg | Reject patterns which will likely be expensive to evaluate with hyperscan (due to NFA state explosion) | help |
--allow_simdjson arg | Allow using simdjson library in 'JSON*' functions if AVX2 instructions are available. | help |
--allow_introspection_functions arg | Allow functions for introspection of ELF and DWARF for query profiling. | help |
--splitby_max_substrings_includes_remaining_string arg | Functions 'splitBy*()' with 'max_substrings' argument > 0 include the remaining string as last element in the result | help |
--allow_execute_multiif_columnar arg | Allow execute multiIf function columnar | help |
--formatdatetime_f_prints_single_zero arg | Formatter '%f' in function 'formatDateTime()' prints a single zero instead of six zeros if the formatted value has no fractional seconds. | help |
--formatdatetime_parsedatetime_m_is_month_name arg | Formatter '%M' in functions 'formatDateTime()' and 'parseDateTime()' print/parse the month name instead of minutes. | help |
--parsedatetime_parse_without_leading_zeros arg | Formatters '%c', '%l' and '%k' in function 'parseDateTime()' parse months and hours without leading zeros. | help |
--formatdatetime_format_without_leading_zeros arg | Formatters '%c', '%l' and '%k' in function 'formatDateTime()' print months and hours without leading zeros. | help |
--max_partitions_per_insert_block arg | Limit maximum number of partitions in single INSERTed block. | help |
--throw_on_max_partitions_per_insert_block arg | Used with max_partitions_per_insert_blo ck. | help |
--max_partitions_to_read arg | Limit the max number of partitions that can be accessed in one query. | help |
--check_query_single_value_result arg | Return check query result as single 1/0 value | help |
--allow_drop_detached arg | Allow ALTER TABLE ... | help |
--max_table_size_to_drop arg | If size of a table is greater than this value (in bytes) than table could not be dropped with any DROP query. | help |
--max_partition_size_to_drop arg | Same as max_table_size_to_drop, but for the partitions. | help |
--postgresql_connection_pool_size arg | Connection pool size for PostgreSQL table engine and database engine. | help |
--postgresql_connection_pool_wait_timeout arg | Connection pool push/pop timeout on empty pool for PostgreSQL table engine and database engine. | help |
--postgresql_connection_pool_auto_close_connection arg | Close connection before returning connection to the pool. | help |
--glob_expansion_max_elements arg | Maximum number of allowed addresses (For external storages, table functions, etc). | help |
--odbc_bridge_connection_pool_size arg | Connection pool size for each connection settings string in ODBC bridge. | help |
--odbc_bridge_use_connection_pooling arg | Use connection pooling in ODBC bridge. | help |
--distributed_replica_error_half_life arg | Time period reduces replica error counter by 2 times. | help |
--distributed_replica_error_cap arg | Max number of errors per replica, prevents piling up an incredible amount of errors if replica was offline for some time and allows it to be reconsidered in a shorter amount of time. | help |
--distributed_replica_max_ignored_errors arg | Number of errors that will be ignored while choosing replicas | help |
--allow_experimental_live_view arg | Enable LIVE VIEW. | help |
--live_view_heartbeat_interval arg | The heartbeat interval in seconds to indicate live query is alive. | help |
--max_live_view_insert_blocks_before_refresh arg | Limit maximum number of inserted blocks after which mergeable blocks are dropped and query is re-executed. | help |
--allow_experimental_window_view arg | Enable WINDOW VIEW. | help |
--window_view_clean_interval arg | The clean interval of window view in seconds to free outdated data. | help |
--window_view_heartbeat_interval arg | The heartbeat interval in seconds to indicate watch query is alive. | help |
--wait_for_window_view_fire_signal_timeout arg | Timeout for waiting for window view fire signal in event time processing | help |
--min_free_disk_space_for_temporary_data arg | The minimum disk space to keep while writing temporary data used in external sorting and aggregation. | help |
--default_temporary_table_engine arg | Default table engine used when ENGINE is not set in CREATE TEMPORARY statement. | help |
--default_table_engine arg | Default table engine used when ENGINE is not set in CREATE statement. | help |
--show_table_uuid_in_table_create_query_if_not_nil arg | For tables in databases with Engine=Atomic show UUID of the table in its CREATE query. | help |
--database_atomic_wait_for_drop_and_detach_synchronously arg | When executing DROP or DETACH TABLE in Atomic database, wait for table data to be finally dropped or detached. | help |
--enable_scalar_subquery_optimization arg | If it is set to true, prevent scalar subqueries from (de)serializing large scalar values and possibly avoid running the same subquery more than once. | help |
--optimize_trivial_count_query arg | Process trivial 'SELECT count() FROM table' query from metadata. | help |
--optimize_trivial_approximate_count_query arg | Use an approximate value for trivial count optimization of storages that support such estimations. | help |
--optimize_count_from_files arg | Optimize counting rows from files in supported input formats | help |
--use_cache_for_count_from_files arg | Use cache to count the number of rows in files | help |
--optimize_respect_aliases arg | If it is set to true, it will respect aliases in WHERE/GROUP BY/ORDER BY, that will help with partition pruning/secondary indexes/optimize_aggr egation_in_order/optimize_read_in_order… | help |
--mutations_sync arg | Wait for synchronous execution of ALTER TABLE UPDATE/DELETE queries (mutations). | help |
--enable_lightweight_delete arg | Enable lightweight DELETE mutations for mergetree tables. | help |
--allow_experimental_lightweight_delete arg | Enable lightweight DELETE mutations for mergetree tables. | help |
--apply_deleted_mask arg | Enables filtering out rows deleted with lightweight DELETE. | help |
--optimize_normalize_count_variants arg | Rewrite aggregate functions that semantically equals to count() as count(). | help |
--optimize_injective_functions_inside_uniq arg | Delete injective functions of one argument inside uniq*() functions. | help |
--rewrite_count_distinct_if_with_count_distinct_implementation arg | Rewrite countDistinctIf with count_distinct_implementation configuration | help |
--convert_query_to_cnf arg | Convert SELECT query to CNF | help |
--optimize_or_like_chain arg | Optimize multiple OR LIKE into multiMatchAny. | help |
--optimize_arithmetic_operations_in_aggregate_functions arg | Move arithmetic operations out of aggregation functions | help |
--optimize_redundant_functions_in_order_by arg | Remove functions from ORDER BY if its argument is also in ORDER BY | help |
--optimize_if_chain_to_multiif arg | Replace if(cond1, then1, if(cond2, ...)) chains to multiIf. | help |
--optimize_multiif_to_if arg | Replace 'multiIf' with only one condition to 'if'. | help |
--optimize_if_transform_strings_to_enum arg | Replaces string-type arguments in If and Transform to enum. | help |
--optimize_monotonous_functions_in_order_by arg | Replace monotonous function with its argument in ORDER BY | help |
--optimize_functions_to_subcolumns arg | Transform functions to subcolumns, if possible, to reduce amount of read data. | help |
--optimize_using_constraints arg | Use constraints for query optimization | help |
--optimize_substitute_columns arg | Use constraints for column substitution | help |
--optimize_append_index arg | Use constraints in order to append index condition (indexHint) | help |
--optimize_time_filter_with_preimage arg | Optimize Date and DateTime predicates by converting functions into equivalent comparisons without conversions (e.g. toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31') | help |
--normalize_function_names arg | Normalize function names to their canonical names | help |
--enable_early_constant_folding arg | Enable query optimization where we analyze function and subqueries results and rewrite query if there are constants there | help |
--deduplicate_blocks_in_dependent_materialized_views arg | Should deduplicate blocks for materialized views if the block is not a duplicate for the table. | help |
--throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert arg | Throw exception on INSERT query when the setting `deduplicate_blocks_in_depe ndent_materialized_views` is enabled along with `async_insert`. | help |
--update_insert_deduplication_token_in_dependent_materialized_views arg | Should update insert deduplication token with table identifier during insert in dependent materialized views. | help |
--materialized_views_ignore_errors arg | Allows to ignore errors for MATERIALIZED VIEW, and deliver original block to the table regardless of MVs | help |
--ignore_materialized_views_with_dropped_target_table arg | Ignore MVs with dropped target table during pushing to views | help |
--allow_experimental_refreshable_materialized_view arg | Allow refreshable materialized views (CREATE MATERIALIZED VIEW <name> REFRESH ...). | help |
--stop_refreshable_materialized_views_on_startup arg | On server startup, prevent scheduling of refreshable materialized views, as if with SYSTEM STOP VIEWS. | help |
--use_compact_format_in_distributed_parts_names arg | Changes format of directories names for distributed table insert parts. | help |
--validate_polygons arg | Throw exception if polygon is invalid in function pointInPolygon (e.g. self-tangent, self-intersecting). | help |
--max_parser_depth arg | Maximum parser depth (recursion depth of recursive descend parser). | help |
--max_parser_backtracks arg | Maximum parser backtracking (how many times it tries different alternatives in the recursive descend parsing process). | help |
--allow_settings_after_format_in_insert arg | Allow SETTINGS after FORMAT, but note, that this is not always safe (note: this is a compatibility setting). | help |
--periodic_live_view_refresh arg | Interval after which periodically refreshed live view is forced to refresh. | help |
--transform_null_in arg | If enabled, NULL values will be matched with 'IN' operator as if they are considered equal. | help |
--allow_nondeterministic_mutations arg | Allow non-deterministic functions in ALTER UPDATE/ALTER DELETE statements | help |
--lock_acquire_timeout arg | How long locking request should wait before failing | help |
--materialize_ttl_after_modify arg | Apply TTL for old data, after ALTER MODIFY TTL query | help |
--function_implementation arg | Choose function implementation for specific target or variant (experimental). | help |
--data_type_default_nullable arg | Data types without NULL or NOT NULL will make Nullable | help |
--cast_keep_nullable arg | CAST operator keep Nullable for result data type | help |
--cast_ipv4_ipv6_default_on_conversion_error arg | CAST operator into IPv4, CAST operator into IPV6 type, toIPv4, toIPv6 functions will return default value instead of throwing exception on conversion error. | help |
--alter_partition_verbose_result arg | Output information about affected parts. | help |
--allow_experimental_database_materialized_mysql arg | Allow to create database with Engine=MaterializedMySQL(...). | help |
--allow_experimental_database_materialized_postgresql arg | Allow to create database with Engine=MaterializedPostgreSQL(...). | help |
--system_events_show_zero_values arg | When querying system.events or system.metrics tables, include all metrics, even with zero values. | help |
--mysql_datatypes_support_level arg | Which MySQL types should be converted to corresponding ClickHouse types (rather than being represented as String). | help |
--optimize_trivial_insert_select arg | Optimize trivial 'INSERT INTO table SELECT ... | help |
--allow_non_metadata_alters arg | Allow to execute alters which affects not only tables metadata, but also data on disk | help |
--enable_global_with_statement arg | Propagate WITH statements to UNION queries and all subqueries | help |
--aggregate_functions_null_for_empty arg | Rewrite all aggregate functions in a query, adding -OrNull suffix to them | help |
--optimize_syntax_fuse_functions arg | Allow apply fuse aggregating function. | help |
--flatten_nested arg | If true, columns of type Nested will be flatten to separate array columns instead of one array of tuples | help |
--asterisk_include_materialized_columns arg | Include MATERIALIZED columns for wildcard query | help |
--asterisk_include_alias_columns arg | Include ALIAS columns for wildcard query | help |
--optimize_skip_merged_partitions arg | Skip partitions with one part with level > 0 in optimize final | help |
--optimize_on_insert arg | Do the same transformation for inserted block of data as if merge was done on this block. | help |
--optimize_use_projections arg | Automatically choose projections to perform SELECT query | help |
--allow_experimental_projection_optimization arg | Automatically choose projections to perform SELECT query | help |
--optimize_use_implicit_projections arg | Automatically choose implicit projections to perform SELECT query | help |
--force_optimize_projection arg | If projection optimization is enabled, SELECT queries need to use projection | help |
--force_optimize_projection_name arg | If it is set to a non-empty string, check that this projection is used in the query at least once. | help |
--preferred_optimize_projection_name arg | If it is set to a non-empty string, ClickHouse tries to apply specified projection | help |
--async_socket_for_remote arg | Asynchronously read from socket executing remote query | help |
--async_query_sending_for_remote arg | Asynchronously create connections and send query to shards in remote query | help |
--insert_null_as_default arg | Insert DEFAULT values instead of NULL in INSERT SELECT (UNION ALL) | help |
--describe_extend_object_types arg | Deduce concrete type of columns of type Object in DESCRIBE query | help |
--describe_include_subcolumns arg | If true, subcolumns of all table columns will be included into result of DESCRIBE query | help |
--describe_include_virtual_columns arg | If true, virtual columns of table will be included into result of DESCRIBE query | help |
--describe_compact_output arg | If true, include only column names and types into result of DESCRIBE query | help |
--apply_mutations_on_fly arg | Only available in ClickHouse Cloud | help |
--mutations_execute_nondeterministic_on_initiator arg | If true nondeterministic function are executed on initiator and replaced to literals in UPDATE and DELETE queries | help |
--mutations_execute_subqueries_on_initiator arg | If true scalar subqueries are executed on initiator and replaced to literals in UPDATE and DELETE queries | help |
--mutations_max_literal_size_to_replace arg | The maximum size of serialized literal in bytes to replace in UPDATE and DELETE queries | help |
--create_replicated_merge_tree_fault_injection_probability arg | The probability of a fault injection during table creation after creating metadata in ZooKeeper | help |
--use_query_cache arg | Enable the query cache | help |
--enable_writes_to_query_cache arg | Enable storing results of SELECT queries in the query cache | help |
--enable_reads_from_query_cache arg | Enable reading results of SELECT queries from the query cache | help |
--query_cache_nondeterministic_function_handling arg | How the query cache handles queries with non-deterministic functions, e.g. now() | help |
--query_cache_max_size_in_bytes arg | The maximum amount of memory (in bytes) the current user may allocate in the query cache. | help |
--query_cache_max_entries arg | The maximum number of query results the current user may store in the query cache. | help |
--query_cache_min_query_runs arg | Minimum number a SELECT query must run before its result is stored in the query cache | help |
--query_cache_min_query_duration arg | Minimum time in milliseconds for a query to run for its result to be stored in the query cache. | help |
--query_cache_compress_entries arg | Compress cache entries. | help |
--query_cache_squash_partial_results arg | Squash partial result blocks to blocks of size 'max_block_size'. | help |
--query_cache_ttl arg | After this time in seconds entries in the query cache become stale | help |
--query_cache_share_between_users arg | Allow other users to read entry in the query cache | help |
--enable_sharing_sets_for_mutations arg | Allow sharing set objects build for IN subqueries between different tasks of the same mutation. | help |
--optimize_rewrite_sum_if_to_count_if arg | Rewrite sumIf() and sum(if()) function countIf() function when logically equivalent | help |
--optimize_rewrite_aggregate_function_with_if arg | Rewrite aggregate functions with if expression as argument when logically equivalent. | help |
--optimize_rewrite_array_exists_to_has arg | Rewrite arrayExists() functions to has() when logically equivalent. | help |
--insert_shard_id arg | If non zero, when insert into a distributed table, the data will be inserted into the shard `insert_shard_id` synchronously. | help |