1.前提:这个数据迁移工具是collection 维度的
2.文章内是2.3.1–》2.4.5数据迁移,公司内部需求,各位看官注意哈
官方架构图:
想要迁移的milvus 官方称之为:源source milvus
要迁入的表
目标的milvus 官方称之为:目标target milvus
安装migration
github地址:https://github.com/zilliztech/milvus-migration
下载下来然后:
1.创建文件夹
2. 解压
tar -xzvf milvus-migration_Linux_x86_64.tar.gz
得到以下的目录
下载模板文件yaml,放入milvus_migration/configs 下,一般命名:migration.yaml
dumper:
worker:
workMode: milvus2x
reader:
bufferSize: 500
meta:
mode: config
version: 2.3.1
collection: test_0829 #表名
source:
milvus2x:
endpoint: xxxx(ip):325xx(port)
database: xx
username: xxx
password: xx
target:
milvus2x:
endpoint: xxxx:324xx
database: xxx
username: xxx
password: xxx
执行命令
./milvus-migration start --config=/opt/k8s/octopus/milvus_migration/configs/migration.yaml
ok 完成!
由于这个脚本只能单表导入,官网提供了sh 脚本实现 批量导入
batch_collection_migration.sh
#!/bin/bash
collections=("collection1" "collection2" "collection3")
for collection in "${collections[@]}"; do
echo "BatchMigration==> $collection"
./milvus-migration start -t="$collection" -c=/opt/k8s/octopus/milvus_migration/migration.yml
done
看的出来就是shell脚本for 循环执行就行了,但是我的表很多哎,这样一点点写很烦,改一下吧
执行
如果目标 Milvus 中没有与源集合对应的集合,milvus-migration工具会自动创建该集合。注意,迁移后目标集合不会被索引,您需要手动为该集合创建索引。