في هذا الدليل، سنبدأ العمل بإصدار Python من chDB.
سنبدأ بالاستعلام عن ملف JSON على S3، ثم سننشئ جدولًا في chDB استنادًا إلى ملف JSON، ونجري بعض الاستعلامات على البيانات.
وسنرى أيضًا كيفية جعل الاستعلامات تُرجع البيانات بتنسيقات مختلفة، بما في ذلك Apache Arrow وPandas، وفي النهاية سنتعلم كيفية الاستعلام عن Pandas DataFrames.
لننشئ أولًا بيئة افتراضية:
والآن سنقوم بتثبيت chDB.
تأكد من أن لديك الإصدار 2.0.3 أو أحدث:
والآن سنثبّت ipython:
سنستخدم ipython لتشغيل الأوامر الواردة في بقية هذا الدليل، ويمكنك تشغيله عبر تنفيذ:
سنستخدم أيضًا Pandas وApache Arrow في هذا الدليل، لذا فلنثبّت هاتين المكتبتين أيضًا:
الاستعلام عن ملف JSON في S3
لنلقِ الآن نظرة على كيفية الاستعلام عن ملف JSON مخزَّن في حاوية S3.
تحتوي مجموعة بيانات عدم الإعجاب على YouTube على أكثر من 4 مليارات صفّ من حالات عدم الإعجاب بمقاطع فيديو YouTube حتى عام 2021.
سنعمل على أحد ملفات JSON من مجموعة البيانات هذه.
استورِد chdb:
يمكننا كتابة الاستعلام التالي لوصف بنية أحد ملفات JSON:
يمكننا أيضًا عدّ عدد الصفوف في ذلك الملف:
يحتوي هذا الملف على أكثر قليلًا من 300,000 سجل.
لا يدعم chdb حتى الآن تمرير معلمات الاستعلام، لكن يمكننا استخراج المسار وتمريره باستخدام f-String.
لا بأس في فعل ذلك باستخدام المتغيرات المعرّفة في برنامجك، لكن لا تفعله مع المُدخلات التي يقدّمها المستخدم، وإلا فسيصبح استعلامك عرضة لحقن SQL.
تنسيق الإخراج الافتراضي هو CSV، لكن يمكن تغييره باستخدام المعلَمة output_format.
يدعم chDB تنسيقات بيانات ClickHouse، بالإضافة إلى بعض التنسيقات الخاصة به، بما في ذلك DataFrame، الذي يعيد Pandas DataFrame:
أو إذا أردنا الحصول على جدول Apache Arrow:
بعد ذلك، لنرَ كيفية إنشاء جدول في chDB.
نحتاج إلى استخدام واجهة برمجة تطبيقات مختلفة لهذا الغرض، لذا لنستوردها أولًا:
بعد ذلك، سنهيّئ جلسة.
إذا أردنا الاحتفاظ بالجلسة على القرص، فعلينا تحديد اسم دليل.
إذا تركناه فارغًا، فستكون قاعدة البيانات في الذاكرة وستُفقد بمجرد إنهاء عملية Python.
بعد ذلك، سننشئ قاعدة بيانات:
يمكننا الآن إنشاء جدول dislikes استنادًا إلى المخطط الوارد في ملف JSON، باستخدام أسلوب CREATE...EMPTY AS.
سنستخدم الإعداد schema_inference_make_columns_nullable حتى لا تُجعل جميع أنواع الأعمدة Nullable.
يمكننا بعد ذلك استخدام جملة DESCRIBE لاستعراض المخطط:
بعد ذلك، لنقم بتعبئة ذلك الجدول بالبيانات:
يمكننا أيضًا تنفيذ هاتين الخطوتين معًا دفعةً واحدة باستخدام أسلوب CREATE...AS.
لنُنشئ جدولًا آخر باستخدام هذا الأسلوب:
أخيرًا، لنُجرِ استعلامًا على الجدول:
لنفترض أننا أضفنا بعد ذلك عمودًا إضافيًا إلى DataFrame لحساب نسبة الإعجابات إلى مرات عدم الإعجاب.
يمكننا كتابة التعليمة البرمجية التالية:
الاستعلام عن Pandas DataFrame
يمكننا بعد ذلك الاستعلام عن DataFrame هذا من خلال chDB:
يمكنك أيضًا الاطلاع على مزيد من المعلومات حول الاستعلام عن Pandas DataFrames في دليل المطورين للاستعلام عن Pandas DataFrames.
نأمل أن يكون هذا الدليل قد قدّم لك فكرة واضحة وجيدة عن chDB.
للتعرّف أكثر على كيفية استخدامه، راجع أدلة المطورين التالية: