Passer au contenu principal
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

Configurer SQL Server comme source

C’est parti !

Étape 1 : créer une source SQL Server dans Streamkap

Commencez par configurer la connexion à la source. C’est ainsi que Streamkap sait 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 explicite (par exemple, sqlserver-demo-source).
  1. Renseignez les informations de connexion à 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 coulisses

Lorsque vous mettez cela en place, Streamkap se connecte à votre SQL Server et détecte les tables. Pour cette démonstration, nous choisirons une table dans laquelle des données arrivent déjà en continu, comme des événements ou des transactions.

Création d’une destination ClickHouse

Passons maintenant à la configuration de la destination vers laquelle nous enverrons toutes ces données.

Étape 2 : Ajouter une destination ClickHouse dans Streamkap

Comme pour la source, nous allons créer une destination à l’aide des 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 upsert : de quoi s’agit-il ?

Il s’agit d’une étape importante : nous voulons utiliser le mode « upsert » de ClickHouse, qui repose (en coulisses) sur le moteur ReplacingMergeTree de ClickHouse. Cela 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 parties ».
  • Cela garantit que votre table de destination ne se remplit pas de doublons lorsque des changements interviennent côté SQL Server.

Gestion de l’évolution du schéma

ClickHouse et SQL Server n’ont parfois pas les mêmes colonnes, surtout lorsque votre application est en production et que les développeurs continuent d’en ajouter à la volée.
  • Bonne nouvelle : Streamkap peut gérer les évolutions de schéma de base. Autrement dit, si vous ajoutez une nouvelle colonne dans SQL Server, elle apparaîtra aussi dans ClickHouse.
Sélectionnez simplement « évolution du schéma » dans les paramètres de votre destination. Vous pourrez toujours modifier ce réglage plus tard si nécessaire.

Mise en place du pipeline de streaming

La source et la destination étant définies, il est temps de passer à la partie la plus intéressante : acheminer vos données en continu !

Étape 3 : Configurer le pipeline dans Streamkap

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 synchroniser en continu — par exemple events.
  6. Configurez la capture des changements de données (CDC).
  • Pour cette exécution, nous allons synchroniser uniquement les nouvelles données (vous pouvez ignorer le backfill dans un premier temps 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 effectuer un backfill ?

Vous vous demandez peut-être : faut-il faire un backfill des anciennes données ? Dans de nombreux cas d’usage analytiques, il suffit de commencer à traiter les nouvelles modifications à partir de maintenant, quitte à revenir plus tard pour charger aussi les données plus anciennes. Choisissez simplement « ne pas faire de backfill » pour l’instant, sauf si vous avez un besoin précis.

Le streaming en action : à quoi s’attendre

Votre pipeline est maintenant configuré et actif !

Étape 4 : Surveillez le flux de données

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 parties) 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.
Tableau de bord en direct ou logs montrant le nombre de lignes augmenter 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 à une certaine latence en cas de forte charge, mais, dans la plupart des cas d’usage, le streaming reste 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 29 juin 2026