1. מבוא
BigQuery הוא מחסן נתונים (data warehouse) חסכוני וללא שרת (serverless), עם יכולת התאמה רחבה. פשוט מעבירים את הנתונים ל-BigQuery ונותנים לנו לעשות את העבודה הקשה, כדי שתוכלו להתמקד במה שחשוב באמת – ניהול העסק. אתם יכולים לשלוט בגישה לפרויקט ולנתונים שלכם בהתאם לצרכים העסקיים שלכם, למשל לתת לאחרים אפשרות להציג את הנתונים או להריץ עליהם שאילתות.
בשיעור ה-Lab הזה תלמדו על האפשרויות לניתוח נתונים ב-BigQuery. תלמדו איך לייבא מערך נתונים מ-bucket של Google Cloud Storage, ותכירו את ממשק המשתמש של BigQuery באמצעות עבודה עם מערך נתונים של בנקאות קמעונאית. בנוסף, במעבדה הזו תלמדו איך לגלות תכונות מרכזיות ב-BigQuery שיכולות להקל על ניתוח הנתונים היומיומי שלכם, כמו ייצוא תוצאות של שאילתות לגיליון אלקטרוני, הצגה והרצה של שאילתות מהיסטוריית השאילתות, הצגת ביצועי השאילתות ויצירת תצוגות טבלה לשימוש של צוותים ומחלקות אחרים.
מה תלמדו
בשיעור ה-Lab הזה תלמדו איך לבצע את המשימות הבאות:
- טעינת נתונים חדשים לתוך BigQuery
- היכרות עם ממשק המשתמש של BigQuery
- הרצת שאילתות ב-BigQuery
- הצגת ביצועי השאילתה
- יצירת תצוגות מפורטות ב-BigQuery
- שיתוף מאובטח של מערכי נתונים עם אחרים
2. מבוא: הבנת ממשק המשתמש של BigQuery
בקטע הזה תלמדו איך לנווט בממשק המשתמש של BigQuery, לראות את מערכי הנתונים הזמינים ולהריץ שאילתה פשוטה.
טעינת ממשק המשתמש של BigQuery
- מקלידים BigQuery בחלק העליון של Google Cloud Platform Console.
- בוחרים באפשרות BigQuery מתוך רשימת האפשרויות. חשוב לבחור באפשרות עם הלוגו של BigQuery, זכוכית המגדלת.
הצגת מערכי נתונים והרצת שאילתות

- בחלונית הימנית בקטע 'משאבים', לוחצים על פרויקט BigQuery.
- לוחצים על
bq_demoכדי לראות את הטבלאות במערך הנתונים. - בתיבת החיפוש, מקלידים 'כרטיס' כדי לראות רשימה של טבלאות ושל מערכי נתונים שכוללים את המילה 'כרטיס' בשם שלהם.
- בוחרים את הטבלה card_transactions מרשימת תוצאות החיפוש.

- לוחצים על הכרטיסייה Details (פרטים) בחלונית
card_transactionsכדי לראות את המטא-נתונים של הטבלה. - לוחצים על הכרטיסייה Preview (תצוגה מקדימה) כדי לראות תצוגה מקדימה של הטבלה.
[נקודת מכירה תחרותית]: שילוב עם Google Data Catalog מאפשר לנהל את המטא-נתונים של BigQuery יחד עם מקורות נתונים אחרים, כמו אגמי נתונים או מקורות נתונים תפעוליים. זו דוגמה אחת שמראה ש-Google Cloud הוא לא רק מחסן נתונים יחסי, אלא פלטפורמה שלמה לניתוח נתונים.
- לוחצים על סמל הזכוכית המגדלת כדי לשלוח שאילתה לטבלה card_transactions. טקסט שנוצר באופן אוטומטי יופיע בעורך השאילתות של BigQuery.
- מזינים את הקוד הבא כדי להציג מוכרים שונים מהטבלה Card_Transactions
SELECT distinct (merchant) FROM bq_demo.card_transactions LIMIT 1000
- לוחצים על הלחצן Run (הפעלה) כדי להריץ את השאילתה.

3. יצירה של קבוצות נתונים ושיתוף של תצוגות
שיתוף נתונים וניהול הרשאות הם קריטיים, ואפשר לבצע אותם באופן אינטואיטיבי בממשק המשתמש של BQ. בקטע הזה נסביר איך ליצור מערך נתונים חדש, לאכלס אותו בתצוגה מפורטת ולשתף את מערך הנתונים.
הצגת היסטוריית השאילתות
- לוחצים על Query History (היסטוריית שאילתות) בחלונית הימנית של GCP Console.
- לוחצים על סמל הרענון בחלונית Query History (היסטוריית השאילתות).
- כדי לראות את תוצאות השאילתה, לוחצים על חץ ההורדה או על סמל התמונה בקצה השמאלי של השאילתה.

יצירת מערך נתונים חדש
- בוחרים באפשרות [שם הפרויקט] בחלונית המשאבים בממשק המשתמש של BigQuery.
- בוחרים באפשרות 'יצירת קבוצת נתונים חדשה' בחלונית פרטי הפרויקט.
- בשדה Dataset Id (מזהה מערך הנתונים):
bq_demo_shared
- משאירים את כל שאר השדות בערכי ברירת המחדל
- לוחצים על 'יצירת קבוצת נתונים'.

יצירת תצוגות
[Competitive Talking Point]: BigQuery תואם באופן מלא ל-ANSI SQL ותומך בצירופים פשוטים ומורכבים של כמה טבלאות ובפונקציות ניתוח עשירות. השקנו באופן רציף תמיכה משופרת בסוגי נתונים ובפונקציות נפוצות של SQL שמשמשים במחסני נתונים מסורתיים, כדי להקל על תהליך ההעברה.
- בחלק העליון של החלונית Query Editor, לוחצים על Compose New Query (יצירת שאילתה חדשה).
- מזינים את הקוד הבא בעורך השאילתות
WITH revenue_by_month AS (
SELECT
card.type AS card_type,
FORMAT_DATE('%Y-%m', trans_date) as revenue_date,
SUM(amount) as revenue
FROM bq_demo.card_transactions
JOIN bq_demo.card ON card_transactions.cc_number = card.card_number
WHERE trans_date DATE_ADD(CURRENT_DATE, INTERVAL -1 YEAR)
GROUP BY card_type, revenue_date
)
SELECT
card_type,
revenue_date,
revenue as monthly_rev,
revenue - LAG(revenue) OVER (ORDER BY card_type, revenue_date ASC) as rev_change
FROM revenue_by_month
ORDER BY card_type, revenue_date ASC;
- לוחצים על 'שמירת התצוגה'.
- בוחרים את הפרויקט הנוכחי בשדה Project Name (שם הפרויקט)
- בוחרים את מערך הנתונים החדש שנוצר:
bq_demo_shared
- בשדה 'שם הטבלה':
rev_change_by_card_type
- לוחצים על 'שמירה'.

שיתוף תצוגות וקבוצות נתונים
- בחלונית המשאבים הימנית בממשק המשתמש של BigQuery, בוחרים במערך הנתונים bq_demo_shared.
- לוחצים על 'שיתוף מערך נתונים' בחלונית המידע של מערך הנתונים.
- מזינים כתובת אימייל
- בתפריט הנפתח Role (תפקיד), בוחרים באפשרות BigQuery Data Viewer (בעל הרשאת צפייה בנתונים ב-BigQuery).
- לוחצים על 'הוספה'.
- לוחצים על סיום.

ניתוח נתונים ב-Sheets
[Competitive Talking Point]: יתרון נוסף של BigQuery בהשוואה למתחרים הוא BI Engine. אפשר להשתמש ב-BI Engine כדי ששאילתות סיכום מסוג BI יחזירו תוצאות תוך פחות משנייה, באמצעות מנוע מטמון בזיכרון. התכונה הזו נתמכת כרגע על ידי Google Data Studio, אבל בקרוב היא תהיה זמינה כדי להאיץ את כל השאילתות ב-BigQuery.
למשל:
Snowflake מסתמכת על כלי BI של צד שלישי ללוחות בקרה ולהמחשת נתונים, בעוד ש-GCP מציעה מגוון כלי BI משולבים, כולל גיליונות מקושרים, Data Studio ו-Looker.
- בוחרים את התצוגה 'rev_change_by_card_type' מחלונית המשאבים הימנית בממשק המשתמש של BigQuery.
- לוחצים על סמל הזכוכית המגדלת כדי להריץ שאילתה על התצוגה

- סוג:
SELECT *
FROM bq_demo_shared.rev_change_by_card_type
- לוחצים על 'הפעלה'.
- לוחצים על סמל הייצוא בחלונית התוצאות.
- בוחרים באפשרות 'ניתוח נתונים באמצעות Sheets'.

- לוחצים על 'התחלת הניתוח'.
- בוחרים באפשרות 'טבלת ציר'.
- בוחרים באפשרות 'גיליון חדש'.
- לחץ על "צור"
- מוסיפים את העמודה revenue_date (תאריך ההכנסה) לקטע Row (שורה) בעורך טבלת הצירים שנמצא בצד שמאל של חלון Sheets.
- מוסיפים את העמודה card_type (סוג כרטיס) לקטע Column (עמודה) בעורך טבלת הצירים.
- מוסיפים את העמודה monthly_rev (הכנסה חודשית) לקטע Column (עמודה) בעורך טבלת הצירים.
- לחץ על 'החל'

- עוברים לחלק העליון של ממשק המשתמש של Sheets ובוחרים באפשרות 'הוספה' 'תרשים'.
4. הגדרה: שילוב נתונים
בקטע הזה תלמדו איך ליצור טבלה חדשה ולבצע פעולת JOIN באחד ממערכי הנתונים הציבוריים הרבים שזמינים ב-Google Cloud.
[Competitive Talking Point]:
מערכי נתונים משותפים נתמכים ב-BigQuery כבר שנים. לקוחות בכל פרויקט יכולים להריץ שאילתות במערכי נתונים ציבוריים ובמערכי נתונים בפרויקטים אחרים ששותפו איתם.
BigQuery יכול לתמוך באגמי נתונים ב-GCS באמצעות שימוש בטבלאות חיצוניות. בנוסף לטעינה בכמות גדולה, BigQuery תומך ביכולת להזרים נתונים למסד הנתונים בקצב של מאות מגה-בייט לשנייה ומעלה. אין תמיכה ב-Snowflake בסטרימינג של נתונים.
ייבוא נתונים לטבלה חדשה
- בחלונית המשאבים, בוחרים את מערך הנתונים bq_demo.
- בחלונית המידע של מערך הנתונים, לוחצים על 'יצירת טבלה'.
- בוחרים באפשרות Google Cloud Storage בשדה Source (מקור).
- בתיבת הטקסט של נתיב הקובץ:
gs://retail-banking-looker/district
- בוחרים ב-CSV בתור פורמט הקובץ
- מזינים 'מחוז' בתור שם הטבלה
- מסמנים את התיבה לצד 'זיהוי סכימה אוטומטי'.
- לוחצים על 'יצירת טבלה'.
שאילתות במערך נתונים ציבורי
- מזינים את השאילתה הבאה בעורך השאילתות:
SELECT
CAST(geo_id as STRING) AS zip_code,
total_pop,
median_age,
households,
income_per_capita,
housing_units,
vacant_housing_units_for_sale,
ROUND(SAFE_DIVIDE(employed_pop, pop_16_over),4) AS rate_employment,
ROUND(SAFE_DIVIDE(bachelors_degree_or_higher_25_64, pop_25_64),4) AS rate_bachelors_degree_or_higher_25_64
FROM
`bigquery-public-data.census_bureau_acs.zip_codes_2017_5yr`;
- לוחצים על 'הפעלה'.
- צפייה בתוצאות

- עכשיו נשלב את הנתונים הגלויים לכולם האלה עם שאילתה אחרת. מזינים את קוד ה-SQL הבא ב-Query Editor:
WITH customer_counts AS (
select regexp_extract(address, "[0-9][0-9][0-9][0-9][0-9]") as zip_code,
count(*) as num_clients
FROM bq_demo.client
GROUP BY zip_code
)
SELECT
CAST(geo_id as STRING) AS zip_code,
total_pop,
median_age,
households,
income_per_capita,
ROUND(SAFE_DIVIDE(employed_pop, pop_16_over),4) AS rate_employment,
num_clients
FROM
`bigquery-public-data.census_bureau_acs.zip_codes_2017_5yr`
JOIN customer_counts on zip_code = geo_id
ORDER BY num_clients DESC
- לוחצים על 'הפעלה'.
- צפייה בתוצאות

5. ניהול קיבולת
עבודה עם משבצות זמן והזמנות
ב-BQ יש כמה מודלים של תמחור שתוכלו להתאים לצרכים שלכם. רוב הלקוחות הגדולים משתמשים בעיקר בתמחור לפי תשלום קבוע כדי לקבל מחיר צפוי עם קיבולת שמורה. כדי להשתמש בקיבולת מעבר לקיבולת הבסיסית, אפשר להשתמש ב-BQ בחריצי זיכרון גמישים. כך אפשר להגדיל את הקיבולת תוך כדי תנועה, ואז לצמצם אותה באופן אוטומטי בלי להשפיע על השאילתות שמופעלות. ל-BQ יש גם מודל של סריקת בייטים, שמאפשר לשלם רק על השאילתות שמריצים.
[נקודת שיחה תחרותית: חלק מהמתחרים עובדים באופן בלעדי על מודל של קיבולת קבועה, שבו הלקוחות צריכים להקצות מחסן נתונים וירטואלי לכל עומס עבודה בארגון שלהם. בנוסף למודל תמחור לפי שאילתה בעלות נמוכה שמאפשר להתחיל בקלות עם BigQuery, אנחנו תומכים במודל תמחור לפי קיבולת בתשלום קבוע, שבו אפשר לשתף קיבולת פנויה בין קבוצה של עומסי עבודה.]
- עוברים לכרטיסייה 'הזמנות'.

- לוחצים על 'קניית משבצות'.

- בוחרים באפשרות 'גמיש' כמשך.
- בוחרים 500 משבצות.
- מאשרים את הרכישה.

- לוחצים על 'הצגת התחייבויות לשימוש במשבצות'.
- לוחצים על 'יצירת הזמנה'.
- המשתמש 'demo' כשם ההזמנה
- בחירת ארצות הברית כמיקום
- מקלידים 500 כדי להוסיף מכונות מזל (כל המכונות הזמינות)
- לוחצים על 'מטלות'.
- בחירת פרויקט נוכחי לפרויקט ארגוני
- בוחרים באפשרות 'הדגמה' בשביל מזהה ההזמנה
- לוחצים על 'יצירה'.