Usage: clickhouse-client [--query <query>]
clickhouse-client is a client application that is used to connect to ClickHouse.
It can run queries as a command line tool if you pass queries as an argument
or as an interactive client.
Queries can run one at a time, or in a multiquery mode.
To change settings you may use SET statements and SETTINGS clause
in queries or set them for a session with corresponding arguments.
'clickhouse-client' command will try to connect to clickhouse-server running
on the same server. If you have credentials set up, pass them with
--user <username> --password <password> or with --ask-password argument
that will open command prompt.
Connect to tcp native port (9000) without encryption:
clickhouse-client --host clickhouse.example.com --password mysecretpassword
Connect to secure endpoint:
clickhouse-client --secure --host clickhouse.example.com --password mysecretpassword
Main options:
--help Print usage summary and exit; combine
with --verbose to display all options
--verbose Increase output verbosity
-V [ --version ] Print version and exit
--version-clean Print version in machine-readable
format and exit
-C [ --config-file ] arg
Path to config file
--proto_caps arg Enable/disable chunked protocol:
chunked_optional, notchunked,
notchunked_optional, send_chunked,
send_chunked_optional, send_notchunked,
send_notchunked_optional, recv_chunked,
recv_chunked_optional, recv_notchunked,
recv_notchunked_optional
-q [ --query ] arg
Query. Can be specified multiple times
(--query "SELECT 1" --query "SELECT 2")
or once with multiple
semicolon-separated queries (--query
"SELECT 1; SELECT 2;"). In the latter
case, INSERT queries with non-VALUE
format must be separated by empty
lines.
--queries-file arg
File path with queries to execute;
multiple files can be specified
(--queries-file file1 file2...)
-n [ --multiquery ]
Obsolete, does nothing
-m [ --multiline ]
If specified, allow multi-line queries
(Enter does not send the query)
-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 a file containing command
history
--history_max_entries arg (=1000000)
Maximum number of entries in the
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
--progress-table [=arg(=tty)] (=default)
Print a progress table with changing
metrics during query 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
--enable-progress-table-toggle arg (=1)
Enable toggling of the progress table
by pressing the control key (Space).
Only applicable in interactive mode
with the progress table enabled.
-A [ --disable_suggestion ]
Disable loading suggestions. Note that
suggestions are loaded asynchronously
through a second connection to
ClickHouse server. Recommended when
pasting queries with TAB characters.
--wait_for_suggestions_to_load
Load suggestion data synchronously
--suggestion_limit arg (=10000)
Suggestion limit for how many
databases, tables and columns to fetch
-t [ --time ] Print query execution time to stderr in
non-interactive mode (for benchmarks)
--memory-usage [=arg(=default)] (=none)
Print memory usage to stderr in
non-interactive mode (for benchmarks).
Values: 'none', 'default', 'readable'
--chime [=arg(=5)] (=5)
Emit the ASCII `BEL` control character
(`\x07`) to stderr when a query
finishes (on success and on error)
after running for at least this many
seconds. Useful to alert when a
long-running query completes. Default:
5 seconds (also used when `--chime` is
passed without a value). Pass `--chime
0` to disable. Only emitted when stderr
is attached to a terminal; redirected
stderr (file, pipe) is left untouched.
Whether the terminal makes a sound or
visual flash depends on the terminal's
user preferences.
--echo [=arg(=1)] Print queries before execution. Enabled
by default in interactive mode,
disabled in batch mode.
--echo-formatted [=arg(=1)]
Format the echoed queries. Enabled by
default in interactive mode, disabled
in batch mode.
--echo-query-id [=arg(=1)]
Print the query_id before execution.
Enabled by default in interactive mode,
disabled in batch mode.
--echo-query-separator arg
Print this separator before the
formatted echoed query (requires
--echo-formatted). Empty by default
(disabled).
--log-level arg Log level
--server_logs_file arg
Write server logs to specified file
-f [ --format ] arg
Default input and output format (maps
to the generic `format` setting). In
clickhouse-client only the default
output format (maps to
`output_format`). Use --input-format /
--output-format to set only one
direction.
--output-format arg
Default output format. Takes precedence
over --format.
-E [ --vertical ]
Same as --format=Vertical or FORMAT
Vertical or \G at end of command
--highlight arg (=1)
Toggle syntax highlighting of the
command prompt and the echoed queries
(can also use --hilite)
--hints arg (=1) Show as-you-type autocompletion hints
(ghost text) in interactive mode;
navigate with Up/Down or
Ctrl-Up/Ctrl-Down. Accept the inline
hint with Tab or Right; Enter accepts a
hint only after one is explicitly
selected, otherwise it runs the query.
Requires --highlight and suggestions
(disabled by --disable_suggestion).
Disable with --hints 0.
--ignore-error Do not stop processing after an error
occurred
--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)
--prompt arg Custom prompt string
--max_memory_usage_in_client arg
Set memory limit in client/local server
--client_logs_file arg
Path to a file for writing client logs.
Currently we only have fatal logs (when
the client crashes)
-c [ --config ] arg
config-file path (another shorthand)
--connection arg connection to use (from the client
config), by default connection name is
hostname
-s [ --secure ] Use TLS connection
--tls-sni-override arg
Override the SNI host name used for TLS
connections
--no-secure Don't use TLS connection
-u [ --user ] arg (=default)
user
--password arg password
--ask-password ask-password
--ssh-key-file arg
File containing the SSH private key for
authenticate with the server.
--ssh-key-passphrase arg
Passphrase for the SSH private key
specified by --ssh-key-file.
--quota_key arg A string to differentiate quotas when
the user have keyed quotas configured
on server
--jwt arg Use JWT for authentication
--one-time-password arg
Time-based one-time password (TOTP) for
two-factor authentication
--login Use OAuth 2.0 to login
--oauth-url arg The base URL for the OAuth 2.0
authorization server
--oauth-client-id arg
The client ID for the OAuth 2.0
application
--oauth-audience arg
The audience for the OAuth 2.0 token
--max_client_network_bandwidth arg
the maximum speed of data exchange over
the network for the client in bytes per
second.
--compression arg enable or disable compression (enabled
by default for remote communication and
disabled for localhost communication).
--query-fuzzer-runs arg (=0)
After executing every SELECT query, do
random mutations in it and run again
specified number of times. This is used
for testing to discover unexpected
corner cases.
--create-query-fuzzer-runs arg (=0)
--buzz-house-config arg
Path to configuration file for
BuzzHouse
--interleave-queries-file arg
file path with queries to execute
before every file from 'queries-file';
multiple files can be specified
(--queries-file file1 file2...); this
is needed to enable more aggressive
fuzzing of newly added tests (see
'query-fuzzer-runs' option)
--opentelemetry-traceparent arg
OpenTelemetry traceparent header as
described by W3C Trace Context
recommendation
--opentelemetry-tracestate arg
OpenTelemetry tracestate header as
described by W3C Trace Context
recommendation
--no-warnings disable warnings when client connects
to server
--no-server-client-version-message
suppress server-client version mismatch
message
--fake-drop Ignore all DROP queries, should be used
only for testing
--accept-invalid-certificate
Ignore certificate verification errors,
equal to config parameters
openSSL.client.invalidCertificateHandle
r.name=AcceptCertificateHandler and
openSSL.client.verificationMode=none
--inline-insert-data
Send INSERT data as is in the query
text instead of converting it to blocks
in the native format. The server will
parse the inline data itself, avoiding
the round-trip to receive table
structure.
External tables options:
--external marks the beginning of a clause. You
may have multiple sections like this,
for the number of tables being
transmitted
--file arg data file or - for stdin
--name arg (=_data)
name of the table
--format arg (=TabSeparated)
data format
--structure arg structure
--scalar Send as Scalar packet (not Data)
--types arg types
Hosts and ports options:
-h [ --host ] arg (=localhost)
Server hostname. Multiple hosts can be
passed via multiple argumentsExample of
usage: '--host host1 --host host2
--port port2 --host host3 ...'Each
'--port port' will be attached to the
last seen host that doesn't have a port
yet,if there is no such host, the port
will be attached to the next first host
or to default host.
--port arg server ports
All settings are documented at https://clickhouse.com/docs/operations/settings/settings.
Note: if clickhouse is installed, you can use 'clickhouse-client' invocation with a dash.
Example printing current longest running query on a server:
clickhouse-client --query \
'SELECT * FROM system.processes ORDER BY elapsed LIMIT 1 FORMAT Vertical'
Example creating table and inserting data:
clickhouse-client --multiquery --query \
'CREATE TABLE t (a Int) ENGINE = Memory; INSERT INTO t VALUES (1), (2), (3)'
In addition, --param_name=value can be specified for substitution of parameters for parameterized queries.
See also: https://clickhouse.com/docs/en/integrations/sql-clients/cli
Options (58)
| Option | Description | Source |
|---|---|---|
--help | Print usage summary and exit; | help |
--verbose | Increase output verbosity | help |
-V | Print version and exit | help |
--version-clean | Print version in machine-readable format and exit | help |
--proto_caps arg | Enable/disable chunked protocol: chunked_optional, notchunked, notchunked_optional, send_chunked, send_chunked_optional, send_notchunked, send_notchunked_optional, recv_chunked,… | help |
--queries-file arg | File path with queries to execute; | help |
--query_id arg | Query ID | help |
--history_file arg | Path to a file containing command history | help |
--wait_for_suggestions_to_load | Load suggestion data synchronously | help |
-t | Print query execution time to stderr in non-interactive mode (for benchmarks) | help |
--echo-formatted arg(=1) | Format the echoed queries. | help |
--echo-query-id arg(=1) | Print the query_id before execution. | help |
--echo-query-separator arg | Print this separator before the formatted echoed query (requires | help |
--log-level arg | Log level | help |
--server_logs_file arg | Write server logs to specified file | help |
--output-format arg | Default output format. | help |
--hints arg | Show as-you-type autocompletion hints (ghost text) in interactive mode; | help |
--ignore-error | Do not stop processing after an error occurred | 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 |
--prompt arg | Custom prompt string | help |
--max_memory_usage_in_client arg | Set memory limit in client/local server | help |
--client_logs_file arg | Path to a file for writing client logs. | help |
--connection arg | connection to use (from the client config), by default connection name is hostname | help |
-s | Use TLS connection | help |
--tls-sni-override arg | Override the SNI host name used for TLS connections | help |
--no-secure | Don't use TLS connection | help |
--password arg | password | help |
--ask-password | ask-password | help |
--ssh-key-file arg | File containing the SSH private key for authenticate with the server. | help |
--ssh-key-passphrase arg | Passphrase for the SSH private key specified by --ssh-key-file. | help |
--quota_key arg | A string to differentiate quotas when the user have keyed quotas configured on server | help |
--jwt arg | Use JWT for authentication | help |
--one-time-password arg | Time-based one-time password (TOTP) for two-factor authentication | help |
--login | Use OAuth 2.0 to login | help |
--oauth-url arg | The base URL for the OAuth 2.0 authorization server | help |
--oauth-client-id arg | The client ID for the OAuth 2.0 application | help |
--oauth-audience arg | The audience for the OAuth 2.0 token | help |
--max_client_network_bandwidth arg | the maximum speed of data exchange over the network for the client in bytes per second. | help |
--buzz-house-config arg | Path to configuration file for BuzzHouse | help |
--interleave-queries-file arg | file path with queries to execute before every file from 'queries-file'; | help |
--opentelemetry-traceparent arg | OpenTelemetry traceparent header as described by W3C Trace Context recommendation | help |
--opentelemetry-tracestate arg | OpenTelemetry tracestate header as described by W3C Trace Context recommendation | help |
--no-warnings | disable warnings when client connects to server | help |
--no-server-client-version-message | suppress server-client version mismatch message | help |
--fake-drop | Ignore all DROP queries, should be used only for testing | help |
--accept-invalid-certificate | Ignore certificate verification errors, equal to config parameters openSSL.client.invalidCertificateHandle r.name=AcceptCertificateHandler and openSSL.client.verificationMode=none | help |
--inline-insert-data | Send INSERT data as is in the query text instead of converting it to blocks in the native format. | help |
--external | marks the beginning of a clause. | help |
--file arg | data file or - for stdin | help |
--structure arg | structure | help |
--scalar | Send as Scalar packet (not Data) | help |
--types arg | types | help |
--port arg | server ports | help |