1. מבוא
תארו לעצמכם שאתם יכולים להכין את הנתונים לניתוח בצורה מהירה ויעילה יותר בלי להיות מומחים בתכנות. עם BigQuery Data Preparation, זה אפשרי. התכונה המתקדמת הזו מפשטת את תהליך הטמעת הנתונים, הטרנספורמציה והניקוי שלהם, ומאפשרת לכל מי שעוסק בנתונים בארגון להכין את הנתונים.
רוצים לגלות את הסודות שחבויים בנתוני המוצרים שלכם?
דרישות מוקדמות
- הבנה בסיסית של Google Cloud Console
- הבנה בסיסית של SQL
מה תלמדו
- איך אפשר להשתמש בהכנת נתונים ב-BigQuery כדי לנקות את הנתונים הגולמיים ולהפוך אותם לבינה עסקית שניתן לפעול לפיה, באמצעות דוגמה ריאלית מתעשיית האופנה והיופי.
- איך מריצים את הכנת הנתונים ומגדירים מתי היא תתבצע עבור הנתונים הנקיים
מה תצטרכו
- חשבון Google Cloud ופרויקט Google Cloud
- דפדפן אינטרנט כמו Chrome
2. הגדרה בסיסית ודרישות
הגדרת סביבה בקצב אישי
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו אחרי שהוא מוגדר. מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר לאורך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. מידע נוסף על שלושת הערכים האלה מופיע במאמרי העזרה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
3. לפני שמתחילים
הפעלת ה-API
כדי להשתמש ב-Gemini ב-BigQuery, צריך להפעיל את Gemini for Google Cloud API. בדרך כלל אדמין שירות או בעלים של פרויקט עם הרשאת IAM serviceusage.services.enable מבצעים את השלב הזה.
- כדי להפעיל את Gemini for Google Cloud API, נכנסים לדף Gemini for Google Cloud ב-Google Cloud Marketplace. כניסה לדף Gemini for Google Cloud
- בוחרים את הפרויקט מרשימת הפרויקטים.
- לוחצים על הפעלה. הדף יתעדכן ויופיע הסטטוס Enabled. Gemini ב-BigQuery זמין עכשיו בפרויקט Google Cloud שנבחר לכל המשתמשים שיש להם את הרשאות ה-IAM הנדרשות.
הגדרת תפקידים והרשאות לפיתוח של פעולות הכנת נתונים
- בקטע IAM and Admin, בוחרים באפשרות IAM.

- בוחרים את המשתמש ולוחצים על סמל העיפרון כדי לערוך את העיקרון.

כדי להשתמש ב-BigQuery Data Preparation, תצטרכו את התפקידים וההרשאות הבאים:
- עריכה של נתוני BigQuery (roles/bigquery.dataEditor)
- Service Usage Consumer (roles/serviceusage.serviceUsageConsumer)
4. חיפוש של כרטיס המוצר 'הדגמה של הכנת נתונים ב-bq' ב-BigQuery Analytics Hub והרשמה אליו
במדריך הזה נשתמש במערך הנתונים bq data preparation demo. זהו מערך נתונים מקושר ב-BigQuery Analytics Hub, שממנו נבצע קריאה.
הכלי להכנת נתונים אף פעם לא כותב בחזרה למקור, ולכן נבקש מכם להגדיר טבלת יעד לכתיבה. הטבלה שנעבוד איתה בתרגיל הזה כוללת רק 1,000 שורות כדי לשמור על עלויות מינימליות, אבל הכנת הנתונים מתבצעת ב-BigQuery ותתבצע בהתאם.
כדי למצוא את מערך הנתונים המקושר ולהירשם אליו:
- כדי לגשת אל Analytics Hub: במסוף Google Cloud, עוברים אל BigQuery.
- בתפריט הניווט של BigQuery, בקטע 'ניהול', בוחרים באפשרות 'מרכז ניתוח הנתונים'.

- מחפשים את כרטיס המוצר: בממשק המשתמש של Analytics Hub, לוחצים על חיפוש כרטיסי מוצר.
- מקלידים
bq data preparation demoבסרגל החיפוש ומקישים על Enter.

- להירשם למינוי של כרטיס המוצר: בוחרים את כרטיס המוצר
bq data preparation demoמתוצאות החיפוש. - בדף פרטי כרטיס המוצר, לוחצים על הלחצן הרשמה.
- בודקים את תיבות הדו-שיח לאישור ומעדכנים את הפרויקט או את מערך הנתונים לפי הצורך. ברירות המחדל צריכות להיות נכונות.

- גישה למערך הנתונים ב-BigQuery: אחרי ההרשמה, מערכי הנתונים בפירוט המידע יקושרו לפרויקט שלכם ב-BigQuery.
חוזרים אל BigQuery Studio.
5. עיון בנתונים והפעלת תהליך להכנת הנתונים
- איתור מערך הנתונים והטבלה: בחלונית Explorer, בוחרים את הפרויקט ואז מאתרים את מערך הנתונים שנכלל ברשימה
bq data preparation demo. בוחרים את הטבלהstg_product. - פתיחה בהכנת נתונים: לוחצים על שלוש הנקודות במאונך לצד שם הטבלה ובוחרים באפשרות
Open in Data Preparation.
הטבלה תיפתח בממשק של הכנת הנתונים, ותוכלו להתחיל לשנות את הנתונים.

כפי שאפשר לראות בתצוגה המקדימה של הנתונים שבהמשך, יש לנו כמה אתגרים שקשורים לנתונים שאנחנו מתכוונים לטפל בהם, כולל:
- בעמודת המחיר מופיעים גם הסכום וגם המטבע, ולכן קשה לבצע ניתוח.
- בעמודת המוצר מוצגים גם שם המוצר וגם הקטגוריה שלו (מופרדים באמצעות קו אנכי |).

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

6. טיפול בעמודת המחיר
נתחיל עם העמודה מחיר. כמו שראינו, הוא מכיל גם את המטבע וגם את הסכום. המטרה שלנו היא להפריד את הנתונים האלה לשתי עמודות נפרדות:מטבע וסכום.
Gemini זיהה כמה המלצות לעמודה 'מחיר'.
- מחפשים המלצה שדומה להמלצה הבאה:
תיאור: "הביטוי הזה מסיר את התחילית 'USD ' מהשדה שצוין"
REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
- בחירת תצוגה מקדימה

- בוחרים באפשרות 'אישור'.
עכשיו, בטור Price, נמיר את סוג הנתונים מ-STRING ל-NUMERIC.
- מחפשים המלצה שדומה להמלצה הבאה:
תיאור: "המרת העמודה 'מחיר' מסוג מחרוזת לסוג float64"
SAFE_CAST(Price AS float64)
- לוחצים על אישור.
עכשיו אמורים להופיע שלושה שלבים ברשימת השלבים.

7. איך עובדים עם עמודת המוצרים
עמודת המוצר מכילה גם את שם המוצר וגם את הקטגוריה שלו, כשהם מופרדים באמצעות קו אנכי (|).
יכולנו להשתמש שוב בשפה טבעית, אבל בואו נבדוק עוד אחת מהתכונות המתקדמות של Gemini.
תיקון שם המוצר
- בוחרים את החלק של הקטגוריה בערך של המוצר, כולל התו
|, ומוחקים אותו.

Gemini יזהה את הדפוס הזה בצורה חכמה ויציע טרנספורמציה להחלה על העמודה כולה.
- בוחרים באפשרות 'עריכה'.

ההמלצה של Gemini מדויקת: הוא מסיר את כל מה שאחרי התו'|', וכך מבודד את שם המוצר.
אבל הפעם אנחנו לא רוצים להחליף את הנתונים המקוריים.
- בתפריט הנפתח של עמודת היעד, בוחרים באפשרות 'יצירת עמודה חדשה'.
- מגדירים את השם ל-ProductName.

- צופים בתצוגה מקדימה של השינויים כדי לוודא שהכול נראה טוב.
- מחילים את הטרנספורמציה.
שליפת קטגוריית המוצרים
אנחנו נשתמש בשפה טבעית כדי להנחות את Gemini לחלץ את המילה שאחרי התו (|) בעמודה Product. הערך שחולץ יחליף את הערך שמופיע בעמודה הקיימת שנקראת 'מוצר'.
- לוחצים על
Add Stepכדי להוסיף שלב חדש של טרנספורמציה.

- בתפריט הנפתח, בוחרים באפשרות
Transformation. - בשדה ההנחיה בשפה טבעית, מזינים extract the word after the pipe (|) in the Product column (חילוץ המילה אחרי התו | בעמודה Product) ואז לוחצים על מקש Enter כדי ליצור את ה-SQL.

- משאירים את עמודת היעד כ-'מוצר'.
- לוחצים על 'אישור'.
הטרנספורמציה אמורה לתת את התוצאות הבאות.

8. איחוד כדי להעשיר את הנתונים
לעתים קרובות, כדאי להעשיר את הנתונים במידע ממקורות אחרים. בדוגמה שלנו, נצרף את נתוני המוצרים שלנו עם מאפייני מוצר מורחבים, stg_extended_product, מטבלה של צד שלישי. הטבלה הזו כוללת פרטים כמו המותג ותאריך ההשקה.
- לוחצים על
Add Step. - בחירת
Join - עוברים לטבלה
stg_extended_product.

