طلب بيانات GitHub باستخدام BigQuery

أداة BigQuery هي قاعدة بيانات تحليلات مُدارة بالكامل من خلال Google وتديرها NoOps، ومنخفضة التكلفة. وباستخدام BigQuery، يمكنك إجراء طلبات بحث يقدَّر حجمها بالتيرابايت من البيانات بدون الحاجة إلى مشرف قاعدة بيانات أو أي بنية أساسية لإدارتها. يستخدم BigQuery لغة الاستعلامات البنيوية (SQL) المألوفة ونموذج تحصيل رسوم مقابل الاستخدام المدفوع فقط. تتيح لك أداة BigQuery التركيز على تحليل البيانات للعثور على إحصاءات مفيدة.

في هذا الدرس التطبيقي، سنتعرّف على كيفية إجراء طلب بحث في مجموعة البيانات العامة على GitHub، وهي مجموعة من مجموعات البيانات العلنية المتاحة على BigQuery.

ما ستتعرّف عليه

  • استخدام BigQuery
  • كتابة طلب بحث للحصول على إحصاءات عن مجموعة بيانات كبيرة

المتطلبات اللازمة

  • مشروع Google Cloud Platform
  • متصفح، مثل Chrome أو Firefox

تفعيل BigQuery

إذا لم يكن لديك حساب على Google (Gmail أو Google Apps)، يجب إنشاء حساب.

  • سجِّل الدخول إلى وحدة تحكُّم Google Cloud Platform (console.cloud.google.com) وانتقِل إلى BigQuery. يمكنك أيضًا فتح واجهة مستخدم الويب في BigQuery مباشرةً من خلال إدخال عنوان URL التالي في المتصفح.
https://console.cloud.google.com/bigquery
  • وافق على بنود الخدمة.
  • قبل أن تتمكن من استخدام BigQuery، يجب إنشاء مشروع. اتّبع رسائل المطالبة لإنشاء مشروعك الجديد.

    اختَر اسم مشروع وسجِّل رقم تعريف المشروع.


    رقم تعريف المشروع هو اسم فريد في جميع مشاريع Google Cloud. وسيُشار إليه لاحقًا في هذا الدرس التطبيقي بعنوان PROJECT_ID.

يستخدم هذا الدرس التطبيقي حول الترميز رموز BigQuery مع حدود وضع الحماية في BigQuery. ولا يلزم توفّر حساب فوترة. إذا كنت ترغب في إزالة حدود وضع الحماية في وقت لاحق، يمكنك إضافة حساب فوترة عن طريق الاشتراك في النسخة التجريبية المجانية من Google Cloud Platform.

افتح مجموعة بيانات GitHub في واجهة مستخدم الويب في BigQuery.

https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=github_repos&t=commits&page=table

يمكنك الاطّلاع على معاينة سريعة لكيفية ظهور البيانات.

افتح محرر طلبات البحث.

أدخِل طلب البحث هذا للعثور على رسائل الالتزام الأكثر شيوعًا في مجموعة بيانات GitHub العامة،

SELECT subject AS subject,
  COUNT(*) AS num_duplicates
FROM `bigquery-public-data.github_repos.sample_commits`
GROUP BY subject
ORDER BY num_duplicates DESC
LIMIT 100

نظرًا لأن مجموعة بيانات GitHub كبيرة، من المفيد استخدام مجموعة بيانات أصغر حجمًا أثناء إجراء التجارب لتوفير التكاليف. استخدِم وحدات البايت التي تمت معالجتها أسفل المحرِّر لتقدير تكلفة طلب البحث.

انقر على الزر تشغيل طلب البحث.

خلال بضع ثوانٍ، سيتم عرض النتيجة في الأسفل، وستوضّح لك أيضًا مقدار البيانات التي تمت معالجتها والوقت الذي استغرقه ذلك:

على الرغم من أن جدول sample_commits هو 2.49 غيغابايت، فإن طلب البحث يعالج فقط 35.8 ميغابايت. لن يعالج BigQuery وحدات البايت من الأعمدة المستخدمة في طلب البحث إلا إذا كان إجمالي البيانات التي تمت معالجتها أقل بكثير من حجم الجدول. باستخدام التجميع والتقسيم، يمكن خفض مقدار البيانات التي تمت معالجتها بشكل أكبر.

والآن حاوِل إجراء طلب بحث في مجموعة بيانات أخرى، مثل إحدى مجموعات البيانات العامة الأخرى.

على سبيل المثال، يعثر هذا الطلب على مشاريع شائعة متوقّفة أو لم تتم صيانتها في مجموعة بيانات مكتبات Libaries.io العامة التي لا تزال تُستخدم كاعتمادية في المشاريع الأخرى.

SELECT
  name,
  dependent_projects_count,
  language,
  status
FROM
  `bigquery-public-data.libraries_io.projects_with_repository_fields`
WHERE status IN ('Deprecated', 'Unmaintained')
ORDER BY dependent_projects_count DESC
LIMIT 100

أتاحت مؤسسات أخرى أيضًا بياناتها للجميع على BigQuery. على سبيل المثال، يمكن استخدام مجموعة بيانات أرشيف GitHub لتحليل الأحداث العامة على GitHub، مثل طلبات السحب ونجوم المستودع والمشاكل التي تم فتحها. يمكن استخدام مجموعة بيانات PyPI ضمن برنامج Python الخاصّة بتحليل طلبات تنزيل حِزم Python.

لقد استخدمت BigQuery وSQL لطلب بحث في مجموعة بيانات GitHub العامة. وتتوفّر لك إمكانية طلب البيانات من مجموعات البيانات على مستوى البت بايت.

المواضيع التي تناولناها

  • استخدام بنية SQL لطلب بحث عن سجلات GitHub
  • كتابة طلب بحث للحصول على إحصاءات عن مجموعة بيانات كبيرة

مزيد من المعلومات