בדף הזה מוסבר איך לבצע טרנספורמציות ב-BigQuery במקום ב-Spark ב-Cloud Data Fusion.
מידע נוסף מופיע במאמר סקירה כללית על העברת טרנספורמציות למטה.
לפני שמתחילים
התכונה Transformation Pushdown זמינה בגרסה 6.5.0 ואילך. אם הצינור שלכם פועל בסביבה קודמת, אתם יכולים לשדרג את המופע לגרסה העדכנית ביותר.
הפעלת העברת טרנספורמציה (Transformation Pushdown) בצינור עיבוד הנתונים
המסוף
כדי להפעיל את התכונה Transformation Pushdown בצינור עיבוד נתונים שנפרס, מבצעים את הפעולות הבאות:
עוברים למופע:
במסוף Google Cloud , נכנסים לדף Cloud Data Fusion.
כדי לפתוח את המכונה ב-Cloud Data Fusion Studio, לוחצים על Instances (מכונות) ואז על View instance (הצגת מכונה).
לוחצים על תפריט > רשימה.
תיפתח הכרטיסייה של צינור העברת הנתונים שנפרס.
לוחצים על צינור עיבוד הנתונים הרצוי כדי לפתוח אותו ב-Pipeline Studio.
לוחצים על הגדרה > העברת טרנספורמציה.

