milvus-logo
LFAI
Home
  • Milvus Migration

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

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.

  1. 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 outputDir
    
  2. Copiez le dossier tables de votre installation Milvus, puis déplacez les dossiers meta.json et tables dans un dossier vide.

    Une fois cette étape terminée, la structure du dossier vide devrait ressembler à ceci :

    migration_data
    ├── meta.json
    └── tables
    
  3. Té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.

  • dumper

    ParamètreDescription du paramètre
    dumper.worker.limitConcurrence des threads dumper.
    dumper.worker.workModeLe mode opérationnel de la tâche de migration. Défini sur milvus1x lors 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.
  • loader

    ParamètreDescription
    loader.worker.limitConcurrence des threads du chargeur.
  • meta

    ParamètreDescription
    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 lorsque meta.mode est défini sur local. Pour d'autres configurations méta, reportez-vous à README_1X.
  • source

    ParamètreDescription
    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/.
  • target

    ParamètreDescription
    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

  1. Lancer la tâche de migration avec la commande suivante. Remplacez {YourConfigFilePath} par le répertoire local où se trouve le fichier de configuration migration.yaml.

    ./milvus-migration  dump  --config=/{YourConfigFilePath}/migration.yaml
    

    La 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.

  2. 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 configuration migration.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().

Traduit parDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Cette page a-t - elle été utile ?