Faissから
このガイドでは、FaissからMilvus 2.xへデータを移行するための包括的なステップバイステップのプロセスを提供します。このガイドに従うことで、Milvus 2.xの高度な機能と改善されたパフォーマンスを活用しながら、効率的にデータを移行することができます。
前提条件
- ソフトウェアのバージョン
- ソースFaiss
- ターゲットMilvus: 2.x
- インストールの詳細については、FaissのインストールおよびMilvusのインストールを参照してください。
- 必要なツール
- Milvusマイグレーションツール。インストールの詳細については、移行ツールのインストールを参照してください。
マイグレーションの設定
マイグレーション設定例ファイルをmigration.yaml
として保存し、実際の状況に応じて設定を変更してください。コンフィグファイルは任意のローカルディレクトリに自由に置くことができます。
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
次の表は、コンフィグファイル例のパラメータを説明したものです。コンフィグファイルの全リストはMilvus Migrationを参照してください:FaissからMilvus 2.xへの移行をご参照ください。
dumper
パラメータ 説明 dumper.worker.limit
ダンパースレッドの同時実行数。 dumper.worker.workMode
移行ジョブの動作モード。Faissインデックスから移行する場合はfaissに設定する。 dumper.worker.reader.bufferSize
各バッチでFaissから読み込むバッファサイズ。単位:KB。 dumper.worker.writer.bufferSize
各バッチでMilvusに書き込むバッファサイズ。単位はKB:KB。 loader
パラメータ 説明 loader.worker.limit
ローダースレッドの同時実行数。 source
パラメータ 説明 source.mode
ソース・ファイルの読み取り元を指定します。有効な値:
-local
: ローカル・ディスクからファイルを読み込む。
-remote
: リモート・ストレージからファイルを読み込む。source.local.faissFile
ソース・ファイルが置かれているディレクトリ・パス。例えば、 /db/faiss.index
。target
パラメータ 説明 target.create.collection.name
Milvus コレクションの名前。 target.create.collection.shardsNums
コレクションに作成されるシャードの数。シャードの詳細については、用語を参照してください。 target.create.collection.dim
ベクトルフィールドの次元。 target.create.collection.metricType
ベクトル間の類似性を測定するために使用されるメトリックタイプ。詳細は「用語」を参照。 target.mode
ダンプされたファイルの保存場所。有効な値:
-local
: ダンプされたファイルをローカルディスクに保存します。
-remote
: ダンプされたファイルをオブジェクトストレージに保存します。target.remote.outputDir
クラウドストレージバケット内の出力ディレクトリパス。 target.remote.cloud
クラウドストレージサービスプロバイダ。値の例: aws
gcp
,azure
.target.remote.endpoint
Milvus 2.x ストレージのエンドポイント。 target.remote.region
クラウドストレージのリージョン。ローカルのMinIOを使用する場合は任意の値を指定できます。 target.remote.bucket
データを保存するバケット名。この値はMilvus 2.xの設定と同じでなければなりません。詳細はシステム設定を参照してください。 target.remote.ak
Milvus 2.xストレージのアクセスキー。 target.remote.sk
Milvus 2.x ストレージのシークレットキー。 target.remote.useIAM
接続にIAM Roleを使用するかどうか。 target.remote.useSSL
Milvus2.xへの接続時にSSLを有効にするかどうか。 target.remote.checkBucket
指定したバケットがオブジェクトストレージに存在するかどうかを確認するかどうか。 target.milvus2x.endpoint
接続先Milvusサーバのアドレス target.milvus2x.username
Milvus 2.xサーバのユーザ名。このパラメータはMilvusサーバでユーザ認証が有効になっている場合に必要です。詳細については、「認証の有効化」を参照してください。 target.milvus2x.password
Milvus 2.xサーバのパスワード。このパラメータは、Milvus サーバでユーザ認証が有効になっている場合に必要です。詳細については、「認証を有効にする」を参照してください。
移行タスクの開始
以下のコマンドで移行タスクを開始します。
{YourConfigFilePath}
は設定ファイルmigration.yaml
が存在するローカルディレクトリに置き換えてください。./milvus-migration dump --config=/{YourConfigFilePath}/migration.yaml
上記のコマンドは、FaissインデックスデータをNumPyファイルに変換し、bulkInsertオペレーションを使ってターゲットバケットにデータを書き込む。
NumPyファイルが生成されたら、以下のコマンドでこれらのファイルをMilvus 2.xにインポートする。
{YourConfigFilePath}
は設定ファイルmigration.yaml
が存在するローカルディレクトリに置き換えてください。./milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
結果の確認
マイグレーションタスクが実行されると、APIコールやAttuを使用してマイグレーションされたエンティティ数を確認することができます。詳細については、Attuおよびget_collection_stats() を参照してください。