Le moyen le plus rapide et le plus simple de démarrer avec ClickHouse consiste à créer un nouveau service dans ClickHouse Cloud. Dans ce guide de démarrage rapide, nous vous aiderons à configurer votre environnement en trois étapes simples.
Créer un service ClickHouse
Pour créer un service ClickHouse gratuit dans ClickHouse Cloud, il vous suffit de suivre les étapes ci-dessous :
- Créez un compte sur la page d’inscription
- Vous pouvez vous inscrire avec votre adresse e-mail, ou via Google SSO, Microsoft SSO, AWS Marketplace, Google Cloud ou Microsoft Azure
- Si vous vous inscrivez avec une adresse e-mail et un mot de passe, pensez à vérifier votre adresse e-mail dans les 24 heures en cliquant sur le lien reçu par e-mail
- Connectez-vous avec le nom d’utilisateur et le mot de passe que vous venez de créer

Une fois connecté, ClickHouse Cloud lance l’assistant d’intégration, qui vous guide dans la création d’un nouveau service ClickHouse. Sélectionnez la région dans laquelle déployer le service, puis donnez un nom à votre nouveau service :

Par défaut, les nouvelles organisations sont placées dans le niveau Scale et créent 3 répliques, chacune disposant de 4 vCPU et de 16 GiB de RAM. Le dimensionnement automatique vertical est activé par défaut dans le niveau Scale. Vous pourrez modifier ultérieurement le niveau de votre organisation sur la page 'Plans'.
Personnalisez les ressources du service si nécessaire en définissant les tailles minimale et maximale entre lesquelles les répliques peuvent évoluer. Lorsque vous êtes prêt, sélectionnez Create service.

Félicitations ! Votre service ClickHouse Cloud est opérationnel et l’intégration est terminée. Poursuivez votre lecture pour savoir comment commencer à ingérer et à interroger vos données.
Se connecter à ClickHouse
Il existe deux façons de vous connecter à ClickHouse :
- Utiliser notre console SQL web
- Vous connecter avec votre application
Utiliser la console SQL
Pour démarrer rapidement, ClickHouse propose une console SQL web vers laquelle vous serez redirigé une fois l’onboarding terminé.

Créez un onglet de requête et saisissez une requête simple pour vérifier que votre connexion fonctionne :
SHOW databasesVous devriez voir 4 bases de données dans la liste, en plus de celles que vous avez éventuellement ajoutées.

C'est tout : vous pouvez commencer à utiliser votre nouveau service ClickHouse !
Connectez votre application
Cliquez sur le bouton Connect dans le menu de navigation. Une fenêtre modale s'ouvrira, affichant les identifiants de votre service et des instructions pour vous connecter à l'aide de votre interface ou de vos clients de langage.

Si votre client de langage n'est pas répertorié, consultez notre liste d'intégrations.
Ajouter des données
ClickHouse est bien meilleur avec des données ! Il existe plusieurs façons d'ajouter des données, et la plupart sont accessibles depuis la page Data Sources, disponible dans le menu de navigation.

Vous pouvez procéder au téléversement des données selon les méthodes suivantes :
- Configurez un ClickPipe pour commencer à ingérer des données depuis des sources telles que S3, Postgres, Kafka ou GCS
- Utilisez la console SQL
- Utilisez le client ClickHouse
- Téléversez un fichier - les formats acceptés incluent JSON, CSV et TSV
- Téléversez des données à partir de l’URL d’un fichier
ClickPipes
ClickPipes est une plateforme d'intégration gérée qui rend l'ingestion de données depuis un large éventail de sources aussi simple que quelques clics. Conçue pour les charges de travail les plus exigeantes, l'architecture robuste et évolutive de ClickPipes garantit des performances et une fiabilité constantes. ClickPipes peut être utilisé aussi bien pour des besoins de streaming à long terme que pour un chargement de données ponctuel.

