שימוש ב-BigQuery כדי לשלוח שאילתות על נתונים מ-GitHub

1. מבוא

‫BigQuery הוא מסד נתונים מנוהל של Google לניתוח נתונים בעלות נמוכה. עם BigQuery, אתם יכולים להריץ שאילתות על טרה-בייט של נתונים בלי שתצטרכו מנהל מסד נתונים או תשתית לניהול. ב-BigQuery נעשה שימוש ב-SQL מוכר ובמודל תמחור שבו משלמים רק על מה שמשתמשים. ‫BigQuery מאפשר לכם להתמקד בניתוח נתונים כדי להפיק תובנות משמעותיות.

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

מה תלמדו

  • איך משתמשים ב-BigQuery
  • איך כותבים שאילתה כדי לקבל תובנות לגבי מערך נתונים גדול

מה תצטרכו

  • פרויקט ב-Google Cloud
  • דפדפן, כמו Chrome או Firefox

2. להגדרה

הפעלת BigQuery

אם עדיין אין לכם חשבון Google (Gmail או Google Apps), אתם צריכים ליצור חשבון.

  • נכנסים למסוף Google Cloud Platform‏ ( console.cloud.google.com) ועוברים אל BigQuery. אפשר גם לפתוח את ממשק האינטרנט של BigQuery ישירות על ידי הזנת כתובת ה-URL הבאה בדפדפן.
https://console.cloud.google.com/bigquery
  • מאשרים את התנאים וההגבלות.
  • כדי להשתמש ב-BigQuery, צריך ליצור פרויקט. פועלים לפי ההנחיות ליצירת פרויקט חדש.

בוחרים שם לפרויקט ורושמים את מזהה הפרויקט. 5dHf3myqCTd3rm-fowZ_aU3An-T_NTgNnIZtQILio27us0xB3StjnSNnQraAnllEQCH4N2nMwLU1mnELwbNN85tbwNC_DbIdbxU8ufzJYW1MWpYu0hnbSrAajpAaRNs8UBeWFu68Aw

מזהה הפרויקט הוא שם ייחודי בכל הפרויקטים ב-Google Cloud. בהמשך ה-codelab הזה נתייחס אליו כאל PROJECT_ID.

ב-codelab הזה נעשה שימוש במשאבי BigQuery במסגרת המגבלות של ארגז החול של BigQuery. לא נדרש חשבון לחיוב. אם רוצים להסיר את המגבלות של ארגז החול בשלב מאוחר יותר, אפשר להירשם לתקופת הניסיון בחינם של Google Cloud Platform ולהוסיף חשבון לחיוב.

3. תצוגה מקדימה של נתונים מ-GitHub

פותחים את מערך הנתונים של GitHub בממשק האינטרנט של BigQuery.

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

תוכלו לראות תצוגה מקדימה של הנתונים.

ed0b9fce5eab1c6b.png

4. שאילתת נתונים מ-GitHub

פותחים את עורך השאילתות.

759423d320075d96.png

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

fb66b7e9c6e838c.png

לוחצים על הלחצן הפעלה.

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

3ce1a59763d0dab5.png

למרות שהטבלה sample_commits היא בגודל 2.49GB, השאילתה עיבדה רק 35.8MB. מערכת BigQuery מעבדת רק את הבייטים מהעמודות שבהן נעשה שימוש בשאילתה, ולכן כמות הנתונים הכוללת שעוברת עיבוד יכולה להיות קטנה משמעותית מגודל הטבלה. בעזרת clustering וחלוקה למחיצות (partitioning) אפשר לצמצם עוד יותר את כמות הנתונים שמעובדים.

5. נתונים ציבוריים נוספים

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

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

6. מעולה!

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

מה כיסיתם

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

מידע נוסף