从阿里云Milvus Beta版或自建集群向阿里云Milvus版的迁移方案

阿里云向量检索服务Milvus版是由阿里云与Zilliz联合打造的一款全托管向量检索引擎,集成Zilliz商业版内核,并确保与开源Milvus的完全兼容性,支持无缝迁移。本文主要介绍如何使用迁移工具,将存量数据从阿里云Beta版Milvus集群或用户自建的Milvus集群,迁移到阿里云Milvus Zilliz内核版集群的方案。

前提条件

  • 已创建阿里云Beta版Milvus集群或自建的Milvus集群。

  • 已安装Docker,详情请参见Docker官方文档

    说明

    迁移工具在容器环境中运行,因此需要确保Docker已安装。

使用限制

  • 源集群和目标集群的Milvus版本必须大于2.3.0。

  • 确保客户端的网络环境可以访问源集群和目标集群。

  • 确认源集群内的Collection处于已加载(Loaded)状态。

    说明

    如果目标集群中没有该Collection,迁移工具会自动创建该Collection。但需要注意的是,迁移完成后,目标集群的索引不会自动创建,需要您手动创建相应的索引。

注意事项

该迁移方案专注于存量数据的迁移。如果在迁移过程中,Collection不断接收到新的数据录入(即增量数据),那么迁移将无法自动包含这些增量的数据。

迁移流程

步骤一:下载迁移工具

下载迁移工具milvus-migration-tool-0.1.26.tar.gz。该迁移工具是免安装版,直接解压即可使用。

步骤二:配置迁移工具

  1. 进入解压缩后的milvus-migration-tool目录。

  2. 修改configs目录下的migration.yaml文件。

    migration.yaml文件内容示例如下所示。

    dumper:
      worker:
        workMode: milvus2x  # 定义工具模式,设置为milvus2x即可,代表迁移至milvus2.x。
        reader:
          bufferSize: 500   # 每次从源集群批量读取数据的行数。
    
    meta:
      mode: config         # 设置为config即可,声明从配置文件中读取元数据配置。
      version: 2.3.0       # 源集群版本,设置为2.3.0及以上。
      collection: "*"      # 从该源集合迁移数据,'*'表示在脚本模式下所有集合。
    
    source:
      milvus2x:
        endpoint: {milvus2x_domain}:{milvus2x_port} 
        database: xxxx 
        username: xxxx 
        password: xxxxx 
    
    
    target:
      milvus2x:
        endpoint: {milvus2x_domain}:{milvus2x_port}
        database: xxxx 
        username: xxxx  
        password: xxxxx 
    
    index:
      mode: manual             # 指定索引模式。取值为migration、new和manual。
    

    涉及以下参数需要您根据实际情况进行替换。

    参数

    说明

    version

    源集群的Milvus版本。

    collection

    源集群的Collection名称。*表示需要对所有Collection进行操作。

    本文示例中,源集群仅包含一个名为milvus_collection的集合。

    endpoint

    源集群或者目标集群的Endpoint。

    如果是阿里云Beta版Milvus集群,则格式为c-xxx.milvus.aliyuncs.com:19530或者c-xxx-internal.milvus.aliyuncs.com:19530,其中c-xxx为Milvus集群的ID。

    database

    源集群或者目标集群的数据库名称。不指定时默认为default。

    username

    源集群或者目标集群用于登录数据库的账号。如果是阿里云Beta版Milvus集群,则使用root账号。

    password

    源集群或者目标集群用于登录数据库账号的密码。

    index.mode

    指定索引模式。取值为:

    • manual(默认):不迁移索引。迁移完成后如需创建索引,请参见(可选)步骤四:创建索引

    • migration:迁移源集群的索引。

    • new:将全量切换至商业化特性AUTOINDEX的索引。

步骤三:启动迁移工具

在迁移工具的milvus-migration-tool目录下,执行以下命令。

bin/milvus-migration script

整体迁移完成之后,您可以看到类似如下返回信息。

2024-09-27 06:39:14,346 INFO Collection pending migration: ['milvus_collection']
2024-09-27 06:39:14,347 INFO Starting to migrate collection: milvus_collection, current progress: 1/1
2024-09-27 06:39:14,464 INFO Successfully migrated data on collection: milvus_collection

(可选)步骤四:创建索引

迁移数据完成后,如需为Collection创建相应的索引,请参阅以下示例。

AUTOINDEX

HNSW

IVF_FLAT

AUTOINDEX索引的更多详情,请参见使用AUTOINDEX

from pymilvus import MilvusClient

# 创建Milvus Client。
client = MilvusClient(
    uri="http://c-xxxx.milvus.aliyuncs.com:19530",  # Milvus实例的公网地址。
    token="<yourUsername>:<yourPassword>",  # 登录Milvus实例的用户名和密码。
    db_name="default"  # 待连接的数据库名称,本文示例为默认的default。
)

index_params = MilvusClient.prepare_index_params()

index_params.add_index(
    field_name="vector",
    metric_type="L2",
    index_type="AUTOINDEX",
)

client.create_index(
    collection_name="src_collection_name",
    index_params=index_params
)

client.load_collection(
    collection_name="src_collection_name"
)
<think>好的,用户问的是如何在阿里云上配置公网访问部署的Milvus。我需要先回顾一下Milvus阿里云上的部署步骤和相关配置要求。根据引用[1],用户需要登录阿里云Milvus控制台,创建实例。然后,可能是在实例的网络设置中没有开启公网访问权限。 首先,检查实例的网络类型。阿里云Milvus实例默认可能使用内网VPC,需要配置公网IP负载均衡器。引用[2]和[3]提到不同规模的配置,但公网访问可能需要额外的安全组规则。用户可能没有正确设置安全组,导致外部无法访问。 接下来,可能需要配置白名单安全组,允许特定IP访问Milvus的端口。Milvus默认使用19530端口,所以安全组需要开放此端口的入站规则。引用[4]提到通过Docker部署代理,但用户的问题是关于原生Milvus的公网访问,可能需要直接配置而不是通过代理。 另外,阿里云可能有NAT网关EIP(弹性公网IP)的选项,需要为Milvus实例绑定EIP。用户可能在创建实例时没有选择公网访问选项,者没有正确关联EIP。步骤可能包括在创建实例时勾选公网访问,后续在实例配置中添加。 最后,测试连接时需要确保客户端使用正确的公网地址和端口,并且防火墙安全组没有阻止连接。可能需要指导用户检查这些配置点,并提供具体的控制台操作步骤,比如如何修改安全组规则,如何绑定EIP等。</think>### 阿里云 Milvus 公网访问配置教程 #### 步骤 1:确认实例网络类型 1. 登录 [阿里云 Milvus 控制台](https://milvus.console.aliyun.com/#/overview) 2. 在左侧导航栏选择「Milvus 实例」,找到目标实例 3. 检查「网络类型」字段: - 若显示「专有网络(VPC)」,需配置公网访问 - 若显示「公网」,可跳过后续步骤直接使用提供的公网地址 #### 步骤 2:绑定弹性公网 IP(EIP) 1. 进入实例详情页,选择「网络与安全」>「公网访问」 2. 点击「绑定弹性公网 IP」 $$ \text{注意:需提前在ECS控制台创建未绑定的EIP} $$ 3. 选择已创建的EIP并确认绑定 #### 步骤 3:配置安全组规则 1. 在实例详情页找到关联的安全组ID 2. 进入 [ECS安全组控制台](https://ecs.console.aliyun.com/#/securityGroup) 3. 添加入方向规则: - 协议类型:TCP - 端口范围:19530(默认服务端口) - 授权对象:0.0.0.0/0(指定IP段) #### 步骤 4:验证公网连接 ```python from pymilvus import connections connections.connect( host="your_eip_address", # 绑定的EIP地址 port="19530" ) print(connections.get_connection_addr('default')) # 应返回公网IP:19530 ``` #### 注意事项 1. 生产环境建议通过VPC对等连接/NAT网关实现更安全的访问[^2] 2. 公网访问会产生额外流量费用,建议设置IP白名单限制访问源[^3] 3. 单节点部署时CPU核心数需≥4核,内存≥8GB保证服务稳定性[^3] 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值