ביצוע טרנספורמציות ב-BigQuery

העברת הטרנספורמציה ב-Cloud Data Fusion מאפשרת להריץ טרנספורמציות של צינורות עיבוד נתונים ב-BigQuery במקום ב-Spark. הפעלת טרנספורמציות ישירות ב-BigQuery עוזרת לשפר את מהירות הביצוע של צינור עיבוד הנתונים ולייעל את עלויות משאבי המחשוב.

מידע נוסף זמין בסקירה הכללית על Transformation Pushdown.

לפני שמתחילים

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

הפעלת Transformation Pushdown בצינור עיבוד הנתונים

המסוף

כדי להפעיל את Transformation Pushdown בצינור עיבוד נתונים שנפרס, מבצעים את הפעולות הבאות:

  1. עוברים למכונה:

    1. במסוף Google Cloud , נכנסים לדף Cloud Data Fusion.

    2. כדי לפתוח את המכונה ב-Cloud Data Fusion Studio, לוחצים על Instances (מכונות) ואז על View instance (הצגת מכונה).

      כניסה לדף Instances

  2. לוחצים על תפריט > רשימה.

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

  3. לוחצים על צינור עיבוד הנתונים שנפרס כדי לפתוח אותו ב-Pipeline Studio.

  4. לוחצים על Configure > Transformation Pushdown.

    מפעילים את האפשרות Transformation Pushdown.

  5. לוחצים על Enable Transformation Pushdown.

  6. בשדה Dataset, מזינים שם של מערך נתונים ב-BigQuery.

    אופציונלי: כדי להשתמש בפקודת מאקרו, לוחצים על M. למידע נוסף, ראו מערכי נתונים.

  7. אופציונלי: מגדירים את האפשרויות, אם צריך.

  8. לוחצים על 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 בוחרים באחת מהאפשרויות הבאות:
  • File Path: הנתיב לקובץ של חשבון השירות.
  • ‫JSON: תוכן ה-JSON של חשבון השירות.
ברירת המחדל היא JSON.
נתיב הקובץ של חשבון השירות כן 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 שנוצרו במהלך הרצת הצינור, למטרות ניפוי באגים ואימות. ברירת המחדל היא לא.
‫TTL של טבלה זמנית (בשעות) כן 6.5.0 הגדרת TTL לטבלאות זמניות ב-BigQuery, בשעות. זה שימושי כגיבוי למקרה שהצינור מבוטל ותהליך הניקוי מופסק (לדוגמה, אם אשכול הביצוע נסגר בפתאומיות). אם מגדירים את הערך הזה כ-0, משביתים את ה-TTL של הטבלה. ברירת המחדל היא 72 (3 ימים).
עדיפות המשימה כן 6.5.0 העדיפות שמשמשת להרצת משימות ב-BigQuery. בוחרים אחת מהאפשרויות הבאות:
  1. ‫Batch: משימת אצווה נכנסת לתור ומתחילה ברגע שמשאבים בהמתנה לפעילות זמינים, בדרך כלל תוך כמה דקות. אם המשימה לא מתחילה תוך שלוש שעות, העדיפות שלה משתנה לאינטראקטיבית.
  2. אינטראקטיבי: משימה אינטראקטיבית מופעלת בהקדם האפשרי, ונכללת במגבלת הקצב של יצירת בקשות בו-זמנית ובמגבלת הקצב היומית של יצירת בקשות.
ערך ברירת המחדל הוא Batch.
שלבים לאילוץ דחיפה למטה כן 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'

בדוגמה הבאה מוצגים שמות הטבלאות שיוקצו לכל אחד ממערכי הנתונים שמעורבים בהרצה של ה-pushdown:

  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>

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

DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@196] - Completed pull for dataset 'MostPopularNames'

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

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

בדיקת המדדים של צינור עיבוד הנתונים

למידע נוסף על המדדים ש-Cloud Data Fusion מספק לחלק של צינור עיבוד הנתונים שמופעל ב-BigQuery, קראו את המאמר מדדים של צינור עיבוד נתונים עם דחיפה למסד הנתונים ב-BigQuery.

המאמרים הבאים