Inserarea punctelor individual în baza de date vectorială generează un overhead masiv de rețea prin conexiuni HTTP/gRPC repetate și forțează reconstrucția parțială continuă a grafului de indexare. Pentru performanță optimă, ingestia trebuie realizată obligatoriu în loturi (batch-uri) de 100 până la 1000 de vectori.
Exemplu de pipeline eficient de inserare pe loturi în Python:
def chunked_iterable(iterable, size=500):
for i in range(0, len(iterable), size):
yield iterable[i:i + size]
puncte_totale = [...] # Lista de mii de obiecte PointStruct
for batch in chunked_iterable(puncte_totale, size=500):
client.upsert(
collection_name="vectori_productie",
points=batch,
wait=False # Ingestie asincronă: nu așteaptă reconstrucția completă pe disc
)
print(f"Lot de {len(batch)} puncte trimis spre indexare.")
Setarea parametrului wait=False permite bazei de date să plaseze vectorii într-un buffer WAL (Write-Ahead Log) în memorie, indexarea HNSW pe segmente rulând asincron pe fire de execuție secundare.
Întrebări & Exemple practice:
Batch Upsert: Ingestie Masivă Asincronă și Paginare în Baze VectorialeAi o întrebare despre Batch Upsert: Ingestie Masivă Asincronă și Paginare în Baze Vectoriale sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.