Tous les produits
Search
Centre de documentation

Elasticsearch:Migrer des données avec elasticsearch-dump

Dernière mise à jour :Aug 21, 2026

Utilisez l'outil open source elasticsearch-dump pour migrer les paramètres, les mappings et les données d'index entre des clusters Alibaba Cloud Elasticsearch ou entre des environnements sur site et dans le cloud.

Présentation

elasticsearch-dump est un outil en ligne de commande qui exporte les données d'un index Elasticsearch vers un autre index ou vers un fichier local.

Idéal pour :

  • La migration de petits volumes de données.

  • Le déplacement d'index spécifiques.

  • La sauvegarde des mappings ou des paramètres dans des fichiers JSON locaux.

Documentation officielle : elasticdump.

Prérequis

  • Clusters source/destination : Les clusters Alibaba Cloud Elasticsearch doivent être créés. Consultez la rubrique Créer un cluster Alibaba Cloud Elasticsearch.

  • Indexation automatique : Le cluster de destination doit avoir l'option Auto Indexing activée, ou l'index cible doit être créé manuellement au préalable. Consultez la rubrique Configurer le fichier YML.

  • Nœud de migration : Une instance Elastic Compute Service (ECS) est requise pour exécuter l'outil.

    • Si l'instance ECS et le cluster Elasticsearch se trouvent dans le même Virtual Private Cloud (VPC), utilisez les endpoints internes pour un transfert de données plus rapide et gratuit.

    • S'ils se trouvent dans différentes régions ou VPC, utilisez les endpoints publics et assurez-vous que l'adresse IP de l'instance ECS est ajoutée à la liste d'autorisation du cluster. Consultez la rubrique Gérer les listes d'autorisation d'adresses IP.

Installer elasticsearch-dump

  1. Connectez-vous à l'instance ECS.

  2. Installez Node.js.

    1. Téléchargez le package :

      wget https://nodejs.org/dist/v16.18.0/node-v16.18.0-linux-x64.tar.xz
    2. Décompressez et déplacez les fichiers :

      tar -xf node-v16.18.0-linux-x64.tar.xz
    3. Configurez les variables d'environnement :

      • Temporaire (session actuelle uniquement) :

        export PATH=$PATH:/root/node-v16.18.0-linux-x64/bin/
      • Permanent (ajout au profil du shell) :

        vim ~/.bash_profile
        export PATH=$PATH:/root/node-v16.18.0-linux-x64/bin/
        source ~/.bash_profile
  3. Installez elasticsearch-dump :

    npm install elasticdump -g

Exemples

Important

Si votre mot de passe contient des caractères spéciaux (par exemple, #, $, @), les chaînes URL standard peuvent échouer. Consultez la section FAQ et dépannage pour découvrir la solution utilisant l'option --httpAuthFile.

Migrer des données entre clusters (cloud vers cloud)

Pour migrer entièrement un index, exécutez la commande pour les paramètres settings, les mappings mapping et les données data dans cet ordre.

  1. Migrez les paramètres de l'index :

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=settings
  2. Migrez les mappings :

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=mapping
  3. Migrez les documents (données) :

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=data

Exporter vers un fichier local (sauvegarde)

  1. Migrez les paramètres :

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=settings
  2. Migrez les mappings :

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=mapping
  3. Migrez les documents (données) :

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=data
  4. Migrez les données en fonction d'une requête :

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> ----searchBody="<YourQuery>"

Importer depuis un fichier local (restauration)

Restaurez les documents :

elasticdump --input=<YourLocalFile> --output=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --type=data

Référence des paramètres

Paramètre

Description

--input / --output

Source et destination. Peut être une URL de cluster ou un chemin de fichier local.

Important

Lors de l'exportation vers un fichier local, elasticsearch-dump crée le fichier au chemin spécifié. Assurez-vous que le nom du fichier de destination est unique dans le répertoire cible.

<YourEsHost>/<OtherEsHost>

L'endpoint (interne ou public) de votre cluster Elasticsearch (par exemple, es-cn-abc.public.elasticsearch.aliyuncs.com:9200). Afficher les informations de base d'un cluster.

<UserName>/<OtherName>

Nom d'utilisateur du cluster (la valeur par défaut est elastic).

<YourPassword>/<OtherPassword>

Mot de passe du cluster.

--type

Le type de migration : settings, mapping ou data.

--searchBody

Filtre les données à l'aide d'une requête Query DSL. Exemple : {"query":{"term":{"user":"admin"}}}

FAQ et dépannage

Q : Error: getaddrinfo ENOTFOUND elastic

[root@i-xxx ~]# elasticdump --input=http://"xxx.public.elasticsearch.aliyuncs.com:9200/customers --output=/root/customers.json --type=settings
Tue, 04 Jul 2023 08:42:53 GMT | starting dump
(node:25448) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.

Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check the migration guide at https://a.co/7PzMCcy
(Use `node --trace-warnings ...` to show where the warning was created)
Tue, 04 Jul 2023 08:43:13 GMT | Error Emitted => getaddrinfo ENOTFOUND elastic
Tue, 04 Jul 2023 08:43:13 GMT | Error Emitted => getaddrinfo ENOTFOUND elastic
Tue, 04 Jul 2023 08:43:13 GMT | Total Writes: 0
Tue, 04 Jul 2023 08:43:13 GMT | dump ended with error (get phase) => Error: getaddrinfo ENOTFOUND elastic

Cause : Cette erreur survient généralement lorsque votre mot de passe contient des caractères spéciaux (comme #, ! ou @) qui perturbent la structure de l'URL.

Solutions : Utilisez un fichier d'authentification.

  1. Créez un fichier nommé auth.ini :

    user=elastic
    password="Your#Complex$Password"
    Remarque

    Le mot de passe doit être entouré de guillemets doubles (").

  2. Exécutez elasticdump en utilisant l'option --httpAuthFile :

    elasticdump --input=http://es-*****.public.elasticsearch.aliyuncs.com:9200/customers --output=/root/customers.json --httpAuthFile=/root/auth.ini --type=settings

Q : URIError: URI malformed

Cause : elasticsearch-dump ne peut pas analyser les noms d'utilisateur et les mots de passe contenant des caractères spéciaux.

Solutions :

  • Méthode 1 : Supprimez les caractères spéciaux du nom d'utilisateur ou du mot de passe.

  • Méthode 2 : Connectez-vous à la console Kibana, créez un utilisateur disposant des autorisations requises et utilisez-le pour la migration.