Milvus Migration跨集群迁移Milvus数据

部署milvus-migrate工具

下载release包

wget https://github.com/milvus-io/milvus-tools/releases/download/v0.2.0/milvus_migrate-0.2.0-linux-amd64.tar.gz

创建目录

mkdir /opt/milvus-migrate/configs

解压release包

tar -zxvf milvus_migrate-0.2.0-linux-amd64.tar.gz -C /opt/milvus-migrate/

创建配置文件

cp /opt/milvus-migrate/configs/config.yaml.example /opt/milvus-migrate/configs/config.yaml

修改配置文件

dumper:
worker:
workMode: milvus2x # work mode:milvus2x->milvus2x
reader:
bufferSize: 100 # Read source data rows in each time read from Source Milvus.

meta: # meta part
mode: config # 'config' mode means will get meta config from this config file itself.
version: 2.3.2-dev # Source Milvus version

source: # source milvus connection info
milvus2x:
endpoint: x.x.x.x:19530
username: root
password: xxxxx
timeout: 60

target: # target milvus collection info
milvus2x:
endpoint: x.x.x.x:19530
username: root
password: xxxxx
timeout: 60

index:
migration

测试迁移collection

/opt/milvus-migrate/milvus_migrate -c /opt/milvus-migrate/configs/config.yaml -t test_collection

迁移collection

创建批量迁移脚本

from pymilvus import MilvusClient
import logging
import os

# Configure logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

def query_collection_list(uri, username, password):
# Create MilvusClient instance
try:
client_res = client = MilvusClient(
uri=uri,
token=f"{username}:{password}"
)
except Exception as e:
logging.error(e._state.details)
exit(1)

# 查询集合列表
collections = client_res.list_collections()
collection_list = " ".join(collections)
logging.info(f"Collections: {collection_list}")
return collections

def migrate_collection(uri, username, password):
collection_list = query_collection_list(uri, username, password)
for collection in collection_list:
logging.info(f"Migrating collection: {collection}")
os.system(f"/opt/milvus-migration/configs/milvus-migration -c /opt/milvus-migration/configs/migration.yaml start -t {collection}")


if __name__ == "__main__":
# source milvus connection info
uri = 'http://x.x.x.x:19530' # Replace with your Milvus server address
username = "root"
password = "Milvus"
query_collection_list(uri, username, password)

运行脚本

python migrate_collection.py
文章作者: 慕容峻才
文章链接: https://www.acaiblog.top/Milvus-Migration跨集群迁移Milvus数据/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿才的博客
微信打赏
支付宝打赏