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
- Versions du logiciel:
- Source Faiss
- Milvus cible : 2.x
- Pour plus de détails sur l'installation, voir Installer Faiss et Installer Milvus.
- Outils requis:
- Outil demigration Milvus. Pour plus de détails sur l'installation, voir Installer l'outil de migration.
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ètre Description dumper.worker.limit
La simultanéité des threads dumper. dumper.worker.workMode
Le mode opérationnel de la tâche de migration. Défini à faiss lors de la migration à partir d'index Faiss. dumper.worker.reader.bufferSize
Taille de la mémoire tampon à lire à partir de Faiss dans chaque lot. Unité : KO. dumper.worker.writer.bufferSize
Taille de la mémoire tampon pour écrire à Milvus dans chaque lot. Unité : KB : KO. loader
Paramètre Description du paramètre loader.worker.limit
Concurrence des threads du chargeur. source
Paramètre Description source.mode
Spé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.faissFile
Chemin d'accès au répertoire où se trouvent les fichiers sources. Par exemple, /db/faiss.index
.target
Paramètre Description target.create.collection.name
Nom de la collection Milvus. target.create.collection.shardsNums
Nombre de tessons à créer dans la collection. Pour plus d'informations sur les tessons, reportez-vous à la section Terminologie. target.create.collection.dim
Dimension du champ de vecteurs. target.create.collection.metricType
Type de métrique utilisé pour mesurer les similitudes entre les vecteurs. Pour plus d'informations, voir Terminologie. target.mode
Emplacement 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.outputDir
Chemin du répertoire de sortie dans le panier de stockage en nuage. target.remote.cloud
Fournisseur de services de stockage en nuage. Exemples de valeurs : aws
,gcp
,azure
.target.remote.endpoint
Point final du stockage Milvus 2.x. target.remote.region
Région de stockage en nuage. Il peut s'agir de n'importe quelle valeur si vous utilisez MinIO local. target.remote.bucket
Nom 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.ak
Clé d'accès pour le stockage Milvus 2.x. target.remote.sk
Clé secrète pour le stockage Milvus 2.x. target.remote.useIAM
Utilisation ou non d'un rôle IAM pour la connexion. target.remote.useSSL
Activation ou non de SSL lors de la connexion à Milvus 2.x. Pour plus d'informations, voir Chiffrement en transit. target.remote.checkBucket
Vérifier si le seau spécifié existe dans le stockage d'objets. target.milvus2x.endpoint
Adresse du serveur Milvus cible. target.milvus2x.username
Nom 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.password
Mot 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. Remplacer
{YourConfigFilePath}
par le répertoire local où se trouve le fichier de configurationmigration.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.
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().