Passer au contenu principal
Ce guide explique comment migrer d’un serveur ClickHouse autogéré vers ClickHouse Cloud, ainsi que comment migrer entre des services ClickHouse Cloud. La fonction remoteSecure est utilisée dans les requêtes SELECT et INSERT afin d’accéder à des serveurs ClickHouse distants, ce qui rend la migration des tables aussi simple que de rédiger une requête INSERT INTO avec un SELECT imbriqué.

Migration de ClickHouse autogéré vers ClickHouse Cloud

Que votre table source soit partitionnée et/ou répliquée, dans ClickHouse Cloud il vous suffit de créer une table de destination (vous pouvez omettre le paramètre Engine pour cette table, SharedMergeTree sera automatiquement sélectionné comme moteur de table), et ClickHouse Cloud gérera automatiquement la mise à l’échelle verticale et horizontale. Vous n’avez pas à vous préoccuper du partitionnement ni de la réplication de la table. Dans cet exemple, le serveur ClickHouse autogéré est la source et le service ClickHouse Cloud est la destination.

Vue d’ensemble

Le processus est le suivant :
  1. Ajouter un utilisateur en lecture seule au service source
  2. Dupliquer la structure de la table source sur le service de destination
  3. Récupérer les données de la source vers la destination, ou les envoyer depuis la source, selon la disponibilité réseau de la source
  4. Retirer le serveur source de la liste d’accès IP de la destination (le cas échéant)
  5. Supprimer l’utilisateur en lecture seule du service source

Migration de tables d’un système à un autre :

Cet exemple montre comment migrer une table d’un serveur ClickHouse autogéré vers ClickHouse Cloud.
CompatibilitéSi vous constatez des différences de comportement entre votre déploiement ClickHouse autohébergé et votre service ClickHouse Cloud, cela peut être lié au paramètre de compatibilité. Dans Cloud, la compatibilité est définie lors de la création d’un service et ne change pas au niveau du service afin de garantir un comportement cohérent aux clients, même lors des mises à niveau du service. Si vous souhaitez modifier la compatibilité, vous pouvez en faire la demande via le support.

Sur le système ClickHouse source (celui qui héberge actuellement les données)

  • Ajoutez un utilisateur en lecture seule autorisé à lire la table source (db.table dans cet exemple)
  • Copiez la définition de la table

Sur le système de destination ClickHouse Cloud :

  • Créez la base de données de destination :
  • En utilisant l’instruction CREATE TABLE de la source, créez la destination.
Remplacez l’ENGINE par ReplicatedMergeTree, sans aucun paramètre, lorsque vous exécutez l’instruction CREATE. ClickHouse Cloud réplique toujours les tables et fournit les paramètres appropriés. Conservez toutefois les clauses ORDER BY, PRIMARY KEY, PARTITION BY, SAMPLE BY, TTL et SETTINGS.
  • Utilisez la fonction remoteSecure pour récupérer les données depuis la source auto-gérée
Si le système source n’est pas accessible depuis des réseaux externes, vous pouvez pousser les données au lieu de les récupérer, car la fonction remoteSecure fonctionne aussi bien pour les requêtes de sélection que d’insertion. Consultez l’option suivante.
  • Utilisez la fonction remoteSecure pour pousser les données vers le service ClickHouse Cloud
Ajoutez le système distant à la liste d’accès IP de votre service ClickHouse CloudPour que la fonction remoteSecure puisse se connecter à votre service ClickHouse Cloud, l’adresse IP du système distant doit être autorisée dans la liste d’accès IP. Développez Manage your liste d’accès IP sous cet encadré pour plus d’informations.
Dans la liste de vos services ClickHouse Cloud, choisissez le service avec lequel vous allez travailler, puis ouvrez Settings. Si l’IP Access List ne contient pas l’adresse IP ou la plage d’adresses du système distant qui doit se connecter à votre service ClickHouse Cloud, vous pouvez résoudre le problème avec Add IPs :Ajoutez l’adresse IP individuelle ou la plage d’adresses devant se connecter à votre service ClickHouse Cloud. Modifiez le formulaire selon vos besoins, puis cliquez sur Save.

Migration entre services ClickHouse Cloud

Voici quelques cas d’usage de migration de données entre services ClickHouse Cloud :
  • Migrer des données depuis une sauvegarde restaurée
  • Copier des données d’un service de développement vers un service de staging (ou d’un service de staging vers la production)
Dans cet exemple, il y a deux services ClickHouse Cloud, désignés par source et destination. Les données seront récupérées depuis la source vers la destination. Même s’il est également possible d’utiliser un envoi direct, la récupération est présentée ici, car elle repose sur un utilisateur en lecture seule. La migration se déroule en რამდენიმე étapes :
  1. Identifier un service ClickHouse Cloud comme source et l’autre comme destination
  2. Ajouter un utilisateur en lecture seule au service source
  3. Dupliquer la structure de la table source sur le service de destination
  4. Autoriser temporairement l’accès IP au service source
  5. Copier les données de la source vers la destination
  6. Rétablir la liste d’accès IP sur la destination
  7. Supprimer l’utilisateur en lecture seule du service source

Ajouter un utilisateur en lecture seule au service source

  • Ajoutez un utilisateur en lecture seule autorisé à lire la table source (db.table dans cet exemple)
  • Copiez la définition de la table

Dupliquez la structure de la table sur le service de destination

Sur le service de destination, créez la base de données si elle n’existe pas déjà :
  • Créez la base de données de destination :
  • À l’aide de l’instruction CREATE TABLE de la source, créez la table de destination. Sur le service de destination, créez la table à partir de la sortie de select create_table_query... sur la source :

Autoriser l’accès à distance au service source

Pour extraire les données de la source vers la destination, le service source doit autoriser les connexions. Désactivez temporairement la fonctionnalité « liste d’accès IP » sur le service source.
Si vous comptez continuer à utiliser le service source ClickHouse Cloud, exportez la liste d’accès IP existante vers un fichier JSON avant d’autoriser l’accès depuis n’importe où ; vous pourrez ainsi réimporter la liste d’accès une fois la migration des données terminée.
Modifiez la liste d’autorisation et autorisez temporairement l’accès depuis Anywhere. Consultez la documentation liste d’accès IP pour plus de détails.

Copiez les données de la source vers la destination

  • Utilisez la fonction remoteSecure pour extraire les données du service ClickHouse Cloud source. Connectez-vous à la destination. Exécutez cette commande sur le service ClickHouse Cloud de destination :
  • Vérifiez les données sur le service de destination

Rétablir la liste d’accès IP sur la source

Si vous avez exporté la liste d’accès précédemment, vous pouvez la réimporter à l’aide de Share ; sinon, rajoutez vos adresses à la liste d’accès.

Supprimer l’utilisateur exporter en lecture seule

  • Modifiez la liste d’accès IP du service afin d’en limiter l’accès
Dernière modification le 25 juin 2026