DuckDB 1.2.0 Release

DuckDB 1.2.0, in DBMS rjochte op analytyske queries en konseptueel fergelykber mei SQLite, is frijlitten. DuckDB kombinearret de kompakte grutte fan SQLite, pluggable bibleteek, single-file databank opslach, en CLI ynterface mei mooglikheden en optimisaasjes foar it útfieren fan analytyske queries dy't oerspant in grut part fan de opsleine gegevens, lykas it aggregearjen fan de hiele ynhâld fan tabellen of gearfoegjen fan ferskate grutte tabellen. De projektkoade is skreaun yn C ++ en wurdt ferspraat ûnder de MIT-lisinsje.

DuckDB leveret in útwreide dialekt fan 'e SQL-taal dy't ekstra mooglikheden omfettet foar it behanneljen fan heul komplekse en langrinnende fragen. It is mooglik om komplekse typen te brûken (arrays, struktueren, fakbûnen), en ek om willekeurige en nestede korrelearre subqueries út te fieren. Simultane útfiering fan meardere queries, útfiering fan queries direkt fan CSV- en Parquet-bestannen wurdt stipe. Stipe foar ymportearje fan PostgreSQL DBMS is beskikber.

It projekt brûkt in shell fan SQLite, in parser fan PostgreSQL, in Date Math-komponint fan MonetDB, syn eigen ymplemintaasje fan finsterfunksjes (basearre op it Segment Tree Aggregation-algoritme), in reguliere ekspresjeprosessor basearre op 'e RE2-bibleteek, syn eigen query-optimizer, in MVCC-útfiermeganisme foar it behearen fan simultane taken en kontur- query-útfiering ionmotor basearre op it Hyper-Pipelining Query Execution-algoritme, wêrtroch grutte sets wearden yn ien operaasje kinne wurde ferwurke.

Yn de nije ferzje:

  • Implementearre stipe foar nije kompresjemetoaden dy't net standert binne ynskeakele om kompatibiliteit fan DB-bestannen te behâlden mei eardere ferzjes fan DuckDB. Om it ferbettere DB-bestânformaat te brûken, is it no mooglik om de DB te binen oan it ferzjenûmer - by it iepenjen fan in bestân mei de parameter "STORAGE_VERSION" kinne jo no de minimale stipe DB-ferzje oantsjutte ("ATTACH 'file.db' (STORAGE_VERSION 'v1.2.0');"). Om it nije formaat nei it âlde te konvertearjen, kinne jo it kommando SQL COPY brûke, bygelyks: ATTACH 'file1.db'; ATTACH 'converted_file.db' (STORAGE_VERSION 'v1.0.0'); COPY FROM DATABASE file1 TO converted_file;
  • Stipe tafoege foar it SQL-kommando "ALTER TABLE ... PRIMARY KEY ADD" om in primêre kaai ta te foegjen oan in besteande tabel.
  • Fuortsmite in beheining dy't foarkaam it opnij tafoegjen fan identifiers dy't in unykheid tracking-yndeks hiene as dy identifiers waarden wiske yn de aktuele transaksje. Bygelyks, de folgjende SQL-koade produsearret net mear in flater: CREATE TABLE studinten (id INTEGER PRIMARY KEY, namme VARCHAR); INSERT INTO studinten WAARDEN (1, 'John Doe'); BEGJINNE; DELETE FROM studinten WHERE id = 1; INSERT INTO studinten WAARDEN (1, 'Jane Doe');
  • Stipe tafoege foar it laden fan CSV-bestannen yn Latyn-1- en UTF-16-kodearrings (earder waard allinich UTF-8-kodearring stipe). FROM read_csv('cities-latin-1.csv', kodearring = 'latin-1');
  • Stipe tafoege foar it brûken fan multi-byte-skieders (oant 4 bytes) yn CSV-bestannen, wêrtroch jo emoji kinne opjaan as in kolomskiednis. a🦆b hello🦆world FROM read_csv('example.dsv', sep = '🦆');
  • Standert is strange modus ynskeakele foar it parsearjen fan CSV-bestannen ("strict_mode = true"), dy't kontrolearret dat de opmaak foldocht oan 'e RFC 4180-spesifikaasje.
  • De CSV-parser brûkt in nij algoritme foar nijlinedeteksje dy't parallelisaasje fan operaasjes stipet. It brûken fan it nije algoritme fersnelle CSV-parsing mei sawat 15%.
  • Fuortsmite de beheining op de line grutte yn CSV triemmen (earder soe de line net mear as 8 MB).
  • By it eksportearjen fan gegevens yn Parquet-formaat wurdt stipe foar hashes (wurdboeken) en yndeksen basearre op it Bloom-filter ymplementearre. De DELTA_BINARY_PACKED-kompresjemetoade is ymplementearre, wêrtroch de grutte fan Parquet-bestannen signifikant kin ferminderje.
  • In feilige modus is tafoege oan de kommandorigelynterface, aktivearre mei de opsje "-safe" of it kommando ".safe_mode". Yn dizze modus is tagong allinnich tastien ta de ynearsten oantsjutte databank triem, en in besykjen om te iepenjen oare triemmen sil resultearje yn in flater.
  • De kommandorigelynterface hat ferbettere ynfierautofolling. De autofoltôgingskoade is omboud om PEG (Parsing Expression Grammar) te brûken.
  • By it útfieren fan kommando's yn 'e kommandorigelynterface is in fisuele werjefte fan grutte sifers ymplementearre, bygelyks by it werjaan fan it nûmer 100000000, "(100 miljoen)" sil ek taheakke wurde.
  • SQL stipet no in syntaksis wêrby't ôfkoarte tabel- en ekspresjenammen kinne wurde opjûn foar de wearden dêr't se op wize (ynstee fan 'e syntaksis "ekspresje AS-namme" te brûken): SELECT e1: some_long_and_winding_expression, e2: t2.a_column_name FROM t1: long_schema.some_long_table_name;
  • It kommando "SELECT" stipet no de operaasje "RENAME" foar it omneamen fan fjildenútfier as de "*"-ekspresje is oantsjutte: SELECT * RENAME (col1 AS new_col1) FROM hiele getallen;
  • It kommando "SELECT" lit it gebrûk meitsje fan "LIKE" en "SIMILAR TO" operaasjes by it útfieren fia "*": SELECT * LIKE 'val%' FROM key_val;
  • Ferbettere kwaliteit fan generaasje fan pseudo-willekeurich nûmers.
  • De query-optimizer is modernisearre. Prestaasje yn 'e TPC-H SF100-test is mei 13% ferhege.
  • In nije C-like API foar it ûntwikkeljen fan tafoegings wurdt foarsteld, dy't bygelyks kinne wurde brûkt om nije aggregaat- of tabelfunksjes te meitsjen.
  • Stipe tafoege foar systemen mei de standert C-bibleteek Musl.

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster