EdgeDB andmebaasi arendajad on kuulutanud välja projekti nimemuutuse Gel-iks. Samuti on avalikustatud uus märkimisväärne väljaanne — Gel 6.0. Nime muutmise põhjuseks on soov vabaneda eksitavatest seostest, mis tulenevad sõna "edge" kasutamisest, mistõttu paljud inimesed tajuvad projekti kui edge-arvutuste andmebaasi või graafipõhise andmebaasina. Nime muutmine mõjutas ainult kaubamärgi elemente. Projekti struktuur, eesmärgid ja meeskond jäid endiseks. Uues väljaandes on utiliidid ja raamatukogud nimetatud ümber, kuid tagasijõudluse säilitamiseks on vanade nimede kasutamine võimalik läbi sümboolsed lingid ja mähised.
Projekt areneb PostgreSQL'i peal, rakendades relatsioonilis-graafilist andmemudelit ja päringukeelt EdgeQL, mis on optimeeritud keerukate hierarhiliste andmete töötlemiseks. Kood on kirjutatud keeltes Python ja Rust (parser ja jõudlust mõjutavad osad) ning seda levitatakse Apache 2.0 litsentsi alusel. Klientide raamatukogud on ette valmistatud keeltele Python, Go, Rust, .NET, Elixir ja TypeScript/Javascript. Pakutakse käsurea tööriistu andmebaasi haldamiseks ja interaktiivseks päringute täitmiseks (REPL).
Gel kasutab andmemudeli asemel, mis põhineb tabelitel, deklaratiivset süsteemi objektitüüpide põhjal. Seoste määramiseks tüüpide vahel kasutatakse viiteid (üks objekt võib olla teise objekti omadus) väliste võtmete (foreign key) asemel.
type Person { required name: str; } type Movie { required title: str; multi actors: Person; }
Toetatakse selliseid funktsioone nagu atribuutide rangetüübistamine, atribuutide väärtuste piirangud, arvutatavad atribuudid ja salvestatud protseduurid. Gel objekti salvestusskeemi eripära, mis meenutab ORM-i, hõlmab skeemide segamist, atribuutide sidumist erinevatest objektidest ja integreeritud JSON-i tuge. Päringute töötlemise kiirendamiseks võivad olla kasutusel indeksid.
Pakutakse sisseehitatud tööriistu salvestusskeemi migreerimiseks — pärast skeemi muutmist, mis on määratud eraldi esdl-failis, piisab käsu „gel migration create” käivitamisest, ning andmebaasihaldussüsteem analüüsib skeemi erinevusi ja genereerib interaktiivses režiimis skripti uuele skeemile ülemineku jaoks. Skeemi muutuste ajalugu jälgitakse automaatselt.
Päringute koostamiseks toetatakse GraphQL-i päringukeelt ja omaniku EdgeQL-i keelt, mis on SQL-i kohandatud versioon hierarhiliste andmete jaoks. Tulemustena esitatakse andmed struktureeritud kujul loendite asemel, ja alampäringute ning JOIN-operatsioonide asemel on võimalik kasutada ühte EdgeQL-i päringut teise päringu sees väljendina. Toetatakse tehinguid ja tsükleid.
valige Film { pealkiri, näitlejad: { nimi } } filtri .pealkiri = «The Matrix» lisage Film { pealkiri := «The Matrix Resurrections», näitlejad := ( valige Inimene filtri .nimi kuulub { 'Keanu Reeves', 'Carrie-Anne Moss', 'Laurence Fishburne' } ) }
Peamised muudatused Gel 6.0:
- Lisatud on võimalus kasutada traditsioonilisi SQL-päringute koostamise meetodeid andmebaasi ühendamisel Gel-protokolli või PostgreSQL-protokolli režiimis. Eeldatakse, et SQL-i tugi lihtsustab olemasolevate projektide migreerimist Gelile, võimaldades järkjärguliselt üle minna SQLilt, samas kasutades vanu SQL-kliente ja SQL ORM-i. Projektid, mis on algselt kasutanud EdgeQL-i, saavad kasutada täiendavaid funktsioone, mis on saadaval SQL-is, kuid mida pole veel EdgeQL-is realiseeritud, näiteks akna funktsioonid, rekursiivsed päringud ja selged lukustused.
- Lisatud on tugi kohapealseks uuendamiseks, mis ei nõua andmebaasi dump'i loomist ja ümberlaadimist uuele olulisele versioonile üleminekul. Uuendamisel EdgeDB 5.x-st Gil 6.0-le tuleb kasutada vana meetodit, kuid üleminekul Gil 6.x-lt 7.0-le ei ole dump'i ümberlaadimine vajalik.
- Tagatud on päringute toimivuse statistika salvestamine, mis on saadaval sys::QueryStats objektide kaudu.
- Lisatud on PostgreSQL laiendi PostGIS tugi ruumiliste andmete salvestamiseks, mida kasutatakse geograafilistes infotehnoloogia süsteemides.
- Lisatud std::net teek, et saata võrgu päringuid (toetab HTTP) asünkroonses režiimis.
- Lisaks ext::auth-le on lisatud OpenID Connect pakkujate seadistamise tugi.
- Lisaks ext::ai-le on uuendatud toetatud suuri keelemudeleid OpenAI, Anthropic ja Mistral.
- Ahnud on võimalus lisada täiendavaid käsitlejaid käsudega utiliidis gel.
- EdgeQL-is on lihtsustatud semantikat teede leidmiseks graafi sõlmede vahel.
- gel.toml-is on lisatud seade "[[watch]]", mis võimaldab käivitada skripte, kui muudetakse määratud faile.
- ORM Drizzles on rakendatud Gel-i tugi.
Allikas: opennet.ru
