العودة
لمحة عن DuckDB v2.0: وضع الخادم والمُشغّلات وصيغة تخزين جديدة
SiTech AI Team3 წთ. საკითხავი

لمحة عن DuckDB v2.0: وضع الخادم والمُشغّلات وصيغة تخزين جديدة

ستحصل قاعدة البيانات التحليلية على وضع عميل-خادم ودعم كامل للمُشغّلات ونوع VARIANT وإدخال-إخراج غير متزامن. الإصدار 2.0 باسم Cyanoptera يصدر في الخريف ويضم أكثر من عشرة آلاف التزام.

نشرت DuckDB لمحة عن الإصدار 2.0، وهو الإصدار الرئيسي المقبل من قاعدة البيانات التحليلية التي تعمل داخل العملية، ويُنتظر صدوره في الخريف تحت اسم Cyanoptera تيمنًا بالبط البري. يتضمن الإصدار أكثر من عشرة آلاف التزام منذ صدور v1.5 في مارس، ويصفه المشروع بأنه بداية «عام DuckDB كخادم».

وضع الخادم أخيرًا

التغيير الأبرز هو دعم بنية العميل-الخادم. فإضافة quack، التي عُرضت في مايو، تطبّق بروتوكول DuckDB الخاص وتصبح مستقرة في v2.0: يمكن لأي عملية DuckDB أن تقدّم قواعد بياناتها عبر الشبكة، ويمكن لعملية DuckDB أخرى أن تتصل بها وتوجّه الاستعلامات إليها بأمر CONNECT الجديد. ولا يقتصر CONNECT على DuckDB؛ فعند توجيهه إلى خادم PostgreSQL أو MySQL يرسل جملة SQL مباشرة إلى النظام البعيد بدل سحب الجداول عبر الشبكة، وذلك عبر مُحسّن remote pushdown الجديد. ويشير الفريق إلى أن DuckDB كانت منذ اليوم الأول قاعدة بيانات تعاملية مع MVCC كامل، وهي ميزة تظهر قيمتها الآن في عمليات النشر متعددة المستخدمين وطويلة الأمد. وللسبب نفسه أُعيد تصميم المقاييس والسجلات.

نوع VARIANT والمُشغّلات وإضافات SQL

أصبح نوع VARIANT، الذي ظهر في v1.5، عنصرًا كامل الحقوق: فالتفكيك البنيوي يجري مباشرة من التخزين، والاستخراج يُدفع إلى عمليات المسح، والقراءة والكتابة بصيغة Parquet مدعومتان، وتُضاف عائلة دوال variant_*. ويعتزم الفريق أن يبني على VARIANT أيضًا نوع JSON العادي بعد الإصدار بوقت قصير، بحيث تحصل أحمال JSON الحالية على المزايا نفسها دون تغيير أي استعلام.

وتأتي المُشغّلات كاملة: BEFORE و AFTER، وFOR EACH ROW و FOR EACH STATEMENT، وجداول الانتقال عبر REFERENCING OLD/NEW TABLE، وعدة مُشغّلات للحدث الواحد، وRETURNING و DROP TRIGGER. والحالة الاستخدامية الكلاسيكية هي جدول تدقيق يسجّل التغييرات.

كما تكسب لهجة SQL بحث التشابه لأفضل k نتيجة كشرط ربط (APPROX NEAREST، لأحمال المتجهات والتضمينات)، وجمل DML داخل CTE، والمخططات المتداخلة، وصيغة $variable، ودوال تعديل JSON مثل json_set، وCTE الاستدعاء الذاتي مع تجميع USING KEY.

إدخال-إخراج أسرع واستعلامات أسرع وإضافات موقّعة

يعمل الإدخال-الإخراج غير المتزامن الآن في المحرّك كله، فصارت طبقة الإدخال-الإخراج تتوسّع بمعزل عن معالجة الاستعلامات: Parquet أولًا، ثم CSV وصيغة DuckDB الخاصة، إضافة إلى وضعي MMAP وDIRECT_IO الجديدين. وأكبر المكاسب على التخزين الشبكي. وعلى صعيد الاستعلامات، تُدفع التجميعات الجزئية إلى ما تحت عمليات الربط، وأُعيدت كتابة محرّك CTE الاستدعاء الذاتي، وتُفرَّغ التجميعات إلى القرص عند تجاوز الذاكرة، وصار واجهة سطر الأوامر في Windows أسرع بنحو 2.2 مرة في تجميع النتائج متعددة الخيوط.

وتحصل الإضافات على واجهة C مستقرة أُعيد تصميمها، وعلى مستودعات يسجّلها المستخدمون — وهي قيد التطوير — تنشر إضافات موقّعة بـRSA، مع طباعة بصمة SHA-256 لكل مفتاح عند التسجيل. وبدءًا من الخريف، ستُضاف إلى مؤسسة DuckDB هيئة استشارية من أصحاب المصلحة تُسهم في خرائط طريق DuckDB وDuckLake وQuack. وتضم إصدارات المعاينة معظم هذه المزايا اليوم، لكن الفريق ينبّه إلى أن التفاصيل قد تتغيّر قبل إصدار الخريف.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.