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

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

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

3ce1a59763d0dab5.png

למרות שהטבלה sample_commits היא בגודל 2.49GB, השאילתה עברה עיבוד רק ב-35.8MB. מערכת BigQuery מעבדת רק את הבייטים מהעמודות שבהן נעשה שימוש בשאילתה, כך שהסכום הכולל של הנתונים שיעובד יכול להיות קטן משמעותית מגודל הטבלה. באמצעות אשכולות וחלוקה למחיצות (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 Archived של GitHub כדי לנתח אירועים ציבוריים ב-GitHub, כמו בקשות משיכה, כוכבי מאגרים ובעיות פתוחות. אפשר להשתמש במערך הנתונים PyPI של Python Software Foundation כדי לנתח בקשות להורדה של חבילות Python.

6. מעולה!

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

מה נכלל?

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

מידע נוסף