Files
qdrant/lib/edge/python/examples/download_partial.py
Andrey Vasnetsov 906136346b restore snapshot in edge (#7852)
* Restore shard snapshot in Edge python bindings

* method to request snapshot manifest

* move snapshot manifest into Shard crate

* move shapshot manifest reading

* implement inplace update of the shard from snapshot

* fmt

* move shapshot-related functions again, into a dedicated struct

* fmt

* implement partial snapshot recovery for edge

* test for partial recoverying snapshot on edge
2026-02-09 22:36:13 +01:00

61 lines
2.3 KiB
Python

# This script downloads a partial snapshot using a predefined manifest.
import requests
manifest = {
"65ac6276-8cca-4f5c-b767-9722190cee8b": {
"segment_id": "65ac6276-8cca-4f5c-b767-9722190cee8b",
"segment_version": 0,
"file_versions": {
"::PAYLOAD_INDEX_ROCKS_DB": None,
"payload_storage/config.json": 0,
"vector_storage/vectors/status.dat": None,
"::ROCKS_DB": None,
"vector_storage/deleted/status.dat": None,
"vector_storage/deleted/flags_a.dat": None,
"payload_storage/gaps.dat": None,
"vector_storage/vectors/config.json": 0,
"payload_storage/page_0.dat": None,
"payload_storage/bitmask.dat": None,
"payload_index/config.json": None,
"payload_storage/tracker.dat": None
}
},
"4ea958d8-0b64-4312-9a53-0cd857e93535": {
"segment_id": "4ea958d8-0b64-4312-9a53-0cd857e93535",
"segment_version": 254,
"file_versions": {
"payload_storage/gaps.dat": None,
"vector_storage/deleted/status.dat": None,
"vector_storage/vectors/status.dat": None,
"vector_storage/deleted/flags_a.dat": None,
"::ROCKS_DB": None,
"payload_storage/config.json": 254,
"vector_storage/vectors/config.json": 254,
"vector_index/graph.bin": 254,
"vector_index/links.bin": 254,
"vector_index/hnsw_config.json": 254,
"payload_index/config.json": None,
"mutable_id_tracker.mappings": None,
"mutable_id_tracker.versions": None,
"vector_storage/vectors/chunk_0.mmap": None,
"::PAYLOAD_INDEX_ROCKS_DB": None,
"payload_storage/tracker.dat": None,
"payload_storage/bitmask.dat": None,
"payload_storage/page_0.dat": None
}
}
}
save_to = "partial.snapshot"
collection_name = "test"
shard_id = 0
url = f"http://localhost:6333/collections/{collection_name}/shards/{shard_id}/snapshot/partial/create"
response = requests.post(url, json=manifest, stream=True)
with response as r:
r.raise_for_status()
with open(save_to, 'wb') as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)