Gemini ב-BigQuery בחר עבורנו באופן אוטומטי את מפתח הצירוף productid וציין את הצדדים הימני והשמאלי, כי שם המפתח זהה.
הערה: צריך לוודא שבשדה התיאור מופיע הכיתוב 'הצטרפות באמצעות מזהה מוצר'. אם הוא כולל מפתחות איחוד נוספים, מחליפים את הטקסט בשדה התיאור בטקסט 'Join by productid' (איחוד לפי מזהה מוצר) ולוחצים על לחצן היצירה בשדה התיאור כדי ליצור מחדש את ביטוי האיחוד עם התנאי הבא L.
productid
= R.
productid. 
- אפשר גם ללחוץ על 'תצוגה מקדימה' כדי לראות תצוגה מקדימה של התוצאות.
- לוחצים על
Apply.
ניקוי המאפיינים המורחבים
ההצטרפות בוצעה בהצלחה, אבל צריך לנקות את הנתונים של המאפיינים המורחבים. בעמודה LaunchDate יש פורמטים לא עקביים של תאריכים, ובעמודה Brand חסרים ערכים.
נתחיל עם העמודה LaunchDate.

לפני שיוצרים טרנספורמציות, כדאי לבדוק את ההמלצות של Gemini.
- לוחצים על שם העמודה
LaunchDate. אמורות להופיע המלצות דומות לאלה שבתמונה שלמטה.

- אם אתם רואים המלצה עם ה-SQL הבא, מיישמים את ההמלצה ומדלגים על השלבים הבאים.
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
- אם לא מופיעה המלצה שתואמת ל-SQL שלמעלה, לוחצים על
Add Step. - בוחרים באפשרות
Transformation. - בשדה SQL, מזינים את הטקסט הבא:
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
- מגדירים את
Target ColumnsלערךLaunchDate. - לוחצים על
Apply.
עכשיו העמודה LaunchDate כוללת תאריך בפורמט עקבי.

9. הוספת טבלת יעד
מערך הנתונים שלנו נקי ומוכן לטעינה לטבלת מאפיינים במחסן הנתונים.
- לוחצים על
ADD STEP. - בוחרים באפשרות
Destination. - ממלאים את הפרמטרים הנדרשים: מערך נתונים:
bq_data_preparation_demoטבלה:DimProduct - לוחצים על
Save.

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

10. בונוס א': טיפול בעמודה 'יצרן' ויצירת טבלת שגיאות
זיהינו גם ערכים ריקים בעמודה Manufacturer. לגבי הרשומות האלה, אנחנו רוצים להטמיע בדיקה של איכות הנתונים ולהעביר אותן לטבלת שגיאות לבדיקה נוספת.
יצירת טבלת שגיאות
- לוחצים על הלחצן
Moreלצד השםstg_product data preparation. - בקטע
Setting, בוחרים באפשרותError Table. - מסמנים את התיבה
Enable error tableומגדירים את ההגדרות באופן הבא:
- מערך נתונים: בוחרים באפשרות
bq_data_preparation_demo - טבלה: מזינים
err_dataprep - בקטע
Define duration for keeping errors, בוחרים באפשרות30 days (default).
- לוחצים על
Save.

הגדרת אימות בעמודה 'יצרן'
- בוחרים את העמודה 'יצרן'.
- סביר להניח ש-Gemini זיהה טרנספורמציה רלוונטית. מחפשים את ההמלצה שמשאירה רק שורות שבהן השדה 'יצרן' לא ריק. הוא יכלול SQL דומה לזה:
Manufacturer IS NOT NULL
2.לוחצים על הלחצן 'עריכה' בהמלצה כדי לבדוק אותה.

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

ניקוי העמודה המיותרת ProductID_1
עכשיו אפשר למחוק את העמודה ProductID_1, שהיא כפילות של ProductID מהטבלה המצורפת.
- עוברים לכרטיסייה
Schema. - לוחצים על סמל 3 הנקודות לצד העמודה
ProductID_1. - לוחצים על
Drop.
עכשיו אפשר להריץ את משימת הכנת הנתונים ולאמת את כל צינור עיבוד הנתונים. אחרי שיהיו לנו תוצאות מספקות, נוכל לתזמן את ההרצה של העבודה באופן אוטומטי.
- לפני שיוצאים מתצוגת ההכנה של הנתונים, חשוב לשמור את ההכנות. לצד הכותרת
stg_product data preparation, אמור להופיע לחצןSave. לוחצים על הלחצן כדי לשמור.
11. ניקוי הסביבה
- מחיקת
stg_product data preparation - מחיקת מערך הנתונים
bq data preparation demo
12. מזל טוב
כל הכבוד, סיימתם את ה-Codelab.
מה נכלל
- הגדרה של הכנת נתונים
- פתיחת טבלאות וניווט בהכנת הנתונים
- פיצול עמודות עם נתונים מספריים ותיאור יחידה
- איך יוצרים פורמטים סטנדרטיים של תאריכים
- הפעלת תהליכים להכנת נתונים