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)