Az EdgeDB adatbázis-kezelő rendszer fejlesztői bejelentették, hogy a projekt Gel néven folytatódik. Egy új, jelentős kiadás is készült — a Gel 6.0. Az elnevezés megváltoztatásának oka a félrevezető konnotációk elkerülése, amelyek a „edge” szó használatából adódnak, mivel sokan a projektet az edge számítástechnikai megoldásokra vagy gráforientált adatbázis-kezelő rendszerre asszociálják. Az átnevezés csupán a márkaneveket érintette. A projekt struktúrája, céljai és csapata változatlanok maradtak. Az új kiadásban a segédprogramok és könyvtárak nevei is megváltoztak, de a régi nevek használatát szimbolikus linkek és burkolatok révén továbbra is biztosítják.
A projekt a PostgreSQL-re épülő kiegészítőként fejlődik, amely egy relációs-gráf adatmodellel és az EdgeQL lekérdező nyelvvel rendelkezik, amelyet a bonyolult hierarchikus adatok kezelésére optimalizáltak. A kód Python és Rust nyelveken íródott (a parser és a teljesítménykritikus részek), és az Apache 2.0 licenc alatt terjesztik. Kliensek könyvtárai készültek Python, Go, Rust, .NET, Elixir és TypeScript/Javascript nyelvekhez. A rendszerparancsok eszközkészletét biztosítjuk az adatbázis-kezeléshez és az interaktív lekérdezések végrehajtásához (REPL).
A Gel nem táblázatalapú adatmodellt használ, hanem egy deklaratív rendszert, amely objektumtípusokon alapul. A típusok közötti kapcsolatok meghatározásához nem külső kulcsokat használnak, hanem hivatkozásalapú összekapcsolást (egy objektum tulajdonságként felhasználható egy másik objektumban).
type Person { required name: str; } type Movie { required title: str; multi actors: Person; }
Támogatja a tulajdonságok típusainak szigorú ellenőrzését, a tulajdonságértékek korlátozását, a számított tulajdonságokat és a tárolt eljárásokat. A Gel objektumtárolási sémája, amely valamelyest hasonlít az ORM-hez, lehetővé teszi a sémák keverését, a különböző objektumokból származó tulajdonságok összekapcsolását és a JSON-integrációs támogatást. Lekérdezések gyorsításához indexek alkalmazhatók.
Beépített eszközök állnak rendelkezésre a tárolási sémák migrálásához — a különálló esdl-fájlban megadott séma módosítása után elegendő a „gel migration create” parancsot futtatni, és az adatbázis-kezelő elemezni fogja a sémában bekövetkező eltéréseket, majd interaktív módban generál egy scriptet az új séma alkalmazásához. Automatikusan nyomon követi a sémaváltozások történetét.
Lekérdezések létrehozásához a GraphQL lekérdezési nyelvet és az EdgeQL saját nyelvét támogatják, amely az SQL hierarchikus adatokhoz való alkalmazásának tekinthető. A listák helyett a lekérdezések eredményei strukturált formában jelennek meg, ahelyett, hogy almás lekérdezéseket és JOIN műveleteket használnának, lehetőség van egy EdgeQL lekérdezést kifejezésként megadni egy másik lekérdezésen belül. Támogatottak a tranzakciók és ciklusok.
válasszon Film { cím, színészek: { név } } szűrő .cím = „A Mátrix” beszúrás Film { cím := „A Mátrix Feltámadások”, színészek := ( válasszon Ember szűrő .név a { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) }
A Gel 6.0 főbb változásai:
- Hozzáadva a hagyományos SQL-lekérdezések használatának lehetősége az adatbázis-kezelőhöz való csatlakozás során Gel protokollon vagy PostgreSQL protokoll módban. A SQL támogatás egyszerűsíti a meglévő projektek Gel-re történő migrációját, amelyek most fokozatosan átvihetők SQL-re, miközben a régi SQL-klienseket és SQL ORM-et továbbra is használják. Az EdgeQL-t kezdetben használó projektek kihasználhatják az SQL-ben elérhető további lehetőségeket, amelyek még nem valósultak meg az EdgeQL-ban, például az ablakfunkciók, rekurzív lekérdezések és explicit zárolások.
- Hozzáadva a helyi frissítés támogatása, amely nem igényli az adatbázis-dump létrehozását és újrafeltöltését egy új jelentős kiadásra való áttérés során. Az EdgeDB 5.x-ről Gel 6.0-ra történő frissítéshez a régi módszert kell használni, de a Gel 6.x-ről 7.0-ra történő áttérés nem igényel újrafeltöltést.
- Biztosítva a lekérdezési teljesítmény statisztikáinak megőrzése, amely az sys::QueryStats objektumokon keresztül érhető el.
- Hozzáadva a PostgreSQL-PostGIS kiterjesztés támogatása a földrajzi információs rendszerekben használt térbeli adatok tárolásához.
- Hozzáadva a std::net könyvtár a hálózati lekérdezések küldéséhez (HTTP támogatva) aszinkron módban.
- Az ext::auth-hoz hozzáadva az OpenID Connect szolgáltatók konfigurálásának támogatása.
- Az ext::ai-hoz frissítve az OpenAI, Anthropic és Mistral által támogatott nagy nyelvi modellek listája.
- Lehetőség biztosítva további kezelők csatlakoztatására a gel parancssori eszközhöz.
- Az EdgeQL egyszerűsítette a szemantikai jelentését a csomópontok közötti utak megtalálásához.
- A gel.toml-ban hozzáadva a "[[watch]]" beállítás, amely lehetővé teszi a szkriptek indítását a megadott fájlok módosításakor.
- Az ORM Drizzle támogatja a Gel-t.
Forrás: opennet.ru
