Connecting to a ClickHouse® cluster from applications
This section provides settings for connecting to Managed Service for ClickHouse® cluster hosts using command line tools, graphical IDEs, browser, and Docker container. To learn how to connect from your application code, see Code examples.
You can connect to public ClickHouse® cluster hosts only if using SSL certificates. The examples below assume that RootCA.crt and IntermediateCA.crt certificates are:
- Located in the
/usr/local/share/ca-certificates/Yandex/directory (for Ubuntu). - Imported to the trusted root certificate store (for Windows).
Connecting without SSL certificates is only supported for non-public hosts. If this is the case, internal virtual network traffic will not be encrypted for database connections.
Before connecting, configure security groups for the cluster, if required.
The examples for Linux were tested in the following environment:
- Yandex Cloud VM running Ubuntu 20.04 LTS.
- Bash:
5.0.16.
The examples for Windows were tested in the following environment:
- Local machine with Windows 10 Pro build
19042.1052. - PowerShell:
5.1.19041.
Command line tools
To see code examples with the host FQDN filled in, open the cluster page in the management console
clickhouse-client
Before connecting:
-
Add the ClickHouse® DEB repository
to your system:sudo apt update && sudo apt install --yes apt-transport-https ca-certificates dirmngr && \ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754 && \ echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \ /etc/apt/sources.list.d/clickhouse.list -
Install the dependencies:
sudo apt update && sudo apt install --yes clickhouse-client -
Download the
clickhouse-clientconfiguration file:mkdir -p ~/.clickhouse-client && \ wget "https://storage.yandexcloud.net/doc-files/clickhouse-client.conf.example" \ --output-document ~/.clickhouse-client/config.xml
clickhouse-client --host <FQDN_of_any_ClickHouse®_host> \
--user <username> \
--database <DB_name> \
--port 9000 \
--ask-password
clickhouse-client --host <FQDN_of_any_ClickHouse®_host> \
--secure \
--user <username> \
--database <DB_name> \
--port 9440 \
--ask-password
For instructions on retrieving a host’s FQDN, see this guide.
After you run the command, enter the user password to complete the connection process.
Once connected to the DBMS, run the SELECT version(); command.
mysql-client
Warning
Use the MySQL® client connection interface only if using the standard ClickHouse® interfaces is not possible for any reason.
Before connecting, install mysql:
sudo apt update && sudo apt install --yes mysql-client
mysql --host=<FQDN_of_any_ClickHouse®_host> \
--port=3306 \
--ssl-mode=DISABLED \
--user <username> \
--password \
<DB_name>
mysql --host=<FQDN_of_any_ClickHouse®_host> \
--port=3306 \
--ssl-ca=/usr/local/share/ca-certificates/Yandex/RootCA.crt \
--ssl-mode=VERIFY_IDENTITY \
--user=<username> \
--password \
<DB_name>
For instructions on retrieving a host’s FQDN, see this guide.
After you run the command, enter the user password to complete the connection process.
Once connected to the DBMS, run the SELECT version(); command.
cURL
Linux (Bash)/macOS (Zsh)
curl --header "X-ClickHouse-User: <DB_username>" \
--header "X-ClickHouse-Key: <DB_user_password>" \
'http://<FQDN_of_any_ClickHouse®_host>:8123/?database=<DB_name>&query=SELECT%20version()'
curl --cacert /usr/local/share/ca-certificates/Yandex/RootCA.crt \
--header "X-ClickHouse-User: <DB_username>" \
--header "X-ClickHouse-Key: <DB_user_password>" \
'https://<FQDN_of_any_ClickHouse®_host>:8443/?database=<DB_name>&query=SELECT%20version()'
For instructions on retrieving a host’s FQDN, see this guide.
Windows (PowerShell)
curl.exe `
--header "X-ClickHouse-User: <DB_username>" `
--header "X-ClickHouse-Key: <DB_user_password>" `
'http://<FQDN_of_any_ClickHouse®_host>:8123/?database=<DB_name>&query=SELECT+version()'
curl.exe `
--header "X-ClickHouse-User: <DB_username>" `
--header "X-ClickHouse-Key: <DB_user_password>" `
'https://<FQDN_of_any_ClickHouse®_host>:8443/?database=<DB_name>&query=SELECT+version()'
For instructions on retrieving a host’s FQDN, see this guide.
Connecting from graphical IDEs
Connections were tested in the following environment:
- Ubuntu 20.04, DBeaver:
22.2.4 - MacOS Monterey 12.7:
- JetBrains DataGrip:
2023.3.4 - DBeaver Community:
24.0.0
- JetBrains DataGrip:
You can only use graphical IDEs to connect to public cluster hosts with an SSL certificate.
To avoid connection errors, save the certificate
DataGrip
- Create a data source:
- Select File → New → Data Source → ClickHouse®.
- On the General tab:
- Configure the connection as follows:
- Host: FQDN of any ClickHouse® host or a special FQDN.
- Port:
8443. - User, Password: DB user name and password.
- Database: Name of the DB to connect to.
- Click Download to download the connection driver.
- Configure the connection as follows:
- On the SSH/SSL tab:
- Enable Use SSL.
- Specify the path to the directory that contains the file with the downloaded SSL certificate for the connection.
- Click Test Connection. If the connection is successful, you will see the connection status, DBMS information, and driver details.
- Click OK to save the data source.
DBeaver
- Create a new database connection:
- In the Database menu, select New connection.
- Select ClickHouse® from the database list.
- Click Next.
- Specify the connection settings on the Main tab:
- Host: FQDN of any ClickHouse® host or a special FQDN.
- Port:
8443. - DB/Schema: Name of the DB to connect to.
- Under Authentication, specify the DB user name and password.
- On the Driver properties tab:
- Click Download in the new window where the system prompts you to download the driver files.
- Specify the SSL connection parameters in the driver property list:
ssl:truesslrootcert:<path_to_saved_SSL_certificate_file>.
- Click Test connection .... If the connection is successful, you will see the connection status, DBMS information, and driver details.
- Click Done to save the database connection settings.
Connecting to a cluster from your browser
To run SQL queries from your browser, use:
-
ClickHouse® built-in SQL editor
ClickHouse® built-in SQL editor
To connect to a cluster host from the built-in SQL editor, specify the following in the browser address bar:
https://<FQDN_of_any_ClickHouse®_host>:8443/play
You can only connect to public cluster hosts. For instructions on retrieving a host’s FQDN, see this guide.
To connect to a cluster with automatic selection of an available host, use the following URL:
https://c-<cluster_ID>.rw.mdb.yandexcloud.net:8443/play: To connect to an available cluster host.https://<shard_name>.c-<cluster_ID>.rw.mdb.yandexcloud.net:8443/play: To connect to an available shard host.
To run database queries, enter your username and password in the top right corner of the page.
When you connect from the built-in editor, SQL queries run separately without creating a shared session with the ClickHouse® server. Therefore, queries running within the session, such as USE or SET, have no effect.
Yandex WebSQL
Note
This feature is at the Preview stage.
Use Yandex WebSQL to connect to a ClickHouse® cluster in Yandex Cloud.
Before creating a connection, make sure you have selected the right folder. If you have access to PostgreSQL, ClickHouse®, MySQL®, Greenplum®, Valkey™, or Yandex StoreDoc clusters previously created in that folder, they will automatically appear in the Yandex Cloud connections subsection. You will only need to create a connection to the appropriate database in the cluster.
Note
Yandex Managed Service for Trino is at the Preview stage. Currently, you cannot create connections to Yandex Managed Service for Trino in the Yandex WebSQL interface. However, if the current folder has a Yandex Managed Service for Trino cluster and the user can access it, the connection will be displayed in WebSQL, available for use.
WebSQL uses connections in Yandex MetaData Hub Connection Manager, so all connections configured in Connection Manager are automatically available in WebSQL provided that the user has the appropriate roles.
To create a connection to a Yandex Cloud managed database cluster:
- Make sure WebSQL access is enabled in the cluster settings.
- Open Yandex WebSQL Connections
. - In
Connections, click . - In the Database type field, select the database you need: PostgreSQL, ClickHouse®, MySQL®, Valkey™, Yandex StoreDoc, or Greenplum®.
- In the Cluster folder field, select the folder hosting the required cluster.
- In the Cluster field, select the managed database cluster you want to connect to.
- Specify the Username you will use to connect to cluster databases.
- Enter the user Password.
- List the Databases you want to connect to. You can only connect to the databases that exist in this cluster. The user you specified must have access to them.
- Click Create.
To build a query:
-
Under Connections
, select a database, table, or image. -
In the data panel, you will see a form with the default query:
SELECT * FROM <table_name> LIMIT 10; -
Use this query or edit it. The interface will suggest relevant parts of the query and highlight errors.
-
Click Run.
In the results panel, you will see a table with the query results.
When editing or running a query, you can use the following keyboard shortcuts (click to see the full list):
- Show suggestions: Ctrl + I , Ctrl + Space.
- Comment out a line: Ctrl + /.
- Run a query: Ctrl + Enter.
- Show suggestions: ⌘ + I , ⌃ + Space.
- Comment out a line: ⌘ + /.
- Run a query: ⌘ + ⏎.
Click
Before you connect from a Docker container
To connect to a Managed Service for ClickHouse® cluster from a Docker container, add the following lines to the Dockerfile:
# Connecting the DEB repository
RUN apt-get update && \
apt-get install wget --yes apt-transport-https ca-certificates dirmngr && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754 && \
echo "deb https://packages.clickhouse.com/deb stable main" | tee \
/etc/apt/sources.list.d/clickhouse.list && \
# Installing dependencies
apt-get update && \
apt-get install wget clickhouse-client --yes && \
# Downloading the configuration file for clickhouse-client
mkdir --parents ~/.clickhouse-client && \
wget "https://storage.yandexcloud.net/doc-files/clickhouse-client.conf.example" \
--output-document ~/.clickhouse-client/config.xml
# Connecting the DEB repository
RUN apt-get update && \
apt-get install wget --yes apt-transport-https ca-certificates dirmngr && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754 && \
echo "deb https://packages.clickhouse.com/deb stable main" | tee \
/etc/apt/sources.list.d/clickhouse.list && \
# Installing dependencies
apt-get update && \
apt-get install wget clickhouse-client --yes && \
# Downloading the configuration file for clickhouse-client
mkdir --parents ~/.clickhouse-client && \
wget "https://storage.yandexcloud.net/doc-files/clickhouse-client.conf.example" \
--output-document ~/.clickhouse-client/config.xml && \
# Getting SSL certificates
mkdir --parents /usr/local/share/ca-certificates/Yandex/ && \
wget "https://storage.yandexcloud.net/cloud-certs/RootCA.pem" \
--output-document /usr/local/share/ca-certificates/Yandex/RootCA.crt && \
wget "https://storage.yandexcloud.net/cloud-certs/IntermediateCA.pem" \
--output-document /usr/local/share/ca-certificates/Yandex/IntermediateCA.crt && \
chmod 655 \
/usr/local/share/ca-certificates/Yandex/RootCA.crt \
/usr/local/share/ca-certificates/Yandex/IntermediateCA.crt && \
update-ca-certificates
ClickHouse® is a registered trademark of ClickHouse, Inc