跳到主要内容

restore_snapshot()

内测版

此操作会将快照恢复到目标 Collection 中。恢复将异步运行——使用 get_restore_snapshot_state() 监控进度。

请求语法​

python
restore_snapshot(
collection_name: str,
snapshot_name: str,
rewrite_data: bool = False,
timeout: Optional[float] = None,
**kwargs
) -> int

参数:

  • collection_name (str) -
    [REQUIRED]
    要将快照恢复到其中的目标 Collection 名称。

  • snapshot_name (str) -
    [REQUIRED]
    要恢复的快照名称。

  • rewrite_data (bool) -
    是否覆盖目标 Collection 中的现有数据。默认为 False。

  • timeout (Optional[float]) -
    为 RPC 允许的可选时长,以秒为单位。

返回类型:

int

恢复作业 ID。使用此 ID 配合 get_restore_snapshot_state() 跟踪恢复进度。

异常:

  • MilvusException

    如果快照不存在、目标 Collection 不可用,或操作失败,则会引发此异常。

示例​

python
from pymilvus import MilvusClient
import time

client = MilvusClient(uri="YOUR_CLUSTER_ENDPOINT")

# Start restore and get job ID
job_id = client.restore_snapshot(
snapshot_name="backup_20260418",
collection_name="restored_collection",
)

# Poll for completion
while True:
state = client.get_restore_snapshot_state(job_id=job_id)
if state.state == "RestoreSnapshotCompleted":
print(f"Restore complete: {state.progress}%")
break
elif state.state == "RestoreSnapshotFailed":
print(f"Restore failed: {state.reason}")
break
print(f"In progress: {state.progress}%")
time.sleep(2)
最低 SDK 版本v3.0.x