Ajouter des données depuis la SQL Console
Comme la plupart des systèmes de gestion de bases de données, ClickHouse regroupe logiquement les tables au sein de bases de données. Utilisez la commande CREATE DATABASE pour créer une nouvelle base de données dans ClickHouse :
CREATE DATABASE IF NOT EXISTS helloworldExécutez la commande suivante pour créer une table nommée my_first_table dans la base de données helloworld :
CREATE TABLE helloworld.my_first_table
(
user_id UInt32,
message String,
timestamp DateTime,
metric Float32
)
ENGINE = MergeTree()
PRIMARY KEY (user_id, timestamp)Dans l'exemple ci‑dessus, my_first_table est une table MergeTree comportant quatre colonnes :
user_id: un entier non signé de 32 bits (UInt32)message: un type de données String, qui remplace des types tels queVARCHAR,BLOB,CLOBet d’autres utilisés dans d’autres systèmes de bases de donnéestimestamp: une valeur DateTime représentant un instant donnémetric: un nombre à virgule flottante de 32 bits (Float32)
Brève introduction aux clés primaires
Avant d'aller plus loin, il est important de comprendre comment fonctionnent les clés primaires dans ClickHouse (leur mise en œuvre peut sembler surprenante !) :
- les clés primaires dans ClickHouse ne sont pas uniques pour chaque ligne d’une table
La clé primaire d'une table ClickHouse détermine la manière dont les données sont triées lorsqu'elles sont écrites sur le disque. Toutes les 8 192 lignes ou 10 Mo de
données (appelées index granularity) créent une entrée dans le fichier d'index de la clé primaire. Ce concept de granularité
crée un index sparse qui peut facilement tenir en mémoire, et les granules représentent une bande correspondant à la plus petite quantité de
données de colonne traitée lors des requêtes SELECT.
La clé primaire peut être définie à l'aide du paramètre PRIMARY KEY. Si vous définissez une table sans spécifier de PRIMARY KEY,
la clé devient alors le tuple indiqué dans la clause ORDER BY. Si vous spécifiez à la fois une PRIMARY KEY et un ORDER BY, la clé primaire doit être un sous-ensemble de l'ordre de tri.
La clé primaire est également la clé de tri, qui est le tuple (user_id, timestamp). Par conséquent, les données stockées dans chaque
fichier de colonne seront triées par user_id, puis par timestamp.
Pour un approfondissement des concepts fondamentaux de ClickHouse, consultez "Concepts fondamentaux".
Insérer des données dans votre table
Avec ClickHouse, vous pouvez utiliser la commande familière INSERT INTO TABLE, mais il est important de comprendre que chaque insertion dans une table MergeTree provoque la création d'une part dans le stockage.
Même pour un exemple simple, insérons plusieurs lignes à la fois :
INSERT INTO helloworld.my_first_table (user_id, message, timestamp, metric) VALUES
(101, 'Hello, ClickHouse!', now(), -1.0 ),
(102, 'Insert a lot of rows per batch', yesterday(), 1.41421 ),
(102, 'Sort your data based on your commonly-used queries', today(), 2.718 ),
(101, 'Granules are the smallest chunks of data read', now() + 5, 3.14159 )Vérifions que cela a bien fonctionné :
SELECT * FROM helloworld.my_first_tableAjouter des données à l'aide du ClickHouse Client
Vous pouvez également vous connecter à votre service ClickHouse Cloud à l'aide de l'outil en ligne de commande clickhouse client. Cliquez sur « Connect » dans le menu de gauche pour accéder à ces informations. Dans la boîte de dialogue, sélectionnez « Native » dans la liste déroulante :