לוחצים על הפעלת העברת שינויים.
בשדה Dataset (מערך נתונים), מזינים שם של מערך נתונים ב-BigQuery.
אופציונלי: כדי להשתמש במאקרו, לוחצים על M. מידע נוסף זמין במאמר בנושא מערכי נתונים.
אופציונלי: מגדירים את האפשרויות לפי הצורך.
לוחצים על Save.
הגדרות אופציונליות
.| מאפיין (property) | תמיכה בפקודות מאקרו | גרסאות נתמכות של Cloud Data Fusion | תיאור |
|---|---|---|---|
| שימוש בחיבור | לא | גרסה 6.7.0 ואילך | האם להשתמש בחיבור קיים. |
| חיבור | כן | גרסה 6.7.0 ואילך | השם של החיבור. החיבור הזה מספק מידע על הפרויקט ועל חשבון השירות. אופציונלי: אפשר להשתמש בפונקציית המאקרו ${conn(connection_name)}. |
| מזהה הפרויקט של מערך הנתונים | כן | 6.5.0 | אם מערך הנתונים נמצא בפרויקט אחר שבו מופעלת משימת BigQuery, מזינים את מזהה הפרויקט של מערך הנתונים. אם לא מציינים ערך, ברירת המחדל היא מזהה הפרויקט שבו הרצתם את העבודה. |
| מזהה פרויקט | כן | 6.5.0 | מזהה הפרויקט Google Cloud . |
| סוג חשבון השירות | כן | 6.5.0 | בוחרים אחת מהאפשרויות הבאות:
|
| נתיב קובץ של חשבון שירות | כן | 6.5.0 | הנתיב במערכת הקבצים המקומית למפתח של חשבון השירות שמשמש לאישור. הערך שמוגדר הוא auto-detect כשמפעילים את הפקודה באשכול Managed Service for Apache Spark. כשמריצים את הפקודה באשכולות אחרים,
הקובץ צריך להיות בכל צומת באשכול. ערך ברירת המחדל הוא auto-detect. |
| קובץ JSON של חשבון שירות | כן | 6.5.0 | התוכן של קובץ ה-JSON של חשבון השירות. |
| שם זמני של קטגוריה | כן | 6.5.0 | קטגוריה של Cloud Storage שבה מאוחסנים הנתונים הזמניים. אם הוא לא קיים, הוא נוצר באופן אוטומטי, אבל הוא לא נמחק באופן אוטומטי. הנתונים ב-Cloud Storage נמחקים אחרי שהם נטענים ל-BigQuery. אם לא מציינים ערך, נוצרת קטגוריה ייחודית שנמחקת אחרי שהפעלת צינור העיבוד מסתיימת. לחשבון השירות צריכה להיות הרשאה ליצור מאגרי מידע בפרויקט שהוגדר. |
| מיקום | כן | 6.5.0 | המיקום שבו נוצר מערך הנתונים ב-BigQuery.
המערכת מתעלמת מהערך הזה אם מערך הנתונים או מאגר זמני כבר קיימים. ברירת המחדל היא US במספר אזורים. |
| שם מפתח ההצפנה | כן | 6.5.1/0.18.1 | מפתח ההצפנה בניהול הלקוח (CMEK) שמצפין את הנתונים שנכתבים לכל דלי, מערך נתונים או טבלה שנוצרו על ידי הפלאגין. אם המאגר, מערך הנתונים או הטבלה כבר קיימים, המערכת מתעלמת מהערך הזה. |
| שמירת טבלאות BigQuery אחרי השלמת ההעברה | כן | 6.5.0 | האם לשמור את כל הטבלאות הזמניות ב-BigQuery שנוצרו במהלך הפעלת צינור הנתונים למטרות ניפוי באגים ואימות. ברירת המחדל היא לא. |
| משך החיים של טבלה זמנית (בשעות) | כן | 6.5.0 | מגדירים את משך החיים (TTL) של טבלאות זמניות ב-BigQuery, ביחידות של שעות. האפשרות הזו שימושית כגיבוי למקרה שהצינור מבוטל ותהליך הניקוי מופסק (לדוגמה, אם אשכול ההפעלה מושבת באופן פתאומי). הגדרת הערך הזה ל-0 משביתה את ה-TTL של הטבלה. ברירת המחדל היא 72 (3 ימים). |
| עדיפות המשרה | כן | 6.5.0 | העדיפות שמשמשת להרצת משימות BigQuery. בוחרים באחת מהאפשרויות הבאות:
|
| שלבים להעברת נתונים בכוח | כן | 6.7.0 | שלבים נתמכים שתמיד מבוצעים ב-BigQuery. כל שם של שלב צריך להיות בשורה נפרדת. |
| שלבים לדילוג על העברת נתונים | כן | 6.7.0 | שלבים נתמכים שלא יופעלו אף פעם ב-BigQuery. כל שם של שלב צריך להיות בשורה נפרדת. |
| שימוש ב-BigQuery Storage Read API | כן | 6.7.0 | האם להשתמש ב-BigQuery Storage Read API כשמחלצים רשומות מ-BigQuery במהלך הפעלת צינור הנתונים. האפשרות הזו יכולה לשפר את הביצועים של Transformation Pushdown, אבל היא כרוכה בעלויות נוספות. כדי לעשות זאת, צריך להתקין את Scala 2.12 בסביבת ההפעלה. |
מעקב אחר שינויים בביצועים ביומנים
יומני זמן הריצה של צינורות הנתונים כוללים הודעות שמציגות את שאילתות ה-SQL שמופעלות ב-BigQuery. אתם יכולים לעקוב אחרי השלבים בצינור שמועברים ל-BigQuery.
בדוגמה הבאה מוצגות רשומות היומן כשמתחילה הרצה של צינור עיבוד נתונים. היומנים מציינים שפעולות JOIN בצינור הנתונים נדחפו ל-BigQuery לביצוע:
INFO [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'Users' can be executed on BigQuery: true
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserProfile'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserDetails'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'Users'
INFO [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'UserPurchases' can be executed on BigQuery: true
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'Purchases'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'UserPurchases'
INFO [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'MostPopularNames' can be executed on BigQuery: true
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'FirstNameCounts'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'MostPopularNames'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@193] - Starting pull for dataset 'MostPopularNames'
בדוגמה הבאה מוצגים שמות הטבלאות שיוקצו לכל אחד ממערכי הנתונים שמשתתפים בהעברת הביצוע:
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset Purchases stored in table <TABLE_ID>
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserDetails stored in table <TABLE_ID>
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset FirstNameCounts stored in table <TABLE_ID>
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserProfile stored in table <TABLE_ID>
במהלך ההרצה, ביומנים מוצגת השלמה של שלבי הדחיפה, ובסופו של דבר מוצגת ההרצה של פעולות JOIN. לדוגמה:
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserProfile'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserDetails'
DEBUG [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@235] - Executing join operation for dataset Users
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@118] - Creating table `<TABLE_ID>` using job: <JOB_ID> with SQL statement: SELECT `UserDetails`.id AS `id` , `UserDetails`.first_name AS `first_name` , `UserDetails`.last_name AS `last_name` , `UserDetails`.email AS `email` , `UserProfile`.phone AS `phone` , `UserProfile`.profession AS `profession` , `UserProfile`.age AS `age` , `UserProfile`.address AS `address` , `UserProfile`.score AS `score` FROM `your_project.your_dataset.<DATASET_ID>` AS `UserProfile` LEFT JOIN `your_project.your_dataset.<DATASET_ID>` AS `UserDetails` ON `UserProfile`.id = `UserDetails`.id
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@151] - Created BigQuery table `<TABLE_ID>
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@245] - Executed join operation for dataset Users
כשכל השלבים מסתיימים, מוצגת הודעה שהפעולה Pull הושלמה. המשמעות היא שתהליך הייצוא ל-BigQuery הופעל, והרשומות יתחילו להיקרא לצינור אחרי שתתחיל משימת הייצוא הזו. לדוגמה:
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@196] - Completed pull for dataset 'MostPopularNames'
אם יש שגיאות בהרצת צינור העיבוד, הן מתוארות ביומנים.
כדי לראות פרטים על ההפעלה של פעולות BigQuery JOIN, כמו ניצול משאבים, זמן הפעלה וסיבות לשגיאות, אפשר להשתמש במזהה המשימה שמופיע ביומני המשימות.
בדיקת מדדי הפייפליין
מידע נוסף על המדדים ש-Cloud Data Fusion מספק לגבי החלק בצינור שמופעל ב-BigQuery זמין במאמר מדדים של צינורות להעברת נתונים ב-BigQuery.
המאמרים הבאים
- מידע נוסף על Transformation Pushdown ב-Cloud Data Fusion