Von Faiss
Dieser Leitfaden bietet einen umfassenden, schrittweisen Prozess für die Migration von Daten von Faiss nach Milvus 2.x. Wenn Sie diesen Leitfaden befolgen, können Sie Ihre Daten effizient übertragen und dabei die erweiterten Funktionen und die verbesserte Leistung von Milvus 2.x nutzen.
Voraussetzungen
- Software-Versionen:
- Quelle Faiss
- Ziel-Milvus: 2.x
- Einzelheiten zur Installation finden Sie unter Installation von Faiss und Installation von Milvus.
- Erforderliche Werkzeuge:
- Milvus-Migrationswerkzeug. Einzelheiten zur Installation finden Sie unter Migrationswerkzeug installieren.
Konfigurieren Sie die Migration
Speichern Sie die Beispiel-Migrationskonfigurationsdatei unter migration.yaml
und ändern Sie die Konfigurationen auf der Grundlage Ihrer tatsächlichen Bedingungen. Es steht Ihnen frei, die Konfigurationsdatei in einem beliebigen lokalen Verzeichnis abzulegen.
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
In der folgenden Tabelle werden die Parameter in der Beispielkonfigurationsdatei beschrieben. Eine vollständige Liste der Konfigurationsdateien finden Sie in Milvus Migration: Faiss zu Milvus 2.x.
dumper
Parameter Beschreibung dumper.worker.limit
Die Gleichzeitigkeit der Dumper-Threads. dumper.worker.workMode
Der Betriebsmodus des Migrationsauftrags. Bei der Migration von Faiss-Indizes auf Faiss eingestellt. dumper.worker.reader.bufferSize
Puffergröße, die in jedem Batch aus Faiss gelesen wird. Einheit: KB. dumper.worker.writer.bufferSize
Puffergröße für das Schreiben in Milvus in jedem Batch. Einheit: KB. loader
Parameter Beschreibung loader.worker.limit
Die Gleichzeitigkeit der Loader-Threads. source
Parameter Beschreibung source.mode
Gibt an, woher die Quelldateien gelesen werden. Gültige Werte:
-local
: liest Dateien von einer lokalen Festplatte.
-remote
: liest Dateien von einem entfernten Speicher.source.local.faissFile
Der Verzeichnispfad, in dem sich die Quelldateien befinden. Zum Beispiel /db/faiss.index
.target
Parameter Beschreibung target.create.collection.name
Name der Milvus-Sammlung. target.create.collection.shardsNums
Anzahl der Scherben, die in der Sammlung erstellt werden sollen. Weitere Informationen zu Shards finden Sie unter Terminologie. target.create.collection.dim
Dimension des Vektorfeldes. target.create.collection.metricType
Metrischer Typ, der zur Messung von Ähnlichkeiten zwischen Vektoren verwendet wird. Weitere Informationen finden Sie unter Terminologie. target.mode
Speicherort für gedumpte Dateien. Gültige Werte:
-local
: Ausgelesene Dateien auf lokalen Festplatten speichern.
-remote
: Ausgelesene Dateien im Objektspeicher speichern.target.remote.outputDir
Ausgabeverzeichnispfad im Cloud-Speicher-Bucket. target.remote.cloud
Anbieter des Cloud-Speicherdienstes. Beispielwerte: aws
,gcp
,azure
.target.remote.endpoint
Endpunkt des Milvus 2.x-Speichers. target.remote.region
Region des Cloud-Speichers. Es kann ein beliebiger Wert sein, wenn Sie lokales MinIO verwenden. target.remote.bucket
Bucket-Name für die Speicherung von Daten. Der Wert muss derselbe sein wie die Konfiguration in Milvus 2.x. Weitere Informationen finden Sie unter Systemkonfigurationen. target.remote.ak
Zugriffsschlüssel für Milvus 2.x-Speicher. target.remote.sk
Geheimer Schlüssel für Milvus 2.x-Speicher. target.remote.useIAM
Ob eine IAM-Rolle für die Verbindung verwendet werden soll. target.remote.useSSL
Ob SSL bei der Verbindung zu Milvus 2.x aktiviert werden soll. Weitere Informationen finden Sie unter Verschlüsselung bei der Übertragung. target.remote.checkBucket
Ob geprüft werden soll, ob der angegebene Bucket im Objektspeicher vorhanden ist. target.milvus2x.endpoint
Adresse des Milvus-Zielservers. target.milvus2x.username
Benutzername für den Milvus 2.x-Server. Dieser Parameter ist erforderlich, wenn die Benutzerauthentifizierung für Ihren Milvus-Server aktiviert ist. Weitere Informationen finden Sie unter Aktivieren der Authentifizierung. target.milvus2x.password
Passwort für den Milvus 2.x-Server. Dieser Parameter ist erforderlich, wenn die Benutzerauthentifizierung für Ihren Milvus-Server aktiviert ist. Weitere Informationen finden Sie unter Aktivieren der Authentifizierung.
Starten Sie die Migrationsaufgabe
Starten Sie die Migrationsaufgabe mit dem folgenden Befehl. Ersetzen Sie
{YourConfigFilePath}
durch das lokale Verzeichnis, in dem sich die Konfigurationsdateimigration.yaml
befindet../milvus-migration dump --config=/{YourConfigFilePath}/migration.yaml
Der obige Befehl konvertiert die Faiss-Indexdaten in NumPy-Dateien und verwendet dann den Vorgang bulkInsert, um die Daten in den Ziel-Bucket zu schreiben.
Sobald die NumPy-Dateien erzeugt sind, importieren Sie diese Dateien mit dem folgenden Befehl in Milvus 2.x. Ersetzen Sie
{YourConfigFilePath}
durch das lokale Verzeichnis, in dem sich die Konfigurationsdateimigration.yaml
befindet../milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
Überprüfen Sie das Ergebnis
Sobald die Migrationsaufgabe ausgeführt wurde, können Sie API-Aufrufe tätigen oder Attu verwenden, um die Anzahl der migrierten Entitäten anzuzeigen. Weitere Informationen finden Sie unter Attu und get_collection_stats().