1,070 читања
1,070 читања

Овај алат отвореног кода може спасити ваш тим података стотинама сати

од стране LJ5m2025/06/09
Read on Terminal Reader

Предуго; Читати

CocoIndex подржава Qdrant [nativno] - интеграција има високе перформансе Rust стек са континуираном обрадом крај до краја за скалу и свежину података. Већ је подржана са нативном интеграцијом са Постгрес, Нео4ј, и Кузу. Ово омогућава беспрекоран рад између индексирања и циљних продавница.
featured image - Овај алат отвореног кода може спасити ваш тим података стотинама сати
LJ HackerNoon profile picture
0-item
1-item

CocoIndex podržava Qdrantnativno- Интеграција има високе перформансе Руст стацк са интензивном обрадом од краја до краја за скалу и свежину података. 🎉 управо смо покренули нашу најновију промену која се бавиautomatic target schema setupса Qdrant из CocoIndex индексирање протока.


То значи да програмери не морају да раде било какву конфигурацију шеме - укључујући постављање табеле, типа поља, кључева и индекса за циљане продавнице. Инсталација је резултат закључења шеме из дефиниције протока ЦоцоИндек-а. Већ је подржана са нативном интеграцијом са Постгрес, Нео4ј и Кузу. Ово омогућава беспрекорно функционисање између индексирања и циљаних продавница.

Нема више ручног подешавања

Раније су корисници морали ручно да креирају колекцију пре индексирања:

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

Са новом променом, корисници не морају да раде ручно управљање колекцијом.

Kako funkcioniše

U skladu sa modelom programiranja toka podataka, korisnik definiše tok, gde svaki korak ima informacije o tipu podataka izlaza, a sledeće podešavanje uzima informacije o tipu podataka.Пример(~ 100 линија питона од краја до краја)

Укратко, може се представити као следећи линеарни графикон.

У декларативном току података као што је горе

Циљ = формула (Извор)

То подразумева и податке и очекивани циљни шема. Једна дефиниција тока покреће и обраду података (укључујући управљање променама) и подешавање циљног шема – пружајући један извор истине и за податке и за шему. Сличан начин размишљања о томе је као систем типа који закључује тип података од оператора и уноса -Тип инфериорности(На пример, у мировању

U toku indeksiranja, izvoz ugrađenih stavki 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"],
)

Да би покренули процес ЦоцоИндек, корисници морају прво покренути инсталацију, која покрива сву потребну инсталацију за било који потребан бацкенд.

cocoindex setup main.py

cocoindex setup

  • Креирајте нове позадине за подешавање шеме, као што су табеле / колекције / итд.
  • Промените постојеће бацкенде са променом шеме - покушаће да изврши не-деструктивно ажурирање ако је могуће, нпр. примарни кључеви се не мењају и циљају подршку за складиштење ажурирањем шеме на лицу места (нпр.
  • Спустите стале бацкендес.

Развијачи онда трче

cocoindex update main.py [-L]

да започнете индексирање цевовода (-Л за дуго трајање).

Ако сте направили логичке ажурирања која захтевају ажурирање шеме на циљној продавници, не брините.cocoindex updateпоново након ажурирања логике. КоцоИндекс ће закључити шему за циљну продавницу.cocoindex setupКао избор дизајна, CocoIndex неће ажурирати било коју шему без ваше најаве, јер нека ажурирања шема могу укључивати деструктивне промене.

Da bi spustio tok, trčao bi

cocoindex drop main.py

cocoindex dropспуштају задње крајеве када спуштају ток.

Сви бацкенд ентитети за циљне продавнице - као што су ПостгреСКЛ табела или Кдрант колекција - су у власништву тока као изведени подаци, тако да ће и они бити уклоњени.

Зашто аутоматско закључивање циљане шеме?

Pitanje bi zaista trebalo da bude, zašto ne?

Традиционални начин је да корисници потпуно схватеКадаиKakoДа бисте сами поставили / ажурирали циљну шему, укључујући специфичну шему. Потоци индексирања често покривају више система. На пример:

На мети продавнице:

  • Векторске базе података (PGVector, Qdrant, итд.)
  • Relativne baze podataka (PostgreSQL)
  • Графичке базе података (Neo4j, Kuzu итд.)

Типови података које изводите и циљна шема морају се подударати.

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

  • Интерне табеле (стате трацкинг)

Досадно је и болно то радити ручно, јер сви ови системи морају да се слажу о шеми и структури.

  • Ручно подешавање и синхронизација шема.
  • Чврста координација између програмера, Девопса и инжењера података - људи који пишу код можда нису исти људи који га располажу / покрећу у организацији.
  • Дебаггирање неправилности између логике протока и слојева складиштења.
  • Ролоут производње је типично стресан.

Свако додавање покретних делова у систем индексирања цевовода додаје трење - сваки несклад између логике и шеме складиштења може довести до тихих неуспјеха или суптилних грешака.

  • У неким случајевима то нису тихи неуспјеси. Неуспех би требао бити очигледан, на пример, ако корисници забораве да креирају табелу или колекцију, то ће бити само грешка када пишете циљу.
  • Неки други сценарији могу довести до не-очигледних проблема, тј. из синхронизације између складиштења за унутрашње државе и циљ. нпр. корисници могу да напусте ток и рекреирају, али не и за циљ; или да напусте и рекреирају циљ, али не и за унутрашње складиштење.

Континуиране промене у систему уводе упорне болове у производњу. Сваки пут када се проток података ажурира, циљна шема мора да се развија заједно - чинећи гаneЈеднократно досадан процес, али стални извор трења.

U realnim sistemima podataka, nova polja često zahtevaju indeksiranje, stara polja se deprekuju, a transformacije se razvijaju. Ako se tip promeni, shema mora da se prilagodi.

Индексирање инфраструктуре захтева конзистентност података између индексирања цевовода и циљних продавница, а што су мање лабави крајеви, то ће бити лакше и робусније.

Наша визија: Декларативно, индексирање засновано на протоку

Када смо покренули ЦоцоИндек, наша визија је била да омогућимо програмерима да дефинишу трансформацију података и логику индексирања декларативно - а ЦоцоИндек ради остало.automatic schema setup.

Ми смо посвећени бризи о основној инфраструктури, тако да програмери могу да се фокусирају на оно што је важно: податке и логику.

Ако сте се икада борили са одржавањем ваше логике индексирања и подешавања складишта у синхронизацији - били смо тамо.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks