Ultipa Migrator est un outil de ligne de commande multiplateforme utilisé pour migrer ou copier un ensemble de graphes entier ou des portions de celui-ci à travers différentes instances Ultipa Graph ou au sein de la même instance.
Prérequis
- Un terminal de ligne de commande compatible avec votre système d'exploitation :
- Linux ou MacOS : bash, zsh, tcsh.
- Windows : PowerShell.
- Une version de Ultipa Migrator (Windows/MacOS/Linux) compatible avec votre système d'exploitation.
Les exemples donnés dans ce manuel sont démontrés dans PowerShell sur Windows.
Préparer le Fichier de Configuration
Générer l'exemple
./ultipa-migrator.exe -sample
Le fichier config.yml
sera généré dans le même répertoire que ultipa-migrator.exe
. Si un fichier config.yml
existe déjà dans ce répertoire, il sera écrasé.
Modifier le fichier de configuration
Le contenu du fichier config.yml
exemple est le suivant, modifiez-le selon vos besoins.
# Configuration du serveur source
from:
hosts: 192.168.1.xx:60061
username: root
password: root
graph: SourceGraphName
# Configuration du serveur cible
to:
hosts: 192.168.2.xx:60061
username: root
password: root
graph: TargetGraphName
# Migration des données par UQL (optionnel)
# Types de retour supportés: NODE, EDGE, PATH
uql: ""
# Autres paramètres
normal:
batchsize: 10000
threads: 10
# Temps maximum (en secondes) permis pour copier les données d'un schema
timeout: 3000
# Si vrai, les propriétés LTE-ed dans le graphset source seront également chargées en mémoire dans le graphset cible
lte: true
# Si vrai, les indexes et indexes full-text dans le graphset source seront également créés sur disque dans le graphset cible
index: true
Configuration du serveur source
Clé : from
Sous-clé |
Type |
Description |
---|---|---|
hosts |
String | Adresse IP ou URL de la base de données source; dans le cas d'un cluster, un seul node de serveur doit être spécifié |
username |
String | Nom d'utilisateur de la base de données |
password |
String | Mot de passe de l'utilisateur ci-dessus |
graph |
String | Nom du graphset source à copier |
Configuration du serveur cible
Clé : to
Sous-clé |
Type |
Description |
---|---|---|
hosts |
String | Adresse IP ou URL de la base de données cible; dans le cas d'un cluster, un seul node de serveur doit être spécifié |
username |
String | Nom d'utilisateur de la base de données |
password |
String | Mot de passe de l'utilisateur ci-dessus |
graph |
String | Nom du graphset cible à créer; assurez-vous que le nom spécifié n'existe pas dans la base de données cible |
Migration des données par UQL
Clé |
Type |
Description |
---|---|---|
uql |
String | Copier uniquement les données (nodes/edges/paths) retournées par l'instruction UQL donnée; toutes les données à migrer si non paramétré |
Exemple:
# Migration des données par UQL (optionnel)
# Types de retour supportés: NODE, EDGE, PATH
# Migrer uniquement 100 nodes dont le schema est user
uql: "find().nodes({@user}) as nodes return nodes{*} limit 100"
Notez que la structure complète du graph (y compris tous les schemas et propriétés) sera toujours créée pour le graphset cible.
Autres paramètres
Clé : normal
Sous-clé |
Type |
Défaut |
Description |
---|---|---|---|
batchsize |
Integer | 10000 | Nombre de données dans chaque lot, allant de 1~100000. Pour une valeur dépassant la plage, le système la réglera sur 5000. |
threads |
Integer | 10 | Nombre maximum de threads, allant de 4~2*(cœurs CPU). Pour une valeur dépassant la plage, le système la réglera au nombre de cœurs CPU. |
timeout |
Integer | 3000 | Temps maximum (en secondes) permis pour copier les données d'un schema, allant de 10~10800. Pour une valeur dépassant la plage, le système la réglera sur 10800. |
lte |
Bool | true | Si vrai, les propriétés LTE-ed dans le graphset source seront également chargées en mémoire dans le graphset cible. |
index |
Bool | true | Si vrai, les indexes et indexes full-text dans le graphset source seront également créés sur disque dans le graphset cible. |
Exécuter la Migration
La migration s'exécute selon le fichier de configuration spécifié par le paramètre -config
, qui est supposé créer un nouveau graphset dans le serveur cible et copier la structure et les données depuis le graphset source.
Migrer en utilisant un fichier de configuration (par ex., config.yml
) enregistré dans le même répertoire :
./ultipa-migrator.exe -config config.yml
Migrer en utilisant un fichier de configuration (par ex., migrate0212.yml
) enregistré dans un autre répertoire :
./ultipa-migrator.exe -config C:\Users\johndoe\Desktop\migrate0212.yml
Générer les UQLs pour la Création de Graph et de Structure
./ultipa-migrator.exe -config migrate0212.yml -gen_struct_uql
Un fichier .uql sera généré et enregistré dans le même répertoire que ultipa-migrator.exe
, contenant toutes les instructions UQL pour créer le graphset source et sa structure (schemas et propriétés) spécifiés dans le fichier de configuration. La migration n'est pas effectuée lors de l'utilisation du paramètre -gen_struct_uql
.
Afficher la Version
./ultipa-migrator.exe -version
Afficher l'Aide
./ultipa-migrator.exe -help
Paramètres
Paramètre |
Description | Requis |
---|---|---|
-config |
Exécuter les commandes selon le fichier de configuration | Oui pour exécuter la migration des données et générer les UQLs pour la création de graph et de structure |
-gen_struct_uql |
Générer les UQLs pour créer le graphset et sa structure (schemas et propriétés) | Non |
-sample |
Générer un fichier de configuration exemple nommé config.yml , enregistré dans le même répertoire que ultipa-migrator.exe |
Non |
-version |
Afficher la version de ultipa-migrator.exe |
Non |
-help |
Afficher les informations d'aide | Non |