ΠŸΡŠΡ€Π²ΠΈΡΡ‚ стабилСн Ρ€Π΅Π»ΠΈΠ· Π½Π° Π‘Π£Π‘Π” DuckDB

Π‘Π»Π΅Π΄ ΡˆΠ΅ΡΡ‚ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅ прСдставСна вСрсия 1.0 Π½Π° Π‘Π£Π‘Π” DuckDB, ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½Π° ΠΊΠ°Ρ‚ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° SQLite Π·Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ заявки. DuckDB ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° характСристики Π½Π° SQLite, ΠΊΠ°Ρ‚ΠΎ компактност, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ» ΠΈ ΡƒΠ΄ΠΎΠ±Π΅Π½ CLI интСрфСйс, със срСдства ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π° изпълнСниС Π½Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ заявки, ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‰ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° част ΠΎΡ‚ съ храняванитС Π΄Π°Π½Π½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‰ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π½Π° съв ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ обСдиняванС Π½Π° няколко Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° C++ ΠΈ сС разпространява ΠΏΠΎΠ΄ MIT Π»ΠΈΡ†Π΅Π½Π·.

ВСрсия 1.0 Π΅ отбСлязана ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈ стабилСн Ρ€Π΅Π»ΠΈΠ· Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π±ΠΈΠ»ΠΎ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΎ основно Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° стабилността, Π° Π½Π΅ Π½Π° добавянС Π½Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π·Π°ΠΊΡ€Π΅ΠΏΠ΅Π½Π° фиксацията Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΡ‚ миналия Ρ€Π΅Π»ΠΈΠ· сС осигурява ΠΎΠ±Ρ€Π°Ρ‚Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚. Π’ послСдващитС издания Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ Π΄Π° подходят ΠΏΠΎ-Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ към добавянСто Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π΄Π° сС Π³Ρ€ΠΈΠΆΠ°Ρ‚ Π·Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиитС, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° стабилизират Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π° Π½Π° SQL ΠΈ C API. Ако Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ сС Π½Π°Π»ΠΎΠΆΠΈ промяна Π² сСмантиката Π½Π° SQL, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‰Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° прСдстоящи ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΈ Ρ‰Π΅ прСдоставят ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° работоспособността Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ ΠΊΠΎΠ΄.

DuckDB ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ Π½Π° SQL, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ слоТни ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ заявки. НапримСр, Π΅ възмоТно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° слоТни Ρ‚ΠΈΠΏΠΎΠ²Π΅ (масиви, структури, обСдинСния), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ изпълнСниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΠΎΡ€Π΅Π»ΠΈΡ€Π°Ρ‰ΠΈ подзапитвания. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изпълнСниС Π½Π° няколко заявки, изпълнСниС Π½Π° заявки Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ CSV ΠΈ Parquet. НалицС Π΅ ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° внос ΠΎΡ‚ Π‘Π£Π‘Π” PostgreSQL.

Π’ допълнСниС към ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° Π½Π° SQLite, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚Π΄Π΅Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° парсинг ΠΎΡ‚ PostgreSQL, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Date Math ΠΎΡ‚ MonetDB, собствСна рСализация Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (въз основа Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Segment Tree Aggregation), ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° RE2, собствСн ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π° запитвания, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ MVCC Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎ изпълнСниС Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ (Multi-Version Concurrency Control), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€Π°Π½ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» Π·Π° изпълнСниС Π½Π° запитвания Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Hyper-Pipelining Query Execution, позволяващ Π² Π΅Π΄Π½Π° опСрация Π΄Π° сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ стойности.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster