ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° DuckDB 0.10.0, Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° SQLite Π·Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ запитвания

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

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

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

Π‘Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:

  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° производитСлността ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² CSV Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. НапримСр, Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° CSV Ρ„Π°ΠΉΠ» с 11 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ ΠΎΡ‚ 2.6 сСкунди Π½Π° 1.15 сСкунди, Π° опСрацията β€žSELECT COUNT(*)β€œ Π²ΡŠΡ€Ρ…Ρƒ CSV Ρ„Π°ΠΉΠ»Π° Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½Π° ΠΎΡ‚ 1.8 сСкунди Π½Π° 0.3 сСкунди.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° масиви с фиксиран Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΊΠΎΠΈΡ‚ΠΎ наподобяват ΡΠΏΠΈΡΡŠΡ†ΠΈ, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ фиксиран Π±Ρ€ΠΎΠΉ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€žCREATE TABLE vectors(v DOUBLE[3]);β€œ).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с Π‘Π£Π‘Π” MySQL, PostgreSQL ΠΈ SQLite, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² DuckDB ΠΎΡ‚ външни Π‘Π£Π‘Π” ΠΈ прСмСстванС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ систСми. Π”ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ външни Π‘Π” сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. ATTACH β€˜postgres:dbname=postgresscanner’ AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΈΠ·Ρ€Π°Π·Π° β€žCOMMENT ONβ€œ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ Π·Π° ΠΎΠ±Π΅ΠΊΡ‚ Π² Π‘Π”.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΈΠ·Ρ€Π°Π·Π° β€žCOPY FROM DATABASEβ€œ Π·Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π° цялото ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ ΠΎΡ‚ Π΅Π΄Π½Π° Π‘Π” Π² Π΄Ρ€ΡƒΠ³Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° β€žALLβ€œ Π² ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅ EXCEPT ΠΈ INTERSECT.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ Ρ‚ΠΈΠΏ

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