DuckDB 1.4.0 laidiens ar datubāzes šifrēšanas atbalstu

Ir izlaista DuckDB 1.4.0 DBVS, kas koncentrējas uz analītiskiem vaicājumiem un konceptuāli ir līdzīgs SQLite. DuckDB apvieno SQLite kompakto izmēru, pievienojamo bibliotēku, viena faila datu bāzes krātuvi un CLI interfeisu ar iespējām un optimizāciju, lai izpildītu analītiskos vaicājumus, kas aptver lielu daļu saglabāto datu, piemēram, visa tabulu satura apkopošana vai vairāku lielu tabulu apvienošana. Projekta kods ir rakstīts C++ valodā un tiek izplatīts saskaņā ar MIT licenci.

DuckDB nodrošina paplašinātu SQL valodas dialektu, kas ietver papildu iespējas ļoti sarežģītu un ilgstošu vaicājumu apstrādei. Ir iespējams izmantot sarežģītus tipus (masīvus, struktūras, savienības), kā arī izpildīt patvaļīgus un ligzdotus korelētus apakšvaicājumus. Tiek atbalstīta vienlaicīga vairāku vaicājumu izpilde, vaicājumu izpilde tieši no CSV un parketa failiem. Ir pieejams atbalsts importēšanai no PostgreSQL DBVS.

Projekts izmanto apvalku no SQLite, parseri no PostgreSQL, Date Math komponentu no MonetDB, savu logu funkciju ieviešanu (pamatojoties uz Segment Tree Aggregation algoritmu), regulāro izteiksmju procesoru, kas balstīts uz RE2 bibliotēku, savu vaicājumu optimizētāju, MVCC mehānismu vienlaicīgas uzdevumu izpildes pārvaldīšanai, pamatojoties uz Hycurry querry, un Concurry the executor Per-pipelining Query Execution algoritms, kas ļauj vienā operācijā apstrādāt lielas vērtību kopas.

Jaunajā versijā:

  • Pievienots atbalsts šifrētu datubāzes failu glabāšanai. GCM režīmā šifrēšanai tiek izmantots AES-256 algoritms. Šī šifrēšana ietver ne tikai galveno datu failu, bet arī WAL žurnālus un pagaidu failus. Datubāzes šifrēšanas atslēgas tiek norādītas, izmantojot ATTACH komandu ar ENCRYPTION_KEY parametru. ATTACH 'encrypted.db' AS enc_db (ENCRYPTION_KEY 'quack_quack');
  • Pievienots atbalsts komandai MERGE INTO, ko var izmantot kā alternatīvu komandai INSERT … ON CONFLICT, tai nav nepieciešama primārā atslēga un tā darbojas ar patvaļīgiem apvienošanas nosacījumiem. Komanda MERGE INTO ļauj izveidot nosacījuma SQL izteiksmes, kas apvieno INSERT, UPDATE un DELETE darbības vienā priekšrakstā. Piemēram, izmantojot MERGE, var apvienot divas tabulas, ievietojot trūkstošos ierakstus un atjauninot esošos. 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, *;
  • Papildus darbam ar tabulām Apache Iceberg formātā ir pievienots atbalsts rakstīšanas operācijām (iepriekš tika atbalstītas tikai lasīšanas operācijas), kas ļauj pārsūtīt datus no Iceberg uz DuckDB un otrādi.
  • Komandrindas klients ir atjaunināts ar operācijas progresa indikatoru, kas prognozē atlikušo laiku līdz pabeigšanai.
  • Pievienota loga funkcija FILL, ko var izmantot, lai interpolētu trūkstošās vērtības sakārtotos logos. FROM (VALUES (1, 1), (2, NULL), (3, 42)) t(c1, c2) SELECT fill(c2) OVER (ORDER BY c1) f; 1 21 42
  • Ir ieviests Teradata savienotāja papildinājums savienojuma izveidei ar Teradata datubāzēm. Papildinājums ļauj manipulēt ar tabulām, izpildīt vaicājumus un palaist SQL komandas tieši Teradata, izmantojot DuckDB.
  • Pievienots atbalsts kontrolpunktu veidošanai atmiņā esošajās tabulās, iespējojot saspiešanas atbalstu. Kontrolpunktu veidošana arī iztīra dzēstās rindas un atgūst vietu pēc dzēšanas darbībām. ATTACH ':memory:' AS memory_compressed (COMPRESS);
  • Ir ierosināti vairāki veiktspējas optimizācijas risinājumi: kārtošanas ieviešana ir pārslēgta uz k-virzienu apvienošanas kārtošanas algoritmu, kas samazina datu pārvietošanu. Kopējās tabulu izteiksmes (CTE) tagad tiek materializētas pēc noklusējuma.

Avots: opennet.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster