milvus-logo
LFAI
Home
  • Milvus Migration

Depuis Faiss

Ce guide fournit un processus complet, étape par étape, pour la migration des données de Faiss vers Milvus 2.x. En suivant ce guide, vous serez en mesure de 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

Configurer la 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: # configs for the migration job.
  worker:
    limit: 2
    workMode: faiss    # operational mode of the migration job.
    reader:
      bufferSize: 1024
    writer:
      bufferSize: 1024
loader:
  worker:
    limit: 2
source: # configs for the source Faiss index.
  mode: local
  local:
    faissFile: ./testfiles/faiss/faiss_ivf_flat.index

target: # configs for the target Milvus collection.
  create:
    collection:
      name: test1w
      shardsNums: 2
      dim: 256
      metricType: L2

  mode: remote
  remote:
    outputDir: testfiles/output/
    cloud: aws
    endpoint: 0.0.0.0:9000
    region: ap-southeast-1
    bucket: a-bucket
    ak: minioadmin
    sk: minioadmin
    useIAM: false
    useSSL: false
    checkBucket: true
  milvus2x:
    endpoint: localhost:19530
    username: xxxxx
    password: xxxxx

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 : Faiss vers Milvus 2.x.

  • dumper

    ParamètreDescription
    dumper.worker.limitLa simultanéité des threads dumper.
    dumper.worker.workModeLe mode opérationnel de la tâche de migration. Défini à faiss lors de la migration à partir d'index Faiss.
    dumper.worker.reader.bufferSizeTaille de la mémoire tampon à lire à partir de Faiss dans chaque lot. Unité : KO.
    dumper.worker.writer.bufferSizeTaille de la mémoire tampon pour écrire à Milvus dans chaque lot. Unité : KB : KO.
  • loader

    ParamètreDescription du paramètre
    loader.worker.limitConcurrence des threads du chargeur.
  • source

    ParamètreDescription
    source.modeSpécifie l'endroit où les fichiers sources sont lus. Valeurs valables :
    - local: lit les fichiers à partir d'un disque local.
    - remote: lit les fichiers à partir d'un stockage distant.
    source.local.faissFileChemin d'accès au répertoire où se trouvent les fichiers sources. Par exemple, /db/faiss.index.
  • target

    ParamètreDescription
    target.create.collection.nameNom de la collection Milvus.
    target.create.collection.shardsNumsNombre de tessons à créer dans la collection. Pour plus d'informations sur les tessons, reportez-vous à la section Terminologie.
    target.create.collection.dimDimension du champ de vecteurs.
    target.create.collection.metricTypeType de métrique utilisé pour mesurer les similitudes entre les vecteurs. Pour plus d'informations, voir Terminologie.
    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.cloudFournisseur de services de stockage en nuage. Exemples de valeurs : aws, gcp, azure.
    target.remote.endpointPoint final du stockage Milvus 2.x.
    target.remote.regionRégion de stockage en 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.akClé d'accès pour le stockage Milvus 2.x.
    target.remote.skClé secrète pour le stockage Milvus 2.x.
    target.remote.useIAMUtilisation ou non d'un rôle IAM pour la connexion.
    target.remote.useSSLActivation ou non de SSL lors de la connexion à Milvus 2.x. Pour plus d'informations, voir Chiffrement en transit.
    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 du 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. Démarrer la tâche de migration avec la commande suivante. Remplacer {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 de l'index Faiss en fichiers NumPy, puis utilise l'opération bulkInsert pour écrire les données dans le panier 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 ?