שאילתת נתונים מ-GitHub באמצעות BigQuery

‫BigQuery הוא מסד נתונים מנוהל של Google לניתוח נתונים, שאינו דורש פעולות (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 מעבדת רק את הבייטים מהעמודות שמשמשות בשאילתה, כך שכמות הנתונים הכוללת שעוברת עיבוד יכולה להיות קטנה משמעותית מגודל הטבלה. בעזרת אשכולות ומחיצות, אפשר לצמצם עוד יותר את כמות הנתונים שמעובדים.

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

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

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

מה למדנו

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

מידע נוסף