إطلاق DuckDB 0.10.0، وهو متغير SQLite للاستعلامات التحليلية

تم تقديم إصدار DuckDB 0.10.0 DBMS، الذي يجمع بين خصائص SQLite مثل الضغط والقدرة على الاتصال في شكل مكتبة مدمجة وتخزين قاعدة البيانات في ملف واحد وواجهة CLI مريحة، مع أدوات وتحسينات للتنفيذ الاستعلامات التحليلية التي تغطي جزءًا كبيرًا من البيانات المخزنة، على سبيل المثال، التي تجمع محتويات الجداول بالكامل أو تدمج عدة جداول كبيرة. يتم توزيع رمز المشروع بموجب ترخيص MIT. لا يزال التطوير في مرحلة تشكيل الإصدارات التجريبية، نظرًا لأن تنسيق التخزين لم يستقر بعد ويتغير من إصدار إلى آخر.

يوفر DuckDB لهجة SQL متقدمة تتضمن إمكانات إضافية للتعامل مع الاستعلامات المعقدة للغاية والمستهلكة للوقت. يتم دعم استخدام الأنواع المعقدة (المصفوفات والهياكل والاتحادات) والقدرة على تنفيذ الاستعلامات الفرعية المترابطة التعسفية والمتداخلة. وهو يدعم تشغيل استعلامات متعددة في وقت واحد، وتشغيل الاستعلامات مباشرة من ملفات CSV وParquet. من الممكن الاستيراد من PostgreSQL DBMS.

بالإضافة إلى كود الصدفة من SQLite، يستخدم المشروع محللًا من PostgreSQL في مكتبة منفصلة، ​​ومكون Date Math من MonetDB، وتنفيذه الخاص لوظائف النافذة (استنادًا إلى خوارزمية تجميع شجرة القطاع)، ومعالج التعبير العادي القائم على مكتبة RE2 ومُحسِّن الاستعلام الخاص بها وآلية التحكم MVCC للتنفيذ المتزامن للمهام (التحكم في التزامن متعدد الإصدارات)، بالإضافة إلى محرك تنفيذ الاستعلام الموجه استنادًا إلى خوارزمية تنفيذ الاستعلام Hyper-Pipelining، والتي تسمح بمجموعات كبيرة من القيم لتتم معالجتها مرة واحدة في عملية واحدة.

من بين التغييرات في الإصدار الجديد:

  • تم تحسين أداء تحليل البيانات بتنسيق CSV بشكل ملحوظ. على سبيل المثال، تم تقليل قراءة ملف CSV الذي يحتوي على 11 مليون صف في الإصدار الجديد من 2.6 ثانية. ما يصل إلى 1.15 ثانية، وإجراء عملية "SELECT COUNT(*)" أعلى ملف CSV من 1.8 ثانية. ما يصل إلى 0.3 ثانية.
  • تمت إضافة دعم للمصفوفات ذات الحجم الثابت، والتي تشبه القوائم التي تحتوي على عدد ثابت من العناصر ("CREATE TABLE Vectors(v DOUBLE[3]);").
  • تمت إضافة دعم للاتصال بـ MySQL وPostgreSQL وSQLite DBMS، مما يسمح لك بتحميل البيانات من DBMS خارجي إلى DuckDB ونقلها بين الأنظمة المختلفة. يتم الوصول إلى قواعد البيانات الخارجية باستخدام الجداول القياسية. إرفاق 'postgres:dbname=postgresscanner' AS postgres؛ حدد العنوان، Release_year، الطول من postgres.film LIMIT 5؛
  • تمت إضافة دعم للتعبير "COMMENT ON" لحفظ تعليق حول كائن في قاعدة البيانات.
  • تمت إضافة دعم للتعبير "COPY FROM DATABASE" لنسخ كل المحتوى من قاعدة بيانات إلى أخرى.
  • تمت إضافة دعم لمعدل "الكل" في تعبيرات باستثناء وتقاطع.
  • نوع التنفيذ »

    المصدر: opennet.ru

إضافة تعليق