milvus-logo
LFAI
Home
  • Milvus-Migration

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

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

    ParameterBeschreibung
    dumper.worker.limitDie Gleichzeitigkeit der Dumper-Threads.
    dumper.worker.workModeDer Betriebsmodus des Migrationsauftrags. Bei der Migration von Faiss-Indizes auf Faiss eingestellt.
    dumper.worker.reader.bufferSizePuffergröße, die in jedem Batch aus Faiss gelesen wird. Einheit: KB.
    dumper.worker.writer.bufferSizePuffergröße für das Schreiben in Milvus in jedem Batch. Einheit: KB.
  • loader

    ParameterBeschreibung
    loader.worker.limitDie Gleichzeitigkeit der Loader-Threads.
  • source

    ParameterBeschreibung
    source.modeGibt 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.faissFileDer Verzeichnispfad, in dem sich die Quelldateien befinden. Zum Beispiel /db/faiss.index.
  • target

    ParameterBeschreibung
    target.create.collection.nameName der Milvus-Sammlung.
    target.create.collection.shardsNumsAnzahl der Scherben, die in der Sammlung erstellt werden sollen. Weitere Informationen zu Shards finden Sie unter Terminologie.
    target.create.collection.dimDimension des Vektorfeldes.
    target.create.collection.metricTypeMetrischer Typ, der zur Messung von Ähnlichkeiten zwischen Vektoren verwendet wird. Weitere Informationen finden Sie unter Terminologie.
    target.modeSpeicherort für gedumpte Dateien. Gültige Werte:
    - local: Ausgelesene Dateien auf lokalen Festplatten speichern.
    - remote: Ausgelesene Dateien im Objektspeicher speichern.
    target.remote.outputDirAusgabeverzeichnispfad im Cloud-Speicher-Bucket.
    target.remote.cloudAnbieter des Cloud-Speicherdienstes. Beispielwerte: aws, gcp, azure.
    target.remote.endpointEndpunkt des Milvus 2.x-Speichers.
    target.remote.regionRegion des Cloud-Speichers. Es kann ein beliebiger Wert sein, wenn Sie lokales MinIO verwenden.
    target.remote.bucketBucket-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.akZugriffsschlüssel für Milvus 2.x-Speicher.
    target.remote.skGeheimer Schlüssel für Milvus 2.x-Speicher.
    target.remote.useIAMOb eine IAM-Rolle für die Verbindung verwendet werden soll.
    target.remote.useSSLOb SSL bei der Verbindung zu Milvus 2.x aktiviert werden soll. Weitere Informationen finden Sie unter Verschlüsselung bei der Übertragung.
    target.remote.checkBucketOb geprüft werden soll, ob der angegebene Bucket im Objektspeicher vorhanden ist.
    target.milvus2x.endpointAdresse des Milvus-Zielservers.
    target.milvus2x.usernameBenutzername 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.passwordPasswort 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

  1. Starten Sie die Migrationsaufgabe mit dem folgenden Befehl. Ersetzen Sie {YourConfigFilePath} durch das lokale Verzeichnis, in dem sich die Konfigurationsdatei migration.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.

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

Übersetzt vonDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?