903 čitanja
903 čitanja

Ovaj alat otvorenog koda mogao bi spasiti vaš tim podataka stotine sati

by badmonster...5m2025/06/09
Read on Terminal Reader

Predugo; Citati

CocoIndex podržava Qdrant [nativno] - integracija sadrži visokoučinkovit Rust stack s inkrementalnom obradom od kraja do kraja za skalu i svježinu podataka. To je već podržano sa nativnom integracijom sa Postgres, Neo4j, i Kuzu.
featured image - Ovaj alat otvorenog koda mogao bi spasiti vaš tim podataka stotine sati
LJ HackerNoon profile picture
0-item
1-item

CocoIndex podržava QdrantNativno- integracija sadrži visokoučinkoviti Rust stack s inkrementalnom obradom od kraja do kraja za skalu i svježinu podataka. 🎉 Upravo smo predstavili našu najnoviju promenu koja se baviautomatic target schema setupsa Qdrant iz CocoIndex indeksiranje toka.


To znači da programeri ne moraju raditi nikakvu postavku sheme - uključujući postavljanje tabele, tip polja, ključeve i indeks za ciljne trgovine. Setup je rezultat sheme inference iz definicije CocoIndex toka. To je već podržano s nativnom integracijom sa Postgres, Neo4j, i Kuzu. To omogućava glatkije rad između indeksiranja i ciljnih trgovina.

Nema više ručnog podešavanja

Ranije, korisnici su morali ručno kreirati kolekciju prije indeksiranja:

curl -X PUT 'http://localhost:6333/collections/image_search' \
  -H 'Content-Type: application/json' \
  -d '{
    "vectors": {
      "embedding": {
        "size": 768,
        "distance": "Cosine"
      }
    }
  }'

S novim promjenama, korisnik ne mora obavljati nikakvo ručno upravljanje zbirkom.

Kako funkcioniše

U skladu sa modelom programiranja toka podataka, korisnik definira tok, gde svaki korak ima informacije o tipu podataka izlaza, a sljedeće podešavanje uzima informacije o tipu podataka.Primer(~ 100 linija Pythona od kraja do kraja)

Ukratko, može se predstaviti kao sledeći graf linije.

U deklarativnom toku podataka kao gore

Cilj = formula (izvor)