-
Installez ClickHouse.
-
Exécutez la commande en remplaçant le hostname, le username et le password par les vôtres :
./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password>Si le prompt en forme de smiley s'affiche, vous pouvez commencer à exécuter des requêtes !
:)- Essayez d’exécuter la requête suivante :
SELECT *
FROM helloworld.my_first_table
ORDER BY timestampRemarquez que la réponse est renvoyée sous la forme d’un tableau :
┌─user_id─┬─message────────────────────────────────────────────┬───────────timestamp─┬──metric─┐
│ 102 │ Insert a lot of rows per batch │ 2022-03-21 00:00:00 │ 1.41421 │
│ 102 │ Sort your data based on your commonly-used queries │ 2022-03-22 00:00:00 │ 2.718 │
│ 101 │ Hello, ClickHouse! │ 2022-03-22 14:04:09 │ -1 │
│ 101 │ Granules are the smallest chunks of data read │ 2022-03-22 14:04:14 │ 3.14159 │
└─────────┴────────────────────────────────────────────────────┴─────────────────────┴─────────┘
4 rows in set. Elapsed: 0.008 sec.- Ajoutez une clause
FORMATpour spécifier l’un des nombreux formats de sortie pris en charge par ClickHouse :
SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
FORMAT TabSeparatedDans la requête ci-dessus, la sortie est renvoyée avec des champs séparés par des tabulations :
Query id: 3604df1c-acfd-4117-9c56-f86c69721121
102 Insert a lot of rows per batch 2022-03-21 00:00:00 1.41421
102 Sort your data based on your commonly-used queries 2022-03-22 00:00:00 2.718
101 Hello, ClickHouse! 2022-03-22 14:04:09 -1
101 Granules are the smallest chunks of data read 2022-03-22 14:04:14 3.14159
4 rows in set. Elapsed: 0.005 sec.- Pour quitter le
clickhouse client, exécutez la commande exit :
exitTéléverser un fichier
Une tâche courante lorsque l'on commence avec une base de données consiste à insérer des données que vous possédez déjà dans des fichiers. Nous disposons de données d'exemple en ligne que vous pouvez insérer et qui représentent des données de clickstream : elles comprennent un identifiant utilisateur, une URL visitée et l'horodatage de l'événement.
Supposons que nous ayons le texte suivant dans un fichier CSV nommé data.csv :
102,This is data in a file,2022-02-22 10:43:28,123.45
101,It is comma-separated,2022-02-23 00:00:00,456.78
103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90- La commande suivante insère les données dans
my_first_table:
./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password> \
--query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csv- Observez les nouvelles lignes qui apparaissent désormais dans la table lorsque vous exécutez une requête depuis la console SQL :

