Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Snapshot parallèle dans le MySQL ClickPipe

Ce document explique le fonctionnement du snapshot/chargement initial parallélisé du MySQL ClickPipe et présente les paramètres du snapshot permettant de le contrôler.

Vue d'ensemble

Le chargement initial est la première phase d’un ClickPipe CDC, au cours de laquelle le ClickPipe synchronise vers ClickHouse les données historiques des tables de la base de données source, avant de démarrer le CDC. Très souvent, les développeurs effectuent cette opération sur un seul thread. Cependant, le MySQL ClickPipe peut paralléliser ce processus, ce qui peut considérablement accélérer le chargement initial.

Colonne de clé de partition

Une fois le feature flag activé, vous devriez voir le paramètre ci-dessous dans le sélecteur de table de ClickPipe (lors de la création comme de la modification d’un ClickPipe) :

Colonne de clé de partition

Le MySQL ClickPipe utilise une colonne de votre table source pour effectuer un partitionnement logique. Cette colonne est appelée colonne de clé de partition. Elle sert à diviser la table source en partitions, qui peuvent ensuite être traitées en parallèle par le ClickPipe.

Partitionnement logique

Examinons les paramètres ci-dessous :

Paramètres du snapshot

Nombre de lignes de l’instantané par partition

Ce paramètre détermine combien de lignes composent une partition. Le ClickPipe lira la table source par lots de cette taille, et ces lots seront traités en parallèle selon le parallélisme de chargement initial défini. La valeur par défaut est de 100 000 lignes par partition.

Parallélisme du chargement initial

Ce paramètre contrôle le nombre de partitions traitées en parallèle. La valeur par défaut est de 4, ce qui signifie que ClickPipe lira 4 partitions de la table source en parallèle. Cette valeur peut être augmentée pour accélérer le chargement initial, mais il est recommandé de la maintenir à un niveau raisonnable en fonction des caractéristiques de votre instance source afin d'éviter de surcharger la base de données source. ClickPipe ajustera automatiquement le nombre de partitions en fonction de la taille de la table source et du nombre de lignes par partition.

Nombre de tables du snapshot en parallèle

Sans lien direct avec le snapshot en parallèle, ce paramètre contrôle le nombre de tables traitées en parallèle pendant le chargement initial. La valeur par défaut est 1. Notez que cela s’ajoute au parallélisme des partitions. Ainsi, si vous avez 4 partitions et 2 tables, le ClickPipe lira 8 partitions en parallèle.

Surveillance du snapshot parallèle dans MySQL

Vous pouvez exécuter SHOW processlist dans MySQL pour voir le snapshot parallèle en action. Le ClickPipe établira plusieurs connexions à la base de données source, chacune lisant une partition différente de la table source. Si vous voyez des requêtes SELECT avec des intervalles différents, cela signifie que le ClickPipe est en train de lire les tables sources. Vous pouvez également y voir le COUNT(*) ainsi que la requête de partitionnement.

Limitations

  • Les paramètres du snapshot ne peuvent pas être modifiés après la création du pipe. Si vous souhaitez les changer, vous devrez créer un nouveau ClickPipe.
  • Lors de l'ajout de tables à un ClickPipe existant, vous ne pouvez pas modifier les paramètres du snapshot. ClickPipe utilisera les paramètres existants pour les nouvelles tables.
Navigation