Depuis Milvus 1.x
Ce guide fournit un processus complet, étape par étape, pour la migration des données de Milvus 1.x (y compris 0.9.x et supérieur) vers Milvus 2.x. En suivant ce guide, vous pourrez transférer efficacement vos données, en tirant parti des fonctionnalités avancées et des performances améliorées de Milvus 2.x.
Conditions préalables
- Versions du logiciel:
- Milvus source : 0.9.x à 1.x
- Milvus cible : 2.x
- Outils requis:
- Outil demigration Milvus. Pour plus de détails sur l'installation, voir Installer l'outil de migration.
Exportation des métadonnées de l'installation Milvus source
Pour préparer les données de migration pour Milvus 0.9.x à 1.x, arrêter l'installation Milvus source ou au moins cesser d'y effectuer des opérations DML.
Exporter les métadonnées de l'installation Milvus source vers
meta.json.- Pour les installations utilisant MySQL comme backend, exécuter
./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir- Pour les installations utilisant SQLite comme backend, exécuter
./milvus-migration export -s /milvus/db/meta.sqlite -o outputDirCopiez le dossier
tablesde votre installation Milvus, puis déplacez les dossiersmeta.jsonettablesdans un dossier vide.Une fois cette étape terminée, la structure du dossier vide doit ressembler à ceci :
migration_data ├── meta.json └── tablesTéléchargez le dossier préparé à l'étape précédente vers un bloc de stockage S3 ou utilisez directement ce dossier local dans la section suivante.
Configurer le fichier de migration
Enregistrez le fichier de configuration de l'exemple de migration sous migration.yaml et modifiez les configurations en fonction de vos conditions réelles. Vous êtes libre de placer le fichier de configuration dans n'importe quel répertoire local.
dumper:
worker:
limit: 2
workMode: milvus1x
reader:
bufferSize: 1024
writer:
bufferSize: 1024
loader:
worker:
limit: 16
meta:
mode: local
localFile: /outputDir/test/meta.json
source:
mode: local
local:
tablesDir: /db/tables/
target:
mode: remote
remote:
outputDir: "migration/test/xx"
ak: xxxx
sk: xxxx
cloud: aws
region: us-west-2
bucket: xxxxx
useIAM: true
checkBucket: false
milvus2x:
endpoint: "{yourMilvus2_xServerAddress}:{port}"
username: xxxx
password: xxxx
Le tableau suivant décrit les paramètres du fichier de configuration de l'exemple. Pour une liste complète des configurations, reportez-vous à Milvus Migration : Milvus1.x à Milvus 2.x.
dumperParamètre Description du paramètre dumper.worker.limitConcurrence des threads dumper. dumper.worker.workModeLe mode opérationnel de la tâche de migration. Défini sur milvus1xlors de la migration depuis Milvus 1.x.dumper.worker.reader.bufferSizeTaille de la mémoire tampon à lire à partir de Milvus 1.x dans chaque lot. Unité : KO. dumper.worker.writer.bufferSizeTaille de la mémoire tampon pour écrire dans Milvus 2.x dans chaque lot. Unité : Ko : KO. loaderParamètre Description loader.worker.limitConcurrence des threads du chargeur. metaParamètre Description meta.modeSpécifie où le fichier meta meta.json est lu. Valeurs valides : local,remote,mysql,sqlite.meta.localFileChemin d'accès au répertoire local où se trouve le fichier meta.json. Cette configuration n'est utilisée que lorsquemeta.modeest défini surlocal. Pour d'autres configurations méta, reportez-vous à README_1X.sourceParamètre Description source.modeSpécifie l'endroit où les fichiers sources sont lus. Valeurs valides :
-local: lit les fichiers à partir d'un disque local.
-remote: lit les fichiers à partir d'un stockage distant.source.local.tablesDirChemin d'accès au répertoire où se trouvent les fichiers sources. Par exemple, /db/tables/.targetParamètre Description target.modeEmplacement de stockage des fichiers vidés. Valeurs valides :
-local: Stockage des fichiers vidés sur les disques locaux.
-remote: Stockage des fichiers vidés sur le stockage d'objets.target.remote.outputDirChemin du répertoire de sortie dans le panier de stockage en nuage. target.remote.akClé d'accès pour le stockage Milvus 2.x. target.remote.skClé secrète pour le stockage Milvus 2.x. target.remote.cloudFournisseur de services de stockage en nuage. Exemples de valeurs : aws,gcp,azure.target.remote.regionRégion de stockage dans le nuage. Il peut s'agir de n'importe quelle valeur si vous utilisez MinIO local. target.remote.bucketNom du bac pour le stockage des données. La valeur doit être la même que la configuration dans Milvus 2.x. Pour plus d'informations, voir Configurations du système. target.remote.useIAMSi un rôle IAM doit être utilisé pour la connexion. target.remote.checkBucketVérifier si le seau spécifié existe dans le stockage d'objets. target.milvus2x.endpointAdresse du serveur Milvus cible. target.milvus2x.usernameNom d'utilisateur pour le serveur Milvus 2.x. Ce paramètre est requis si l'authentification utilisateur est activée pour votre serveur Milvus. Pour plus d'informations, voir Activer l'authentification. target.milvus2x.passwordMot de passe pour le serveur Milvus 2.x. Ce paramètre est requis si l'authentification utilisateur est activée pour votre serveur Milvus. Pour plus d'informations, voir Activer l'authentification.
Démarrer la tâche de migration
Démarrer la tâche de migration avec la commande suivante. Remplacez
{YourConfigFilePath}par le répertoire local où se trouve le fichier de configurationmigration.yaml../milvus-migration dump --config=/{YourConfigFilePath}/migration.yamlLa commande ci-dessus convertit les données source dans Milvus 1.x en fichiers NumPy, puis utilise l'opération bulkInsert pour écrire les données dans le seau cible.
Une fois les fichiers NumPy générés, importez-les dans Milvus 2.x à l'aide de la commande suivante. Remplacez
{YourConfigFilePath}par le répertoire local où se trouve le fichier de configurationmigration.yaml../milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
Vérifier le résultat
Une fois la tâche de migration exécutée, vous pouvez effectuer des appels API ou utiliser Attu pour afficher le nombre d'entités migrées. Pour plus d'informations, reportez-vous à Attu et à get_collection_stats().