Passer au contenu principal
ClickHouse peut être compilé sur Linux, FreeBSD et macOS. Si vous utilisez Windows, vous pouvez tout de même compiler ClickHouse dans une machine virtuelle sous Linux, par exemple VirtualBox avec Ubuntu.

Créer un dépôt sur GitHub

Pour commencer à développer pour ClickHouse, vous aurez besoin d’un compte GitHub. Veuillez également générer une clé SSH en local (si vous n’en avez pas déjà une) et ajouter la clé publique à GitHub, car il s’agit d’un prérequis pour soumettre des correctifs. Ensuite, créez un fork du dépôt ClickHouse dans votre compte personnel en cliquant sur le bouton “fork” en haut à droite. Pour proposer des modifications, par exemple un correctif pour une issue ou une fonctionnalité, validez d’abord vos changements dans une branche de votre fork, puis créez une “Pull Request” vers le dépôt principal. Pour travailler avec des dépôts Git, veuillez installer Git. Par exemple, sur Ubuntu, exécutez :
Vous trouverez un aide-mémoire Git ici. Un manuel Git détaillé est disponible ici.

Clonez le dépôt sur votre machine de développement

Commencez par récupérer les fichiers sources sur votre machine de travail en clonant le dépôt :
Cette commande crée un répertoire ClickHouse/ contenant le code source, les tests et d’autres fichiers. Vous pouvez spécifier un répertoire de destination personnalisé après l’URL, mais il est important que ce chemin ne contienne pas d’espaces, car cela pourrait casser le build par la suite. Le dépôt Git de ClickHouse utilise des sous-modules pour récupérer des bibliothèques tierces. Les sous-modules ne sont pas extraits par défaut. Vous pouvez soit
  • exécuter git clone avec l’option --recurse-submodules,
  • si git clone est exécuté sans --recurse-submodules, exécuter git submodule update --init --jobs <N> pour extraire explicitement tous les sous-modules. (<N> peut par exemple être défini sur 12 pour paralléliser le téléchargement.)
  • si git clone est exécuté sans --recurse-submodules et que vous souhaitez utiliser une extraction superficielle (shallow) des sous-modules afin d’en omettre l’historique pour gagner de l’espace, exécutez ./contrib/update-submodules.sh. Cette alternative est utilisée par la CI, mais elle n’est pas recommandée pour le développement local, car elle rend l’utilisation des sous-modules moins pratique et plus lente.
Pour vérifier l’état des sous-modules Git, exécutez git submodule status. Si vous obtenez le message d’erreur suivant
les clés SSH de connexion à GitHub sont absentes. Ces clés se trouvent normalement dans ~/.ssh. Pour que les clés SSH soient reconnues, vous devez les ajouter dans les paramètres de GitHub. Vous pouvez également cloner le dépôt via HTTPS :
Cela ne vous permettra toutefois pas d’envoyer vos modifications au serveur. Vous pouvez néanmoins l’utiliser temporairement et ajouter les clés SSH plus tard en remplaçant l’adresse distante du dépôt à l’aide de la commande git remote. Vous pouvez également ajouter l’adresse du dépôt ClickHouse d’origine à votre dépôt local pour récupérer les mises à jour depuis celui-ci :
Après avoir exécuté cette commande avec succès, vous pourrez récupérer les mises à jour du dépôt principal de ClickHouse en exécutant git pull upstream master.
N’utilisez pas git push tel quel : vous risquez de pousser vers le mauvais dépôt distant et/ou la mauvaise branche. Il est préférable de préciser explicitement les noms du dépôt distant et de la branche, par exemple git push origin my_branch_name.

Écrire du code

Vous trouverez ci-dessous quelques liens utiles pour écrire du code pour ClickHouse :

IDE

Visual Studio Code et Neovim sont deux options qui ont bien fonctionné jusqu’ici pour développer ClickHouse. Si vous utilisez VS Code, nous vous recommandons d’utiliser l’extension clangd à la place d’IntelliSense, car elle est nettement plus performante. CLion est une autre excellente option. Cependant, il peut être plus lent sur de gros projets comme ClickHouse. Voici quelques points à garder à l’esprit lorsque vous utilisez CLion :
  • CLion crée lui-même un répertoire build et sélectionne automatiquement debug comme type de build
  • Il utilise une version de CMake définie dans CLion, et non celle que vous avez installée
  • CLion utilise make pour exécuter les tâches de compilation au lieu de ninja (c’est le comportement normal)
Vous pouvez également utiliser d’autres IDE, comme Sublime Text, Qt Creator ou Kate.

Créer une pull request

Accédez au dépôt de votre fork dans l’interface de GitHub. Si vous avez travaillé dans une branche, vous devez sélectionner cette branche. Un bouton “Pull request” sera affiché à l’écran. Concrètement, cela signifie « créer une demande pour faire accepter mes modifications dans le dépôt principal ». Une pull request peut être créée même si le travail n’est pas encore terminé. Dans ce cas, veuillez mettre le mot “WIP” (work in progress) au début du titre ; vous pourrez le modifier plus tard. C’est utile pour la relecture collaborative et la discussion autour des modifications, ainsi que pour exécuter tous les tests disponibles. Il est important de fournir une brève description de vos modifications ; elle sera ensuite utilisée pour générer le changelog de la release. Les tests démarreront dès que des employés de ClickHouse auront ajouté à votre PR le tag “can be tested”. Les résultats de quelques premières vérifications (par ex. le style de code) arriveront en quelques minutes. Les résultats des vérifications de build arriveront dans la demi-heure. L’ensemble principal des tests remontera ses résultats en moins d’une heure. Le système préparera séparément des builds binaires de ClickHouse pour votre pull request. Pour récupérer ces builds, cliquez sur le lien “Details” à côté de l’entrée “Builds” dans la liste des vérifications. Vous y trouverez des liens directs vers les paquets .deb de ClickHouse générés, que vous pouvez déployer même sur vos serveurs de production (si vous n’avez peur de rien).

Rédiger la documentation

Toute pull request qui ajoute une nouvelle fonctionnalité doit être accompagnée d’une documentation adéquate. Si vous souhaitez prévisualiser vos modifications de la documentation, les instructions pour générer la page de documentation en local sont disponibles dans le fichier README.md ici. Lorsque vous ajoutez une nouvelle fonction à ClickHouse, vous pouvez utiliser le modèle ci-dessous comme référence :

Utilisation de données de test

Le développement de ClickHouse nécessite souvent le chargement de jeux de données réalistes. C’est particulièrement important pour les tests de performances. Nous mettons à disposition un jeu de données anonymisées d’analyse d’audience web, spécialement préparé à cet effet. Cela nécessite en outre environ 3 Go d’espace disque libre.
Dans clickhouse-client :
Importez les données :
Dernière modification le 3 juillet 2026