Quelle est la prochaine étape ?
- Le tutoriel vous guide dans l’insertion de 2 millions de lignes dans une table et la rédaction de requêtes analytiques
- Nous proposons une liste de jeux de données d’exemple accompagnée d’instructions sur la façon de les insérer
- Regardez notre vidéo de 12 minutes sur Bien démarrer avec ClickHouse
- Si vos données proviennent d’une source externe, consultez notre collection de guides d’intégration pour vous connecter à des files d’attente de messages, des bases de données, des pipelines et bien plus encore
- Si vous utilisez un outil de visualisation UI/BI, consultez les guides utilisateur pour connecter une UI à ClickHouse
- Le guide utilisateur sur les clés primaires vous indique tout ce que vous devez savoir sur les clés primaires et leur définition
Vous pouvez suivre ce parcours vous-même, l’automatiser avec un script ou le confier à un agent IA. Basculez vers la vue Cloud UI pour la version Console.
Cette page explique comment provisionner un service ClickHouse Cloud, s’y connecter et charger des données, le tout depuis la ligne de commande à l’aide de ClickHouse CLI (clickhousectl). Les commandes sont non interactives ; clickhousectl génère du JSON avec --json.
Prérequis
Installez la ClickHouse CLI :
curl https://clickhouse.com/cli | shVous aurez également besoin de jq.
Vous devez disposer d’un compte ClickHouse Cloud. Si vous n’en avez pas encore, clickhousectl cloud auth signup ouvre la page d’inscription dans votre navigateur.
Les opérations d’écriture (création, suppression) nécessitent une authentification par clé API ; la connexion OAuth est en lecture seule :
clickhousectl cloud auth login --api-key <YOUR_KEY> --api-secret <YOUR_SECRET>Vous pouvez également définir les variables d’environnement CLICKHOUSE_CLOUD_API_KEY et CLICKHOUSE_CLOUD_API_SECRET. Vérifiez avec clickhousectl cloud auth status : une entrée dont le scope est read/write doit s’afficher.
Créer un service ClickHouse
Créez le service et enregistrez la réponse ; le mot de passe de l’utilisateur default n’est affiché qu’une seule fois :
clickhousectl cloud service create \
--name quickstart-ch \
--region us-east-1 \
--json > ch.jsonLa réponse inclut l’ID du service, les endpoints et le mot de passe généré (tronqué ici ; la réponse complète contient également les paramètres de scaling, la liste d’accès IP et les tags) :
{
"password": "dK7mPq2x_-TzrL9vNw0s",
"service": {
"id": "4f7b92f3-4163-403a-b538-b9bc6e2e8f66",
"name": "quickstart-ch",
"provider": "aws",
"region": "us-east-1",
"state": "provisioning",
"endpoints": [
{
"host": "quickstart-abc123.us-east-1.aws.clickhouse.cloud",
"port": 9440,
"protocol": "nativesecure"
},
{
"host": "quickstart-abc123.us-east-1.aws.clickhouse.cloud",
"port": 8443,
"protocol": "https"
}
],
"numReplicas": 3,
"minReplicaMemoryGb": 16.0,
"maxReplicaMemoryGb": 120.0
}
}Extrayez les éléments nécessaires pour la suite de ce guide :
CH_ID=$(jq -r .service.id ch.json)
CH_PASSWORD=$(jq -r .password ch.json)
CH_HOST=$(jq -r '.service.endpoints[] | select(.protocol=="nativesecure") | .host' ch.json)Si le mot de passe est perdu, générez-en un nouveau avec clickhousectl cloud service reset-password "$CH_ID".
Les services créés avec clickhousectl utilisent par défaut une liste d’accès IP autorisant toutes les adresses (0.0.0.0/0). Pour restreindre l’accès, transmettez --ip-allow lors de la création du service ; consultez "Définir des filtres IP".
Attendez que le service soit provisionné
Le provisionnement prend environ une minute. Interrogez le service jusqu’à ce que son état soit running :
while [ "$(clickhousectl cloud service get "$CH_ID" --json | jq -r .state)" != "running" ]; do
sleep 15
doneExécuter du SQL avec la Query API
clickhousectl cloud service query exécute des requêtes SQL via HTTP, sans nécessiter de binaire clickhouse local ni de mot de passe de service. Le premier appel provisionne automatiquement un endpoint de Query API et une clé API limitée au service :
clickhousectl cloud service query --id "$CH_ID" --query "SHOW databases"Provisioning Query API endpoint + key for service 'quickstart-ch'...
{"name":"INFORMATION_SCHEMA"}
{"name":"default"}
{"name":"information_schema"}
{"name":"system"}La sortie redirigée via un pipe utilise par défaut le format JSONEachRow ; passez --format PrettyCompact pour obtenir une sortie au format tableau.
Créer une base de données et une table
clickhousectl cloud service query --id "$CH_ID" \
--query "CREATE DATABASE IF NOT EXISTS helloworld"
clickhousectl cloud service query --id "$CH_ID" \
--query "CREATE TABLE helloworld.my_first_table (
user_id UInt32,
message String,
timestamp DateTime,
metric Float32
) ENGINE = MergeTree()
PRIMARY KEY (user_id, timestamp)"Les deux commandes affichent OK. Insérez quelques lignes :
clickhousectl cloud service query --id "$CH_ID" \
--query "INSERT INTO helloworld.my_first_table (user_id, message, timestamp, metric) VALUES
(101, 'Hello, ClickHouse!', now(), -1.0),
(102, 'Insert a lot of rows per batch', yesterday(), 1.41421),
(102, 'Sort your data based on your commonly-used queries', today(), 2.718),
(101, 'Granules are the smallest chunks of data read', now() + 5, 3.14159)"Vérifiez que l’opération a réussi :
clickhousectl cloud service query --id "$CH_ID" \
--query "SELECT * FROM helloworld.my_first_table ORDER BY timestamp"{"user_id":102,"message":"Insert a lot of rows per batch","timestamp":"2026-08-26 00:00:00","metric":1.41421}
{"user_id":102,"message":"Sort your data based on your commonly-used queries","timestamp":"2026-08-27 00:00:00","metric":2.718}
{"user_id":101,"message":"Hello, ClickHouse!","timestamp":"2026-08-27 10:41:28","metric":-1}
{"user_id":101,"message":"Granules are the smallest chunks of data read","timestamp":"2026-08-27 10:41:33","metric":3.14159}Les horodatages dépendent du moment où vous avez effectué l’insert ; les vôtres seront donc différents.
Charger un fichier CSV
Supposons que le texte suivant se trouve dans un fichier CSV nommé data.csv :
102,This is data in a file,2022-02-22 10:43:28,123.45
101,It is comma-separated,2022-02-23 00:00:00,456.78
103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90INSERT ... FORMAT lit les données depuis stdin ; utilisez donc un pipe entre la requête et le fichier :
printf 'INSERT INTO helloworld.my_first_table FORMAT CSV\n' | cat - data.csv \
| clickhousectl cloud service query --id "$CH_ID"Vérifiez que les nouvelles lignes ont bien été insérées :
clickhousectl cloud service query --id "$CH_ID" \
--query "SELECT count() FROM helloworld.my_first_table"{"count()":7}Se connecter avec clickhouse client
Vous pouvez également vous connecter via le protocole natif à l’aide de clickhouse client. La ClickHouse CLI gère le binaire clickhouse pour vous ; vous n’avez donc pas besoin d’installer un client séparément :
clickhousectl local use latestCela installe le dernier binaire clickhouse et crée un lien symbolique vers ~/.local/bin/clickhouse, afin que la commande clickhouse soit disponible globalement dans votre PATH.
Connectez-vous ensuite à l’aide du hostname et du mot de passe indiqués dans la réponse de création. Avec --query, le résultat s’affiche, puis le client se ferme ; sans cette option, vous accédez à l’invite interactive (:)), que vous quittez avec exit :
clickhouse client --host "$CH_HOST" --secure --port 9440 \
--user default --password "$CH_PASSWORD" \
--query "SELECT * FROM helloworld.my_first_table ORDER BY timestamp FORMAT TabSeparated"102 Insert a lot of rows per batch 2026-08-26 00:00:00 1.41421
102 Sort your data based on your commonly-used queries 2026-08-27 00:00:00 2.718
101 Hello, ClickHouse! 2026-08-27 10:41:28 -1
101 Granules are the smallest chunks of data read 2026-08-27 10:41:33 3.14159
103 Use FORMAT to specify the format 2022-02-21 10:43:30 678.9
102 This is data in a file 2022-02-22 10:43:28 123.45
101 It is comma-separated 2022-02-23 00:00:00 456.78La même syntaxe de commande permet de téléverser des fichiers :
clickhouse client --host "$CH_HOST" --secure --port 9440 \
--user default --password "$CH_PASSWORD" \
--query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csvNettoyage
La suppression d’un service efface définitivement toutes ses données. --force arrête d’abord un service en cours d’exécution :
clickhousectl cloud service delete "$CH_ID" --forcePour conserver les données sans payer le compute, arrêtez plutôt le service avec clickhousectl cloud service stop "$CH_ID".