Ona podrazumijeva i podatke i očekivani ciljanu shemu. Jedinstvena definicija toka pokreće i obradu podataka (uključujući rukovanje promjenama) i postavljanje ciljanih shema – pružajući jedinstveni izvor istine za podatke i shemu. Sličan način razmišljanja o tome je poput tipskih sistema koji zaključuju tip podataka od operatera i ulazaka -Vrste inferencije(npr. u vezi sa smirenjem

U toku indeksiranja, izvoz ugrađenosti i metapodataka direktno u Qdrant je sve što vam je potrebno.

doc_embeddings.export(
    "doc_embeddings",
    cocoindex.storages.Qdrant(collection_name=QDRANT_COLLECTION),
    primary_key_fields=["id"],
)

Da bi pokrenuli proces CocoIndex, korisnici moraju prvo pokrenuti instalaciju, koja pokriva sve potrebne instalacije za bilo koje potrebne backendove.

cocoindex setup main.py

cocoindex setup

  • Kreirajte nove backendove za podešavanje sheme, kao što su tabele / kolekcije / itd.
  • Promijenite postojeće backendove sa promjenom sheme - pokušaće da napravi nedestruktivno ažuriranje ako je moguće, npr. primarni ključevi se ne mijenjaju i ciljna podrška za skladištenje podržava ažuriranje sheme na licu mesta (npr. ALTER TABLE u Postgres), inače se spušta i reciklira.
  • Uklonite stale backends.

Proizvođači zatim trče

cocoindex update main.py [-L]

pokrenuti indeksiranje cjevovoda (-L za dugotrajno trčanje).

Ako ste napravili logičke ispravke koje zahtijevaju ažuriranje sheme u ciljnoj prodavnici, ne brinite.cocoindex updateopet nakon ažuriranja logike. CocoIndex će zaključiti shemu za ciljnu prodavnicu.cocoindex setupkao izbor dizajna, CocoIndex neće ažurirati bilo koju shemu bez vaše obavijesti, jer neka ažuriranje sheme može uključivati destruktivne promene.

Da biste spustili tok, trčali biste

cocoindex drop main.py

cocoindex dropSpušta zadnje završetke kada ispušta tok.

Svi backend entiteti za ciljne trgovine - kao što su PostgreSQL tabela ili Qdrant kolekcija - su u vlasništvu toka kao izvedenih podataka, tako da će biti odbačeni.

Zašto automatski cilja shema inferencija?

Pitanje bi stvarno trebalo biti, zašto ne?

Tradicionalni način je da korisnici u potpunosti shvateKadaiKakoza podešavanje / ažuriranje ciljne sheme, uključujući specifičnu shemu. tokovi indeksiranja često obuhvaćaju više sistema. Na primjer:

Na ciljnoj prodavnici:

  • Vektorske baze podataka (PGVector, Qdrant itd.)
  • Relativne baze podataka (PostgreSQL)
  • Grafičke baze podataka (Neo4j, Kuzu itd.)

Vrste podataka koje izlažete i ciljni raspored moraju se podudarati.

Ako postoji interno praćenje stanja, npr. u slučaju inkrementalne obrade

  • Interne tabele (Status tracking)

To je dosadno i bolno da to radite ručno, jer svi ovi sustavi moraju da se slažu o shemi i strukturi.

  • Ručno postavljanje i sinhronizacija shema.
  • Usklađena koordinacija između programera, DevOps-a i inženjera podataka - ljudi koji pišu kod možda nisu isti ljudi koji ga implementiraju / pokreću u organizaciji.
  • Debugging poremećaja između logike protoka i slojeva skladištenja.
  • Rolout proizvodnje je obično stresan.

Svako dodavanje pokretnih dijelova u indeksni sistem cijevi dodaje trenje - bilo kakvo neusklađenost između logike i sheme skladištenja moglo bi rezultirati tihim neuspjesima ili suptilnim greškama.

  • U nekim slučajevima to nije tihi neuspeh. neuspeh bi trebao biti očigledan, npr. ako korisnici zaborave da kreiraju tabelu ili kolekciju, to će samo pogrešiti prilikom pisanja cilju.
  • Neki drugi scenariji mogu dovesti do ne očiglednih problema, tj. iz sinhronizacije između skladištenja za unutarnja stanja i cilja. npr. korisnici mogu spustiti protok i reproducirati, ali ne i za cilj; ili spustiti i reproducirati cilj, ali ne i za unutarnje skladištenje.

Kontinuirane promjene u sistemu uvode uporne bolove u proizvodnju. Svaki put kada se tok podataka ažurira, ciljna shema mora evoluirati zajedno – čineći jeNeJednom dosadan proces, ali kontinuirani izvor trenja.

U realnim sistemima podataka, nova polja često trebaju indeksiranje, stara polja se depreciraju, a transformacije se razvijaju. Ako se tip promijeni, shema se mora prilagoditi.

Indeksacijska infrastruktura zahtijeva dosljednost podataka između indeksacijskog kanala i ciljnih skladišta, a što su krajevi manji, to će biti lakše i robusnije.

Naša vizija: Deklarativno, indeksiranje zasnovano na protokovima

Kada smo pokrenuli CocoIndex, naša vizija je bila omogućiti programerima da deklarativno definiraju transformaciju podataka i logiku indeksiranja – a CocoIndex radi ostatak.automatic schema setup.

Mi smo posvećeni brini o temeljnoj infrastrukturi, tako da programeri mogu da se fokusiraju na ono što je važno: podatke i logiku.

Ako ste se ikada borili sa održavanjem vaše logike indeksiranja i podešavanja skladišta u sinhronizaciji - mi smo bili tamo.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks