跳到主要内容

transfer_replica()

Near Deprecation

此操作用于在资源组之间转移指定数量的副本。

请求语法​

python
transfer_replica(
source_group: str,
target_group: str,
collection_name: str,
num_replicas: int,
using: str = "default",
timeout: float | None,
)

参数:

  • source_group (str) -

    [必需]

    要从中移出查询节点的源资源组名称。

    如果将其设置为不存在的资源组,则会导致 MilvusException。

  • target_group (str) -

    [必需]

    要将查询节点移入的源资源组名称。

    如果将其设置为不存在的资源组,则会导致 MilvusException。

  • num_replicas (int) -

    [必需]

    在源资源组和目标资源组之间移动的副本数量。

    Note

    什么是副本?

    借助副本,Zilliz Cloud 可以在多个查询节点上加载相同的 Segment。如果某个查询节点发生故障,或者在另一个搜索请求到达时正忙于处理当前搜索请求,系统可以将新请求发送到拥有相同 Segment 副本的空闲查询节点。

    副本以副本组的形式组织。每个副本组包含 shard 副本。每个 shard 副本都有一个流式副本和一个历史副本,分别对应 shard 中正在增长和已封存的 Segment。

    Shards 可视为多个节点之间进行分布式数据写入操作的 DML 通道,从而最大化发挥 Zilliz Cloud 集群的并行计算潜力。

  • using (str) -

    所用连接的别名。

    默认值为 default,表示此操作使用默认连接。

  • timeout (float | None)

    此操作的超时时长。将其设置为 None 表示当收到任何响应或发生任何错误时,此操作即超时。

返回类型:

NoneType

返回值:

None。

异常:

  • MilvusException

    当此操作期间发生任何错误时,将引发此异常。

示例:

python
from pymilvus import (
connections,
Collection,
CollectionSchema,
FieldSchema,
DataType,
utility,
)

# Connect to YOUR_CLUSTER_ENDPOINT
connections.connect()

# Create a collection
collection = Collection(
name="test_collection",
schema=CollectionSchema([
FieldSchema("id", DataType.INT64, is_primary=True),
FieldSchema("vector", DataType.FLOAT_VECTOR, dim=5)
])
)

# Get the currently loaded replicas
collection.get_replicas()

# Create a new resource group
utility.create_resource_group(
name="rg_01",
using="default"
)

# Transfer replicas between resource groups
utility.transfer_node(
source_group="__default_resource_group",
target_group="rg_01",
num_nodes=1
)

以下操作与 transfer_replica() 相关:

最低 SDK 版本Inherit