Ho lokolloa ha graph ea kamano DBMS EdgeDB 2.0

Ho hlahisoa ha EdgeDB 2.0 DBMS, e sebelisang mofuta oa data oa graph ea kamano le puo ea lipotso ea EdgeQL, e ntlafalitsoeng bakeng sa ho sebetsa ka data e rarahaneng ea maemo a holimo. Khoutu e ngotsoe ka Python le Rust (likarolo tsa likarolo le tsa bohlokoa tsa ts'ebetso) mme e ajoa tlasa laesense ea Apache 2.0. Morero o ntse o ntlafatsoa joalo ka tlatsetso bakeng sa PostgreSQL. Lilaebrari tsa bareki li lokiselitsoe Python, Go, Rust le TypeScript/Javascript. E fana ka lisebelisoa tsa mohala oa taelo bakeng sa taolo ea DBMS le phetisetso ea lipotso tse kopanetsoeng (REPL).

Sebakeng sa mohlala oa data o thehiloeng tafoleng, EdgeDB e sebelisa mokhoa oa phatlalatso o thehiloeng ho mefuta ea lintho. Sebakeng sa linotlolo tsa kantle ho naha, ho hokahanya ka litšupiso ho sebelisoa ho hlalosa kamano lipakeng tsa mefuta (ntho e le 'ngoe e ka sebelisoa e le thepa ea ntho e' ngoe).

mofuta oa Motho {lebitso le hlokahalang la thepa -> str; } mofuta oa Movie {sehlooho se hlokahalang sa thepa -> str; batšoantšisi ba lihokelo tse ngata -> Motho; }

Li-index li ka sebelisoa ho potlakisa ts'ebetso ea lipotso. Likarolo tse kang ho thaepa ka matla thepa, lithibelo tsa boleng ba thepa, thepa e baloang ka komporo, le mekhoa e bolokiloeng le tsona lia tšehetsoa. Likarolo tsa leano la polokelo ea lintho tsa EdgeDB, tse batlang li hopotsa ORM, li kenyelletsa bokhoni ba ho kopanya schemas, ho hokahanya thepa ho tsoa linthong tse fapaneng, le tšehetso e kopaneng ea JSON.

Lisebelisoa tse hahelletsoeng li fanoe bakeng sa ho boloka schema migration - kamora ho fetola schema e boletsoeng faeleng e arohaneng ea esdl, tsamaisa feela taelo ea "edgedb migration create" mme DBMS e tla sekaseka liphapang tsa schema mme ka kopanelo e hlahise script bakeng sa ho fallela ho schema e ncha. Nalane ea liphetoho tsa schema e lateloa ka bo eona.

Ho hlahisa lipotso, lipuo tsa lipotso tsa GraphQL le puo ea EdgeDB ea mong'a ntlo, e leng phetoho ea SQL bakeng sa lintlha tsa maemo a phahameng, lia tšehetsoa. Sebakeng sa manane, liphetho tsa lipotso li hlophisitsoe ka mokhoa o hlophisitsoeng, mme sebakeng sa subqueries le JOIN, o ka hlakisa potso e le 'ngoe ea EdgeQL joalo ka polelo ka har'a potso e' ngoe. Litšebelisano le lipotoloho lia tšehetsoa.

khetha Movie {sehlooho, batšoantšisi: {lebitso } } sefa .title = "The Matrix" kenya Movie { title := "The Matrix Resurrections", actors := ( khetha Person filter .name in {'Keanu Reeves', 'Carrie- Anne Moss ',' Laurence Fishburne '} )} bakeng sa nomoro ho {0, 1, 2, 3} bonngoe ( khetha {nomoro, nomoro + 0.5} );

Khatisong e ncha:

  • Sehokelo sa marang-rang se hahelletsoeng se kenyellelitsoe bakeng sa tsamaiso ea database, se u lumella ho bona le ho hlophisa data, ho tsamaisa lipotso tsa EdgeQL le ho sekaseka leano la polokelo le sebelisitsoeng. Sebopeho se hlahisoa ka taelo ea "edgedb ui", ka mor'a moo se fumaneha ha u fihlella localhost.
    Ho lokolloa ha graph ea kamano DBMS EdgeDB 2.0
  • Polelo ea "GROUP" e kentsoe ts'ebetsong, e u lumellang ho arola le ho bokella lintlha le lintlha tsa sehlopha u sebelisa mantsoe a sa utloahaleng a EdgeQL, a ts'oanang le ho hlophisa ts'ebetso ea KHETHA.
  • Bokhoni ba ho laola phihlello boemong ba ntho. Melao ea phihlello e hlalosoa boemong ba schema ea polokelo mme e u lumella ho fokotsa bokhoni ba ho sebelisa sete e itseng ea lintho ho lata, ho kenya, ho hlakola le ho ntlafatsa ts'ebetso. Ka mohlala, o ka kenya molao o lumellang mongoli feela ho ntlafatsa sengoliloeng.
  • E ekelitse bokhoni ba ho sebelisa mefuta e fapaneng ea lefats'e ho schema ea polokelo. Ho na le tlhahiso e ncha ea global variable current_user hore e tlamahane le mosebelisi.
  • Tšehetso e ekelitsoeng bakeng sa mefuta e hlalosang mefuta ea boleng.
  • Laeborari ea semmuso ea bareki bakeng sa puo ea Rust e se e lokisitsoe.
  • EdgeDB binary protocol e tsitsitse, e leng se etsang hore ho khonehe ho sebetsana le linako tse 'maloa tse fapaneng ka nako e le' ngoe ka har'a marang-rang a tšoanang a marang-rang, ho fetisa ka HTTP, ho sebelisa mefuta-futa ea lefats'e le linaha tsa libaka.
  • Ts'ehetso e ekelitsoeng bakeng sa ts'ebetso ea socket, e u lumellang hore u se ke ua boloka sebatli sa seva mohopolong 'me u se tsamaise feela ha u leka ho theha khokahano (e sebetsang bakeng sa ho boloka lisebelisoa ho litsamaiso tsa nts'etsopele).

Source: opennet.ru

Eketsa ka tlhaloso