Skip to main content
Dans cet article, nous allons passer en revue un tutoriel qui montre comment transférer des données en continu de SQL Server vers ClickHouse. ClickHouse est idéal si vous recherchez des capacités d’analytics ultra-rapides pour alimenter des dashboards internes ou destinés à vos clients. Nous vous guiderons pas à pas pour configurer les deux bases de données, les connecter, puis utiliser Streamkap pour acheminer vos données en continu. Si SQL Server gère vos opérations quotidiennes, mais que vous avez besoin de la rapidité et de la puissance analytique de ClickHouse, vous êtes au bon endroit.

Pourquoi acheminer des données de SQL Server vers ClickHouse en continu ?

Si vous êtes ici, vous voyez probablement bien le problème : SQL Server est très fiable pour les transactions, mais il n’est tout simplement pas conçu pour exécuter de lourdes requêtes analytiques en temps réel. C’est là que ClickHouse excelle. ClickHouse est conçu pour l’analytics, avec une agrégation et un reporting ultra-rapides, même sur d’énormes jeux de données. Mettre en place un pipeline CDC en streaming pour envoyer vos données transactionnelles vers ClickHouse vous permet donc d’exécuter des rapports extrêmement rapides — idéal pour les équipes opérationnelles, les équipes produit ou les tableaux de bord clients. Cas d’utilisation typiques :
  • Des rapports internes qui ne ralentissent pas les applications de production
  • Des tableaux de bord destinés aux clients, qui doivent être rapides et toujours à jour
  • Le streaming d’événements, par exemple pour garder les logs d’activité des utilisateurs à jour à des fins d’analytics

Ce qu’il vous faut pour commencer

Avant d’entrer dans les détails, voici ce que vous devriez avoir sous la main :

Prérequis

Informations de connexion

Assurez-vous d’avoir :
  • l’adresse du serveur SQL Server, le port, le nom d’utilisateur et le mot de passe. Il est recommandé de créer un utilisateur et un rôle distincts pour permettre à Streamkap d’accéder à votre base de données SQL Server.Consultez notre documentation pour la configuration.
  • l’adresse du serveur ClickHouse, le port, le nom d’utilisateur et le mot de passe. Les listes d’accès IP dans ClickHouse déterminent quels services peuvent se connecter à votre base de données ClickHouse.Suivez les instructions ici.
  • les tables que vous souhaitez diffuser — commencez-en par une seule pour l’instant
1

Créer une source SQL Server dans Streamkap

C’est parti !Nous allons commencer par configurer la connexion à la source. C’est ainsi que Streamkap sait d’où récupérer les modifications.Voici comment procéder :
  1. Ouvrez Streamkap et accédez à la section Sources.
  2. Créez une nouvelle source.
  • Donnez-lui un nom facilement identifiable (par exemple, sqlserver-demo-source).
  1. Renseignez les détails de connexion à votre SQL Server :
  • Hôte (par exemple, your-db-instance.rds.amazonaws.com)
  • Port (le port par défaut de SQL Server est 3306)
  • Nom d’utilisateur et mot de passe
  • Nom de la base de données

Ce qui se passe en arrière-plan

Une fois cette configuration effectuée, Streamkap se connectera à votre SQL Server et détectera les tables. Pour cette démo, nous choisirons une table contenant déjà des données en cours de diffusion, comme des événements ou des transactions.
2

Ajouter une destination ClickHouse dans Streamkap

Passons maintenant à la configuration de la destination vers laquelle nous enverrons toutes ces données.Comme pour la source, nous allons créer une destination à l’aide de nos informations de connexion à ClickHouse.

Étapes :

  1. Accédez à la section des destinations dans Streamkap.
  2. Ajoutez une nouvelle destination — choisissez ClickHouse comme type de destination.
  3. Saisissez vos informations de connexion à ClickHouse :
  • Hôte
  • Port (la valeur par défaut est 9000)
  • Nom d’utilisateur et mot de passe
  • Nom de la base de données
Capture d’écran d’exemple : ajout d’une nouvelle destination ClickHouse dans le tableau de bord Streamkap.

Mode d’upsert : qu’est-ce que c’est ?

Il s’agit d’une étape importante : nous voulons utiliser le mode « upsert » de ClickHouse, qui utilise en arrière-plan le moteur ReplacingMergeTree dans ClickHouse. Cela nous permet de fusionner efficacement les enregistrements entrants et de gérer les mises à jour après l’ingestion, grâce à ce que ClickHouse appelle la « fusion des parts ».
  • Cela garantit que votre table de destination ne se remplit pas de doublons lorsque des changements interviennent du côté de SQL Server.

Gestion de l’évolution du schéma

ClickHouse et SQL Server n’ont pas toujours les mêmes colonnes, en particulier lorsque votre application est en production et que les développeurs continuent d’ajouter des colonnes à la volée.
  • Bonne nouvelle : Streamkap peut gérer les évolutions de schéma de base. Cela signifie que si vous ajoutez une nouvelle colonne dans SQL Server, elle apparaîtra également dans ClickHouse.
Sélectionnez simplement « schema evolution » dans les paramètres de votre destination. Vous pourrez toujours ajuster cela plus tard si nécessaire.
3

Configurer le pipeline dans Streamkap

La source et la destination étant définies, passons à la partie amusante : diffuser vos données en continu !

Configuration du pipeline

  1. Accédez à l’onglet Pipelines dans Streamkap.
  2. Créez un nouveau pipeline.
  3. Sélectionnez votre source SQL Server (sqlserver-demo-source).
  4. Sélectionnez votre destination ClickHouse (clickhouse-tutorial-destination).
  5. Choisissez la table que vous souhaitez diffuser en continu — par exemple, events.
  6. Configurez la capture des changements de données (CDC).
  • Pour cet essai, nous diffuserons uniquement les nouvelles données (n’hésitez pas à ignorer le chargement de l’historique au départ et à vous concentrer sur les événements CDC).
Capture d’écran des paramètres du pipeline — sélection de la source, de la destination et de la table.

Faut-il charger l’historique ?

Vous vous demandez peut-être : faut-il charger les anciennes données ?Dans de nombreux cas d’analytics, vous pouvez simplement commencer par diffuser les changements à partir de maintenant, puis revenir plus tard pour charger aussi les données plus anciennes.Choisissez simplement « ne pas charger l’historique » pour le moment, sauf si vous avez un besoin précis.
4

Surveiller le flux de données

Votre pipeline est maintenant configuré et actif !Voici ce qui se passe :
  • À mesure que de nouvelles données arrivent dans la table source de SQL Server, le pipeline Streamkap capture la modification et l’envoie à ClickHouse.
  • ClickHouse (grâce à ReplacingMergeTree et à la fusion des parts) ingère ces lignes et fusionne les mises à jour.
  • Le schéma reste synchronisé : ajoutez des colonnes dans SQL Server et elles apparaîtront aussi dans ClickHouse.
Un tableau de bord en direct ou des logs montrent le nombre de lignes qui augmente dans ClickHouse et SQL Server en temps réel.Vous pouvez littéralement voir le nombre de lignes grimper dans ClickHouse à mesure que SQL Server reçoit des données.
Attendez-vous à un certain délai dans les scénarios de forte charge, mais, dans la plupart des cas d’usage, le streaming est quasi en temps réel.

Sous le capot : que fait réellement Streamkap ?

Pour vous donner un aperçu :
  • Streamkap surveille le journal binaire de SQL Server (le même journal utilisé pour la réplication).
  • Dès qu’une ligne est insérée, mise à jour ou supprimée dans votre table, Streamkap détecte l’événement.
  • Il convertit l’événement dans un format compréhensible par ClickHouse et l’achemine — en appliquant instantanément les modifications dans votre base analytique.
Ce n’est pas seulement de l’ETL — c’est une capture des changements de données (CDC) complète, en temps réel.

Options avancées

Modes Upsert et Insert

Quelle est la différence entre le simple fait d’insérer chaque ligne (mode Insert) et le fait de s’assurer que les mises à jour et les suppressions sont elles aussi répliquées (mode Upsert) ?
  • Mode Insert : chaque nouvelle ligne est ajoutée — même s’il s’agit d’une mise à jour, cela crée des doublons.
  • Mode Upsert : les mises à jour des lignes existantes écrasent les données déjà présentes — c’est bien plus efficace pour garder les analyses à jour et propres.

Gestion des modifications du schéma

Les applications évoluent, et vos schémas aussi. Grâce à ce pipeline :
  • Vous ajoutez une nouvelle colonne à votre table opérationnelle ? Streamkap la détectera et l’ajoutera également côté ClickHouse.
  • Vous supprimez une colonne ? Selon la configuration, une migration peut être nécessaire, mais la plupart des ajouts se font sans accroc.

Supervision en production : garder un œil sur le pipeline

Vérification de l’état du pipeline

Streamkap fournit un tableau de bord qui vous permet de :
  • Voir le décalage du pipeline (vos données sont-elles à jour ?)
  • Surveiller le nombre de lignes et le débit
  • Être alerté si quelque chose ne va pas
Exemple de tableau de bord : graphique de latence, nombre de lignes, indicateurs d’état.

Métriques courantes à surveiller

  • Retard : de combien ClickHouse est-il en retard sur SQL Server ?
  • Débit : lignes par seconde
  • Taux d’erreur : doit être proche de zéro

Mise en production : interroger ClickHouse

Maintenant que vos données sont dans ClickHouse, vous pouvez les interroger à l’aide de tous ces outils d’analyse rapides. Voici un exemple simple :
Associez ClickHouse à des outils de tableau de bord comme Grafana, Superset ou Redash pour un reporting complet.

Étapes suivantes et approfondissements

Cette procédure pas à pas ne fait qu’effleurer les possibilités. Maintenant que vous maîtrisez les bases, voici ce que vous pouvez explorer ensuite :
  • Configurer des flux filtrés (ne synchroniser que certaines tables/colonnes)
  • Diffuser en streaming plusieurs sources vers une seule base de données analytique
  • Combiner cela avec S3/des lacs de données pour le stockage à froid
  • Automatiser les migrations de schéma lorsque vous modifiez des tables
  • Sécuriser votre pipeline avec SSL et des règles de pare-feu
Gardez un œil sur le blog Streamkap pour des guides plus approfondis.

FAQ et dépannage

Q : Est-ce que cela fonctionne avec des bases de données dans le cloud ? A : Oui ! Nous avons utilisé AWS RDS dans cet exemple. Assurez-vous simplement d’ouvrir les bons ports. Q : Qu’en est-il des performances ? A : ClickHouse est rapide. Le goulot d’étranglement est généralement le réseau ou la vitesse du binlog de la base source, mais dans la plupart des cas, vous constaterez un retard inférieur à une seconde. Q : Pouvez-vous aussi gérer les suppressions ? A : Absolument. En mode upsert, les suppressions sont également marquées et gérées dans ClickHouse.

Pour conclure

Voilà : un aperçu complet du streaming de vos données SQL Server vers ClickHouse avec Streamkap. C’est rapide, flexible, et idéal pour les équipes qui ont besoin d’analytics en temps quasi réel sans surcharger leurs bases de données de production. Prêt à essayer ? Rendez-vous sur la page d’inscription et dites-nous si vous souhaitez que nous abordions des sujets comme :
  • Upsert vs. Insert et les subtilités de chacun
  • Latence de bout en bout : en combien de temps votre vue analytique finale est-elle disponible ?
  • Optimisation des performances et débit
  • Des dashboards concrets sur cette stack
Merci de votre lecture ! Bon streaming.
Dernière modification le 23 juillet 2026