스크립트
00:00:00لسنوات، عندما كانت بياناتنا تتجاوز سعة جداول البيانات، لم تتغير النصيحة أبداً.
00:00:05ابدأ تشغيل مستودع بيانات سحابي، مثل Snowflake أو BigQuery.
00:00:09لكن هناك قاعدة بيانات مجانية صغيرة تعمل بالكامل على حاسوبك المحمول،
00:00:13وبينما كان الجميع يركزون على السحابة، تطورت هي بهدوء.
00:00:16أصبحت الآن تتمتع بتشفير حقيقي، وعمليات تحديث وإدراج بأسلوب Git، وأول إصدار دعم طويل الأمد لها.
00:00:22هذه هي DuckDB، وأريد أن أوضح لك تماماً كيف يبدو وضعها في عام 2026،
00:00:26بما في ذلك الشيء الكبير الوحيد الذي لا يزال الناس يخطئون في فهمه بشأنها.
00:00:35إذاً، DuckDB.
00:00:36فكر فيها كـ SQLite، ولكن للتحليلات.
00:00:40أنت تعرف SQLite.
00:00:41ملف واحد، بدون خادم، مدمج مباشرة داخل تطبيقك.
00:00:45DuckDB تحمل نفس الفكرة تماماً، باستثناء أنها ليست مصممة للمعاملات،
00:00:50بل صُممت لمعالجة الأرقام.
00:00:52صُممت لمسح وجمع ملايين الصفوف بسرعة فائقة.
00:00:56ومن أفضل مميزاتها أنها تقرأ ملفات Parquet و CSV و JSON مباشرة.
00:01:02لا توجد خطوة استيراد، ولا حاجة لتحميل البيانات أولاً.
00:01:05أنت فقط توجّه أوامر SQL إلى الملف.
00:01:08دعني أوضح لك كيف يبدو ذلك.
00:01:09إذا كنت تستمتع بأدوات البرمجة التي تسرع سير عملك، تأكد من الاشتراك.
00:01:13لدينا فيديوهات جديدة تصدر باستمرار.
00:01:15الآن، هنا في واجهة الأوامر، أكتب DuckDB، وأنا في موجه SQL فوراً.
00:01:20الآن، شاهد هذا.
00:01:21سأقوم بالاستعلام من ملف Parquet موجود على رابط عبر الإنترنت.
00:01:27لم أقم بتنزيله.
00:01:28لم أحدد أي شيء أو أبدأ تشغيل خادم.
00:01:30لقد تواصلت DuckDB معه، وبثت الملف عن بُعد، وشغلت SQL حقيقية عليه في سطر واحد.
00:01:36هذا بالضبط، في خمس ثوانٍ، هو سبب حب الناس لهذه الأداة.
00:01:40ولكن إليك الشيء الذي يخطئ فيه الناس.
00:01:43هناك إصداران يلعبان دوراً هنا، والإنترنت يستمر في خلطهما معاً.
00:01:48الميزات الكبيرة والمثيرة التي يتحدث عنها الجميع، التشفير الكامل AES-256 لقاعدة بياناتك،
00:01:54أمر “merge-into” لتحديثات البيانات بأسلوب Git، والقدرة على كتابة جداول Apache Iceberg،
00:01:59لا شيء من هذه موجود في الإصدار 1.5.
00:02:02لقد صدرت جميعها في DuckDB 1.4 في سبتمبر، والذي كان أيضاً أول إصدار دعم طويل الأمد لـ DuckDB.
00:02:08إطلاقاً.
00:02:09ثم، في الإصدار 1.5، في مارس الماضي، حصلنا على نسخة محدثة من ذلك.
00:02:14عميل سطر أوامر جديد جميل مع ألوان ونافذة عرض، ونوع متغير جديد للبيانات غير المهيكلة بشكل فوضوي،
00:02:20وتم دمج الهندسة الجغرافية مباشرة في النواة.
00:02:24بدلاً من مجرد استعلام سريع، دعني أوضح لك كيف تبدو DuckDB المحدثة حقاً
00:02:30في الممارسة العملية، ميزات 1.4، بالإضافة إلى 1.5 فوق ذلك.
00:02:34الآن، ما زلت أحتفظ باستعلام parquet الذي رأيناه سابقاً هنا.
00:02:38الآن، إليك الميزة الجديدة في 1.5، النوع المتغير (variant type).
00:02:43سأقوم بإنشاء جدول سريع وإدراج أنواع مختلطة، أعداد صحيحة، نصوص، مصفوفات، وكائنات، كلها في
00:02:50نفس العمود.
00:02:51لا يوجد مخطط، لا تحليل JSON، إنه يعمل فقط.
00:02:54وهو يخزن بيانات ثنائية ذات أنواع، والتي تضغط وتستعلم بشكل أفضل من JSON العادي.
00:02:59تلك هي ميزة النوع المتغير الجديدة.
00:03:02التالي هي الميزة التي غيرت بالفعل ما يمكنك بناؤه باستخدام DuckDB، وهي “merge into”.
00:03:08هذه من إصدار 1.4.
00:03:09لا تخلط بين ذلك.
00:03:10عبارة SQL واحدة نظيفة.
00:03:12لا توجد منطق تطبيق معقد.
00:03:13هذا هو النوع من الأشياء التي كانت تتطلب سابقاً Spark أو بايثون مخصص.
00:03:17ثم جزء التشفير أيضاً، بما أننا هنا.
00:03:21الآن، يمكنني الاستعلام عنه بشكل طبيعي، ولكن إذا حاولت فتح نفس الملف في جلسة جديدة بدون
00:03:27المفتاح، فإنه يفشل تماماً كما ينبغي.
00:03:30تشفير AES-256 على مستوى الصفحة، أنت تحضر المفتاح.
00:03:33DuckDB لا تخزنه ولا تديره.
00:03:36وهذا قبل أن ندخل حتى في كتابة Iceberg أو دعم الهندسة الجغرافية، والتي قد يستخدم الكثير
00:03:41منكم الامتداد المكاني (spatial) بدلاً من الهندسة (geometry).
00:03:43لهذا السبب كان إصدار 1.4 هو التحديث الكبير.
00:03:45لقد تحولت من محرك استعلام إلى شيء يمكنك الوثوق به فعلاً مع بيانات حقيقية على جهاز واحد.
00:03:50فقط.
00:03:51ملفات آمنة، تحديثات موثوقة، وتنسيقات مستودع البيانات الحديثة.
00:03:55الإصدار 1.5 جعل التجربة أفضل بكثير مع CLI محسن والنوع المتغير الجديد.
00:04:00حسناً، فكيف يختلف هذا عن الأدوات الموجودة بالفعل على جهازك؟
00:04:04لنتناول SQLite.
00:04:05نفس الشيء، ملف واحد، لا حاجة لخادم.
00:04:08لكن SQLite هو مخزن صفوف مصمم للمعاملات.
00:04:12بينما DuckDB هو مخزن أعمدة مصمم للتحليل.
00:04:15ثم يمكننا تناول Pandas.
00:04:17DuckDB تقدم لك محسّن SQL حقيقي وعمليات ربط متعددة الخيوط.
00:04:21لذا في عمليات التجميع الكبيرة، غالباً ما تكون أسرع قليلاً.
00:04:24ثم إذا تناولنا Snowflake أو BigQuery، فتلك مستودعات سحابية مصممة لفرق كاملة
00:04:30وبيتابايت من البيانات.
00:04:32DuckDB هي جهاز واحد يعمل داخل عمليتك الخاصة مجاناً.
00:04:35الآن، الشكوى الأولى المتكررة مراراً وتكراراً هي الذاكرة.
00:04:40وجّه DuckDB نحو مليار صف وقد تنفد الذاكرة تماماً وتتوقف.
00:04:45قد تكون غير مستقرة قليلاً للإنتاج أيضاً، إذا كان هذا ما تتعامل معه.
00:04:49الشيء الثاني هو أن هذه ليست قاعدة بيانات للمعاملات.
00:04:53إنها تدعم كاتباً واحداً.
00:04:54عملية واحدة تكتب في المرة الواحدة.
00:04:57لذا لا تستخدمها في الواجهة الخلفية لتطبيقك أو لتخزين الجلسات.
00:05:01تلك لا تزال وظيفة Postgres أو SQLite للمشاريع الصغيرة.
00:05:05وبالنسبة لجزء التشفير، إنه حقيقي وشامل، لكنك تجلب مفتاحك الخاص.
00:05:10DuckDB لا تخزن المفتاح.
00:05:12لا تقوم بتدوير المفتاح.
00:05:14لا تراقب أي شيء.
00:05:15إذا فقدت المفتاح.
00:05:16بياناتك ضاعت.
00:05:17وكتابة Iceberg تعيش في امتداد لا يزال جديداً تماماً.
00:05:22إذا كنت تقوم بالتحليلات، معالجة parquet و CSV، تشغيل تحويلات ELT، استكشاف البيانات
00:05:28في دفتر ملاحظات، أي شيء يتراوح من بضعة ميجابايت إلى حجم جهاز واحد، فإن DuckDB هي واحدة
00:05:33من أفضل الأدوات التي يمكنك تثبيتها.
00:05:35وهي مجانية تماماً، ومرخصة برخصة MIT بدون أي عوائق.
00:05:39ولكن إذا كنت بحاجة إلى واجهة خلفية للمعاملات لتطبيق ما، أو كنت تتعامل روتينياً مع مليارات
00:05:44الصفوف، ولا تريد ضبط الذاكرة يدوياً، فهذه هي الأداة الخطأ، وهذا مقبول.
00:05:50قاعدة البيانات المناسبة للوظيفة المناسبة.
00:05:52إذا كنت تستمتع بنصائح وحيل البرمجة كهذه، تأكد من الاشتراك في BetterStack Chick.
00:05:56سنراك في فيديو آخر.