قاعدة بيانات DuckDB أصبحت لا تُقهر...

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

스크립트

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سنراك في فيديو آخر.

핵심 요약

تعتبر DuckDB أداة تحليلية مجانية قوية تعمل محلياً على جهاز واحد لمعالجة ملفات Parquet وCSV، مع ميزات حديثة مثل التشفير المتكامل وأنواع البيانات المرنة، رغم عدم ملاءمتها لتطبيقات المعاملات متعددة الكتابة.

하이라이트

  • DuckDB توفر محرك استعلام تحليلي يعمل بالكامل محلياً دون خادم أو عملية تثبيت.

  • تتيح DuckDB إجراء استعلامات SQL مباشرة على ملفات Parquet و CSV و JSON دون الحاجة لخطوات استيراد.

  • إصدار DuckDB 1.4 قدم تشفير AES-256، دعم كتابة جداول Apache Iceberg، وأمر 'merge-into' لتحديث البيانات.

  • يوفر إصدار 1.5 نوع بيانات 'variant' لتخزين البيانات غير المهيكلة بشكل مضغوط وأكثر كفاءة من JSON.

  • تعتمد DuckDB بنية تخزين أعمدة مصممة للتحليلات، مما يجعلها مختلفة عن SQLite المعتمد على الصفوف.

  • تقتصر DuckDB على دعم كاتب واحد في المرة الواحدة، مما يجعلها غير مناسبة لقواعد بيانات المعاملات الخلفية.

타임라인

تعريف DuckDB وقدراتها الأساسية

  • تعمل DuckDB كقاعدة بيانات مدمجة بدون خادم مشابهة لـ SQLite ولكنها مخصصة للتحليلات.
  • تتمتع القدرة على قراءة ملفات Parquet و CSV و JSON مباشرة دون تحميل مسبق أو خطوات استيراد.
  • تنفذ DuckDB استعلامات SQL حقيقية على ملفات بعيدة أو محلية في ثوانٍ معدودة.

تستهدف الأداة معالجة الأرقام ومسح ملايين الصفوف بسرعة فائقة. يكمن تميزها في التخلص من الحاجة لإعداد مستودعات بيانات سحابية مكلفة للبيانات التي تناسب جهازاً واحداً. يتم إرسال أوامر SQL مباشرة إلى الملفات المصدرية، مما يوفر تدفق عمل سريع ومباشر.

ميزات إصدارات 1.4 و 1.5

  • جلب إصدار 1.4 ميزات رئيسية مثل تشفير AES-256 وأمر 'merge-into' ودعم Apache Iceberg.
  • أضاف إصدار 1.5 نوع بيانات 'variant' لتخزين البيانات المختلطة دون الحاجة لمخطط مسبق.
  • تحسن واجهة سطر الأوامر (CLI) في إصدار 1.5 ليشمل ألواناً ونافذة عرض محسنة.

يمثل إصدار 1.4 نقطة تحول من محرك استعلام بسيط إلى أداة موثوقة للتعامل مع البيانات الحقيقية بأمان. التشفير يتم على مستوى الصفحة باستخدام مفتاح خاص لا تخزنه DuckDB. يعالج نوع البيانات 'variant' الجديد المصفوفات والكائنات في عمود واحد بكفاءة تخزينية أعلى من JSON.

مقارنة الأدوات ومحدوديات الاستخدام

  • تختلف DuckDB عن SQLite في كونها مخزن أعمدة للتحليلات مقابل مخزن صفوف للمعاملات.
  • تتفوق DuckDB على مكتبات مثل Pandas في الاستعلامات الكبيرة بفضل محسّن SQL والعمليات متعددة الخيوط.
  • تحدث أخطاء عند تجاوز سعة الذاكرة مع البيانات الضخمة جداً التي تتطلب ضبطاً يدوياً.
  • لا تصلح DuckDB كقاعدة بيانات خلفية للتطبيقات لأنها تدعم كاتباً واحداً فقط في كل عملية.

تُعد DuckDB الأداة المثالية للتحليلات وتحويلات ELT داخل دفتر ملاحظات أو على جهاز شخصي. مع ذلك، يجب تجنب استخدامها لتطبيقات تتطلب معاملة كتابة متزامنة. في حالات ضياع مفتاح التشفير الخاص، لا توجد وسيلة لاستعادة البيانات، وهو جزء من مسؤولية المستخدم.

커뮤니티 글

모든 글 보기