ИздаванС Π½Π° Π‘Π£Π‘Π” DuckDB 1.4.0 с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ Π½Π° Π‘Π”.

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

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

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

Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π²Encrypted, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ AES-256 Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π² GCM Ρ€Π΅ΠΆΠΈΠΌ. Π¨ΠΈΡ„Ρ€ΠΎΠ²Π° сС Π½Π΅ само основният Ρ„Π°ΠΉΠ» с Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΈ WAL Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. ΠšΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ сС Π·Π°Π΄Π°Π²Π°Ρ‚ с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° ATTACH Ρ‡Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° ENCRYPTION_KEY. ATTACH 'encrypted.db' AS enc_db (ENCRYPTION_KEY 'quack_quack');
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° 'MERGE INTO', която ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° ΠΈΠ·Ρ€Π°Π·Π° 'INSERT … ON CONFLICT', Π½Π΅ изискваща ΠΏΡŠΡ€Π²ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ условия Π·Π° сливанС. ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° 'MERGE INTO' позволява ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° условни SQL ΠΈΠ·Ρ€Π°Π·ΠΈ, обСдиняващи ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ INSERT, UPDATE ΠΈ DELETE Π² Π΅Π΄ΠΈΠ½ ΠΈΠ·Ρ€Π°Π·. НапримСр, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° MERGE ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° сливанС Π½Π° Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΊΠ°Ρ‚ΠΎ сС вставят липсващи записи ΠΈ сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅. 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, Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° запис (ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΎ само Ρ‡Π΅Ρ‚Π΅Π½Π΅), ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Iceberg Π² DuckDB ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.
  • Π’ клиСнтската ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π° Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊΠ° Π½Π° опСрацията с ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π° Π·Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, останало Π΄ΠΎ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½Π°Ρ‚Π° функция "FILL", която ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° интСрполация Π½Π° липсващи стойности Π² ΠΏΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ. FROM (VALUES (1, 1), (2, NULL), (3, 42)) t(c1, c2) SELECT fill(c2) OVER (ORDER BY c1) f; 1 21 42
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ Teradata Connector Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Teradata. Π”ΠΎΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ позволява ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° запитвания ΠΈ изпълняванС Π½Π° SQL ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² Teradata, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ DuckDB.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° фиксиранС Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ (checkpoint) Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° компрСсия. ОсвСн Ρ‚ΠΎΠ²Π°, ΠΏΡ€ΠΈ фиксиранС Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° почистванС Π½Π° ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΈ освобоТдаванС Π½Π° място слСд ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅. ATTACH β€˜:memory:’ AS memory_compressed (COMPRESS);
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ са няколко ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° производитСлността: рСализацията Π½Π° сортиранС Π΅ прСмСстСна Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡŠΡ‚Π½ΠΎ сливанС (k-way merge sort), ΠΊΠΎΠΉΡ‚ΠΎ намалява прСмСстванСто Π½Π° Π΄Π°Π½Π½ΠΈ. ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ (Common Table Expression, CTE) сСга сС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.

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

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