DuckDB 1.4.0 DBMS-in şifrələmə dəstəyi ilə yayımı

DuckDB 1.4.0 versiyası dərc edilib, bu, analitik sorğuların yerinə yetirilməsinə yönəlib və SQLite-ı xatırladır. DuckDB, SQLite-ın kompaktlığı, daxil edilə bilən kitabxana şəklində qoşulması, məlumatların bir faylda saxlanması və CLI interfeysi kimi xüsusiyyətlərini analitik sorğuların icrası üçün imkanlar və optimallaşdırmalarla birləşdirir ki, bu da saxlanılan məlumatların əhəmiyyətli hissəsini əhatə edir; məsələn, bütün cədvəllərin məzmununun toplanması və ya bir neçə böyük cədvəlin birləşdirilməsi. Layihə C++ dilində yazılmışdır və MIT lisenziyası altında yayılır.

DuckDB, çox mürəkkəb və uzun bir müddət davam edən sorğuların emalı üçün əlavə imkanlar daxil olan geniş SQL dilini təqdim edir. Mürəkkəb tiplərin (massivlər, strukturlar, birləşmələr) istifadəsi mümkündür, eləcə də istənilən və nested korelativ alt sorğuların yerinə yetirilməsi. Eyni anda bir neçə sorğunun yerinə yetirilməsi, CSV və Parquet formatlarında fayllardan sorğuların yerinə yetirilməsi də dəstəklənir. PostgreSQL verilənlər bazasından idxal dəstəyi də vardır.

Layihədə SQLite-dən istifadə olunan qabıq, PostgreSQL-dən parser, MonetDB-dən Date Math komponenti, Segment Tree Aggregation alqoritmi əsasında öz pəncərə funksiyaları, RE2 kitabxanasına əsaslanan müntəzəm ifadələrin emalı, öz sorğu optimizatoru, çox versiyalı eyni vaxtda icra mexanizmi (Multi-Version Concurrency Control) və Hyper-Pipelining Sorğu İcra alqoritmi əsasında vektorizə edilmiş sorğu icra edən mühərrik mövcuddur; bu, eyni anda böyük dəyərlər dəstlərini emal etməyə imkan tanıyır.

Yeni versiyada:

  • Məlumat bazası fayllarının şifrəli şəkildə saxlanılmasına dəstək əlavə edilmişdir. Şifrləmə üçün GCM rejimində AES-256 alqoritmi istifadə olunur. Yalnız əsas məlumat faylı deyil, həm də WAL-logları və müvəqqəti fayllar şifrlənir. Məlumat bazasının şifrələnməsi üçün açarlar ATTACH komandası ilə ENCRYPTION_KEY parametri vasitəsilə təyin olunur. ATTACH 'encrypted.db' AS enc_db (ENCRYPTION_KEY 'quack_quack');
  • İşlətdiyi şərtlərlə məcburi olmayan primer açar tələb etməyən 'MERGE INTO' əmri üçün dəstək əlavə edilmişdir. 'MERGE INTO' əmri INSERT, UPDATE və DELETE əməliyyatlarını birləşdirən şərti SQL ifadələrinin yaradılmasını mümkün edir. Məsələn, 'MERGE' ilə iki cədvəlin birləşdirilməsini həyata keçirmək mümkündür, əskik qeydləri daxil edərək və mövcudları yeniləyərək. WITH deletes(item_id, delete_threshold) AS (VALUES (10, 3000)) MERGE INTO Stock USING deletes USING (item_id) WHEN MATCHED AND balance < delete_threshold THEN DELETE RETURNING merge_action, *;
  • Apache Iceberg formatında olan cədvəllərlə işləmək üçün yazma əməliyyatlarına dəstək əlavə edilmişdir (əsasən yalnız oxuma dəstəyi var idi), bu, Iceberg-dən DuckDB-yə və geri məlumatların köçürülməsini mümkün edir.
  • Komanda xətti müştərinin işi zamanı qalan vaxtın proqnozu ilə əməliyyatın irəliləyişini göstərən bir indikator əlavə olunmuşdur.
  • Sıralanmış pəncərlərdə itirilmiş dəyərlərin interpolasiyası üçün istifadə edilə bilən 'FILL' pəncərə funksiyası əlavə edilmişdir. FROM (VALUES (1, 1), (2, NULL), (3, 42)) t(c1, c2) SELECT fill(c2) OVER (ORDER BY c1) f; 1 21 42
  • Teradata bazalarına qoşulmaq üçün Teradata Connector əlavəsi həyata keçirilmişdir. Bu əlavə cədvəllərlə manipulyasiya etməyə, sorğular yerinə yetirməyə və SQL komutlarını birbaşa Teradata-da işlətməyə imkan verir.
  • Yaddaşda saxlanılan cədvəllərin vəziyyətinin (checkpoint) təyin edilməsinə dəstək əlavə edilmişdir ki, bu da sıxma dəstəyinin həyata keçirilməsini mümkün edir. Bundan əlavə, vəziyyətin müəyyənləşdirilməsi zamanı silinmiş sətirlərin təmizlənməsi və silinmə əməliyyatlarından sonra yerin boşaldılması həyata keçirilir. ATTACH ':memory:' AS memory_compressed (COMPRESS);
  • İlk olaraq, performans optimallaşdırmaları üçün bir neçə təklif təqdim edilib: Sıralama prosesinin həyata keçirilməsində k-yolu birləşdirmə algoritmindən istifadə edilərək, məlumatların köçürülməsi azaldıldı. İndi ümumi cədvəl ifadələri (Common Table Expression, CTE) standart olaraq materiallaşdırılır.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster