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
-
Connectez-vous à l'instance ECS.
Consultez la rubrique Se connecter à une instance Linux à l'aide d'un mot de passe ou d'une clé.
-
Installez Node.js.
-
Téléchargez le package :
wget https://nodejs.org/dist/v16.18.0/node-v16.18.0-linux-x64.tar.xz -
Décompressez et déplacez les fichiers :
tar -xf node-v16.18.0-linux-x64.tar.xz -
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
-
-
-
Installez elasticsearch-dump :
npm install elasticdump -g
Exemples
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.
-
Migrez les paramètres de l'index :
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=settings -
Migrez les mappings :
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=mapping -
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)
-
Migrez les paramètres :
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=settings -
Migrez les mappings :
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=mapping -
Migrez les documents (données) :
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=data -
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 |
|
|
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, |
|
<UserName>/<OtherName> |
Nom d'utilisateur du cluster (la valeur par défaut est |
|
<YourPassword>/<OtherPassword> |
Mot de passe du cluster. |
|
|
Le type de migration : |
|
|
Filtre les données à l'aide d'une requête Query DSL. Exemple : |