Milvus 1.x から
このガイドでは、Milvus 1.x(0.9.x以降を含む)からMilvus 2.xへデータを移行するための包括的なステップバイステップのプロセスを提供します。このガイドに従うことで、Milvus 2.xの高度な機能と改善されたパフォーマンスを活用しながら、効率的にデータを移行することができます。
前提条件
- ソフトウェアのバージョン
- ソースMilvus: 0.9.x から 1.x
- ターゲットMilvus: 2.x
- 必要なツール
- Milvusマイグレーションツール。インストールの詳細については、マイグレーションツールのインストールを参照してください。
移行元Milvusのメタデータのエクスポート
Milvus 0.9.xから1.xへの移行データを準備するため、移行元のMilvusを停止するか、少なくともDML操作を停止してください。
移行元Milvusのメタデータを
meta.json
にエクスポートします。- バックエンドにMySQLを使用している場合、以下のコマンドを実行してください。
./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir
- SQLiteをバックエンドとして使用している場合は、以下を実行してください。
./milvus-migration export -s /milvus/db/meta.sqlite -o outputDir
Milvusの
tables
フォルダをコピーし、meta.json
とtables
フォルダの両方を空のフォルダに移動します。この手順が完了すると、空のフォルダの構造は以下のようになります:
migration_data ├── meta.json └── tables
前のステップで準備したフォルダをS3ブロックストレージバケットにアップロードするか、次のセクションでこのローカルフォルダを直接使用します。
マイグレーションファイルの設定
マイグレーション設定ファイルの例をmigration.yaml
として保存し、実際の条件に基づいて設定を変更します。コンフィグファイルは任意のローカルディレクトリに自由に置くことができます。
dumper:
worker:
limit: 2
workMode: milvus1x
reader:
bufferSize: 1024
writer:
bufferSize: 1024
loader:
worker:
limit: 16
meta:
mode: local
localFile: /outputDir/test/meta.json
source:
mode: local
local:
tablesDir: /db/tables/
target:
mode: remote
remote:
outputDir: "migration/test/xx"
ak: xxxx
sk: xxxx
cloud: aws
region: us-west-2
bucket: xxxxx
useIAM: true
checkBucket: false
milvus2x:
endpoint: "{yourMilvus2_xServerAddress}:{port}"
username: xxxx
password: xxxx
次の表は、コンフィグファイル例のパラメータを説明したものです。コンフィグファイルの全リストはMilvus Migration を参照してください:Milvus1.xからMilvus2.xへの移行をご参照ください。
dumper
パラメータ 説明 dumper.worker.limit
ダンパースレッドの同時実行数。 dumper.worker.workMode
移行ジョブの動作モード。Milvus 1.x からマイグレーションする場合は milvus1x
に設定します。dumper.worker.reader.bufferSize
各バッチでMilvus 1.xから読み込むバッファサイズ。単位:KB。 dumper.worker.writer.bufferSize
各バッチでMilvus 2.xに書き込むバッファサイズ。単位: KBKB。 loader
パラメータ 説明 loader.worker.limit
ローダースレッドの同時実行数。 meta
パラメータ 説明 meta.mode
メタ・ファイルmeta.jsonの読み込み元を指定する。有効な値: local
remote
,mysql
,sqlite
.meta.localFile
meta.json
ファイルが存在するローカル・ディレクトリ・パス。このコンフィグは、meta.mode
がlocal
に設定されている場合にのみ使用されます。その他のmetaコンフィグについては、README_1Xを参照してください。source
パラメータ 説明 source.mode
ソース・ファイルの読み込み元を指定します。有効な値:
-local
: ローカル・ディスクからファイルを読み込む。
-remote
: リモート・ストレージからファイルを読み込む。source.local.tablesDir
ソース・ファイルが置かれているディレクトリ・パス。例えば、 /db/tables/
。target
パラメータ 説明 target.mode
ダンプ・ファイルの格納場所。有効な値:
-local
: ダンプされたファイルをローカルディスクに保存します。
-remote
: ダンプされたファイルをオブジェクトストレージに保存します。target.remote.outputDir
クラウドストレージバケット内の出力ディレクトリパス. target.remote.ak
Milvus 2.x ストレージのアクセスキー. target.remote.sk
Milvus 2.xストレージのシークレットキー target.remote.cloud
クラウドストレージサービスプロバイダ.値の例: aws
gcp
,azure
.target.remote.region
クラウドストレージのリージョン。ローカルのMinIOを使用する場合は任意の値を指定できます。 target.remote.bucket
データを保存するバケット名。値はMilvus 2.xの設定と同じでなければなりません。詳細はシステム設定を参照してください。 target.remote.useIAM
接続にIAM Roleを使用するかどうか。 target.remote.checkBucket
指定したバケットがオブジェクトストレージに存在するかチェックするかどうか。 target.milvus2x.endpoint
接続先Milvusサーバのアドレス target.milvus2x.username
Milvus2.xサーバのユーザ名。このパラメータは、Milvus サーバでユーザ認証が有効になっている場合に必要です。詳細については、「認証の有効化」を参照してください。 target.milvus2x.password
Milvus 2.xサーバのパスワード。このパラメータは、Milvus サーバでユーザ認証が有効になっている場合に必要です。詳細については、「認証の有効化」を参照してください。
移行タスクの開始
以下のコマンドで移行タスクを開始します。
{YourConfigFilePath}
は設定ファイルmigration.yaml
が存在するローカルディレクトリに置き換えてください。./milvus-migration dump --config=/{YourConfigFilePath}/migration.yaml
上記のコマンドはMilvus 1.xのソースデータをNumPyファイルに変換し、bulkInsertオペレーションを使ってターゲットバケットにデータを書き込む。
NumPyファイルが生成されたら、以下のコマンドでこれらのファイルをMilvus 2.xにインポートする。
{YourConfigFilePath}
は設定ファイルmigration.yaml
が存在するローカルディレクトリに置き換えてください。./milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
結果の確認
マイグレーションタスクが実行されると、APIコールやAttuを使用してマイグレーションされたエンティティ数を確認することができます。詳細については、Attuおよびget_collection_stats() を参照してください。