הרצת שאילתות בנתוני GitHub באמצעות BigQuery

BigQuery הוא מסד נתונים פתוח של Google&#39, NoOps, לניתוח נתונים בעלות נמוכה. באמצעות BigQuery אפשר להריץ שאילתות על נתונים בנפח טרה-בייט בלי שתצטרכו להיעזר באדמין של מסד נתונים או בכל תשתית שצריך לנהל. BigQuery משתמש במודל SQL מוכר ובמודל תשלום לפי שימוש. BigQuery מאפשר לכם להתמקד בניתוח נתונים כדי למצוא תובנות חשובות.

בשיעור Lab זה נראה איך לשלוח שאילתות לגבי מערך הנתונים הציבורי של 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. נתייחס אליו מאוחר יותר ב-codelab הזה בתור PROJECT_ID.

ב-codelab זה נעשה שימוש במשאבים של 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.49GB, השאילתה עובדה רק ב-35.8MB. BigQuery מעבד רק את הבייטים מהעמודות המשמשות בשאילתה, כך שהסכום הכולל של הנתונים שמעובדים עשוי להיות קטן באופן משמעותי מגודל הטבלה. בעזרת אשכולות וחלוקה, אפשר לצמצם עוד יותר את כמות הנתונים שמעובדים.

עכשיו עליך להריץ שאילתות על מערך נתונים אחר, כמו אחד ממערכי הנתונים הציבוריים האחרים.

לדוגמה, השאילתה הזו מוצאת פרויקטים פופולריים שאינם קיימים או שאינם מתוחזקים במערך הנתונים הגלוי לכול 'ספריות' שעדיין משמשים כתלויים בפרויקטים אחרים.

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 Archive יכול לשמש לניתוח אירועים ציבוריים ב-GitHub, כמו בקשות משיכה, כוכבים של מאגרים ובעיות שנפתחו. אפשר להשתמש במערך הנתונים PyPI של Python לתוכנות כדי לנתח בקשות הורדה לחבילות Python.

השתמשתם ב-BigQuery וב-SQL כדי להריץ שאילתות על מערך הנתונים הציבורי של GitHub. יש לך אפשרות להריץ שאילתות על מערכי נתונים בקנה מידה גדול של פטה-בייט!

באילו נושאים מדובר?

  • שימוש בתחביר SQL כדי לשלוח שאילתות על רשומות מחויבות של GitHub
  • כותבים שאילתה כדי לקבל תובנות לגבי מערך נתונים גדול

למידע נוסף