Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Démarrage rapide de ClickHouse Cloud

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
Sélectionner un forfait

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 :

Nouveau service ClickHouse

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.

Limites de dimensionnement

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é.

Console SQL

Créez un onglet de requête et saisissez une requête simple pour vérifier que votre connexion fonctionne :

SHOW databases

Vous devriez voir 4 bases de données dans la liste, en plus de celles que vous avez éventuellement ajoutées.

SQL Console

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.

Connexion au service

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.

Sources de données

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.

Sélectionner la source de données

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 helloworld

Exé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 que VARCHAR, BLOB, CLOB et d’autres utilisés dans d’autres systèmes de bases de données
  • timestamp : 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_table

Ajouter 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 :

détails de connexion du client ClickHouse

  1. Installez ClickHouse.

  2. 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 !

:)
  1. Essayez d’exécuter la requête suivante :

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp

Remarquez 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.
  1. Ajoutez une clause FORMAT pour spécifier l’un des nombreux formats de sortie pris en charge par ClickHouse :

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
FORMAT TabSeparated

Dans 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.
  1. Pour quitter le clickhouse client, exécutez la commande exit :

exit

Té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 :

data.csvbash
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
  1. 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
  1. Observez les nouvelles lignes qui apparaissent désormais dans la table lorsque vous exécutez une requête depuis la console SQL :

Nouvelles lignes du fichier CSV

Quelle est la prochaine étape ?

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 | sh

Vous 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.json

La 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
done

Exé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 :

data.csvtext
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

INSERT ... 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 latest

Cela 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.78

La 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.csv

Nettoyage

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" --force

Pour conserver les données sans payer le compute, arrêtez plutôt le service avec clickhousectl cloud service stop "$CH_ID".

Navigation