EdgeDB veriləri bazası inkişaf etdiriciləri, layihənin Gel adlandırıldığını elan etdilər. Eyni zamanda, Gel 6.0 adlı yeni mühüm buraxılış hazırlandı. Ad dəyişdirmənin səbəbi, "edge" sözünün istifadəsindən irəli gələn düzgün olmayan çağrışımlardan xilas olmaq arzusudur; bu səbəbdən insanların bu layihəni edge hesablama üçün verilənlər bazası və ya qraf oriyentli verilənlər bazası olaraq qəbul etməsi mümkündür. Ad dəyişdirmə yalnız marka elementlərinə təsir etdi. Layihənin strukturu, məqsədləri və komandası eynilə qaldı. Yeni buraxılışdakı utilitlər və kitabxanalar adlandırılıb, amma köhnə adların simvolik bağlantılar və sarğılar vasitəsilə istifadə edilməsi üçün geriyə uyğunluq təmin edilib.
Layihə, mürəkkəb iyerarxik verilənlərlə işləmək üçün optimallaşdırılmış EdgeQL sorğu dilini və riyazi-qrafik verilənlər modelini həyata keçirən PostgreSQL üzərində köməkçi kimi inkişaf edir. Kod Python və Rust dillərində yazılmışdır (parsing və performansa kritik olan hissələr) və Apache 2.0 lisenziyası altında yayımlanır. Müştəri kitabxanaları Python, Go, Rust, .NET, Elixir və TypeScript/Javascript dilləri üçün hazırlanmışdır. Verilənlər bazasını idarə etmək və interaktiv sorğular icra etmək üçün komandaların düzülməsi vasitələri təqdim edilir (REPL).
Gel-də cədvəl əsaslı verilənlər modelinin yerinə obyekt tipləri əsasında deklarativ sistem tətbiq edilir. Növlər arasında əlaqəni müəyyən etmək üçün xarici açarların yerinə bağlantı bağlantıları (bir obyekt digər obyekti xüsusiyyət kimi istifadə edə bilər) istifadə olunur.
type Person { required name: str; } type Movie { required title: str; multi actors: Person; }
Tövsiyələrdə əmlakların sərt tipliliyi, əmlakların dəyərləri üçün məhdudiyyətlər, hesablama əmlakları və saxlanmış prosedurlar kimi imkanlar mövcuddur. Gel-in obyekt saxlanması sxeminin xüsusiyyətlərindən bəzilərinin ORM-yə bənzədiyini qeyd edərək, sxemlərin qarışdırılması, fərqli obyektlərdən əmlakların əlaqələndirilməsi və JSON-un inteqrasiya olunmuş dəstəyi vurğulanır. Sorğuların işlənməsini sürətləndirmək üçün indekslər tətbiq edilə bilər.
Saxlanma sxemasını köçürmək üçün daxili alətlər təqdim edilir — ayrı esdl-faylında müəyyən edilən sxema dəyişdirildikdən sonra, "gel migration create" əmrini yerinə yetirmək kifayətdir və verilənlər bazası sxem arasındakı fərqləri analiz edərək interaktiv rejimdə yeni sxemə keçid üçün skript yaradacaq. Sxemanın dəyişdirmə tarixi avtomatik izlənilir.
Sorğuların formalaşdırılması üçün GraphQL sorğu dili və hierarxik verilənlər üçün SQL-in uyğunlaşdırılması olan EdgeQL dili dəstəklənir. Siyahıların əvəzinə, sorğunun nəticələri strukturlaşdırılmış şəkildə verilir və alt sorğularla JOIN əməliyyatlarının yerinə bir EdgeQL sorğusunu digər sorğunun içində ifadə olaraq göstərmə imkanı vardır. Transaksiyalar və döngələr dəstəklənir.
film seç { başlıq, aktyorlar: { ad } } filtr .başlıq = «The Matrix» film daxil et { başlıq := «The Matrix Resurrections», aktyorlar := ( şəxs seç filtr .ad in { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) }
Gel 6.0-dəki əsas dəyişikliklər:
- Verilənlər bazasına Gel protokolu vasitəsilə və ya PostgreSQL protokolu rejimində qoşulanda ənənəvi SQL sorğularının istifadəsi imkanı əlavə edilib. SQL dəstəyinin, artıq SQL müştəriləri və SQL ORM istifadə edərək mövcud layihələrin tədricən Gel-ə keçirilməsini asanlaşdıracağı gözlənilir. Əvvəlcə EdgeQL-dən istifadə edən layihələr, SQL-də olan lakin hələ EdgeQL-də həyata keçirilməmiş pəncərə funksiyaları, rekurziv sorğular və açıq kilitləmə kimi əlavə imkanlardan istifadə edə biləcəklər.
- Yeni əhəmiyyətli buraxılışa keçid zamanı verilənlər bazasının dump-nun yaradılması və yüklənməsini tələb etməyən yerində yeniləməni dəstəkləmə imkanı əlavə olunub. EdgeDB 5.x-dən Gil 6.0-a keçid zamanı köhnə metoddan istifadə olunmalıdır, lakin Gil 6.x-dan 7.0-a keçid zamanı dump-ın yenidən yüklənməsi tələb olunmayacaq.
- Sorğuların performans statistikalarının saxlanmasını təmin edir ki, bu da sys::QueryStats obyektləri vasitəsilə əldə edilə bilər.
- Coğrafi məlumat sistemlərində istifadə olunan məkan verilənlərini saxlamaq üçün PostgreSQL PostGIS genişləndirilməsinin dəstəklənməsi əlavə edilib.
- Asinxron rejimdə şəbəkə sorğularını (HTTP dəstəklənir) göndərmək üçün std::net kitabxanası əlavə edilib.
- ext::auth-a OpenID Connect təminatçılarının konfiqurasiyasının dəstəklənməsi əlavə edilib.
- ext::ai əlavəsində OpenAI, Anthropic və Mistral tərəfindən dəstəklənən böyük dil modellərinin siyahısı yeniləndi.
- gel proqramında komandalar üçün əlavə emalçılar qoşma imkanı təqdim edilib.
- EdgeQL-də qraf nodları arasında yolların tapılması üçün semantikanın sadələşdirilməsi həyata keçirilib.
- gel.toml-da göstərişlərin dəyişməsi zamanı skriptləri işə salmağa imkan verən «[[watch]]» konfiqurasiyası əlavə edilib.
- Drizzle ORM-də Gel dəstəyi reallaşdırılıb.
Mənbə: opennet.ru
