הגדרת אוספים

במאמר הזה נסביר איך לבצע את הפעולות הבאות ב-Dataform:

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

  1. נכנסים לדף Dataform במסוף Google Cloud .

    מעבר אל Dataform

  2. בוחרים מאגר או יוצרים מאגר.

  3. בוחרים או יוצרים סביבת עבודה לפיתוח.

  4. אופציונלי: כדי לשנות את פרויקט ברירת המחדל Google Cloud בהגדרות של הגרסה, צריך לתת לחשבון השירות המותאם אישית גישה לפרויקט שבו אתם מתכננים להשתמש.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לביצוע המשימות שמתוארות במסמך הזה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

כדי לשפר את האבטחה של קביעת פגישות, אפשר לקרוא על הטמעה של הרשאות משופרות לקביעת פגישות.

כדי לעדכן את גרסת ההפצה של הגדרת הפצה במאגר Dataform, צריך להעניק את ההרשאה iam.serviceAccounts.actAs לסוכן השירות של Dataform לכל חשבון שירות מותאם אישית בהגדרות של תהליכי העבודה שמשתמשים בהגדרת ההפצה הזו. ההרשאה הזו זמינה בתפקיד המשתמש של חשבון השירות (roles/iam.serviceAccountUser). מידע נוסף זמין במאמר הקצאת התפקידים הנדרשים ב-IAM.

מבוא למחזור החיים של תהליך העבודה ב-Dataform

בקטע הזה מוסבר על מחזור החיים של תהליך העבודה ב-Dataform ועל דרכים להגדיר קומפילציה והרצה ב-Dataform.

מחזור החיים של תהליך העבודה ב-Dataform מורכב מהשלבים הבאים:

פיתוח
מפתחים תהליך עבודה בסביבת עבודה של Dataform.
אוסף

‫Dataform מהדר את קוד תהליך העבודה בסביבת העבודה ל-SQL בזמן אמת, ויוצר תוצאת הידור של סביבת העבודה שאפשר להריץ ב-BigQuery. ‫Dataform משתמש בהגדרות שמוגדרות בקובץ ההגדרות של תהליך העבודה כדי ליצור את תוצאת הקומפילציה.

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

הרצה

בהפעלת תהליך עבודה,‏ Dataform מריץ את תוצאת הקומפילציה של סביבת העבודה ב-BigQuery.

כדי להתאים את מחזור החיים של תהליך העבודה ב-Dataform לצרכים שלכם, אתם יכולים להגדיר את תוצאת ההידור (compilation) כך שתשפיע על המקום שבו Dataform מריץ את תהליך העבודה ועל האופן שבו הוא מריץ אותו. לאחר מכן, תוכלו להפעיל ידנית או לתזמן הפעלות כדי להשפיע על המועד שבו Dataform יפעיל את זרימת העבודה כולה או את הרכיבים שנבחרו בה.

דרכים להגדיר הידור (compilation) ב-Dataform

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

ב-Dataform יש את האפשרויות הבאות להגדרת תוצאות ההידור:

שינוי הגדרות הקימפול ב-Workspace
אפשר להגדיר שינויים בהידור שיחולו על כל סביבות העבודה במאגר. אתם יכולים להשתמש בהגדרות ברירת מחדל שונות של קומפילציה בסביבת העבודה כדי ליצור סביבות פיתוח מבודדות.
הגדרות מוצר
אפשר ליצור הגדרות של גרסאות כדי להגדיר תבניות ליצירת תוצאות קומפילציה של מאגר Dataform. לאחר מכן תוכלו ליצור הגדרת תהליך עבודה כדי לתזמן הרצות של תוצאות קומפילציה שנוצרו בהגדרת הפצה נבחרת.
שינויים בהגדרות ההידור (compilation) ב-Dataform API
אפשר להעביר בקשות ל-Dataform API במסוף כדי ליצור ולהפעיל תוצאת קומפילציה יחידה עם החלפות של קומפילציה.

הגדרת שינויים מברירת המחדל בהידור של סביבת עבודה

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

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

אפשר להגדיר את השינויים הבאים מברירת המחדל של קומפילציה של סביבת עבודה:

  • פרויקטGoogle Cloud שבו Dataform מריץ את התוכן של סביבת העבודה
  • תחילית של טבלה
  • סיומת סכימה

אתם יכולים להשתמש בהחלפות של קומפילציה של סביבת עבודה כדי ליצור סביבות פיתוח מבודדות. לשם כך, אתם מבודדים את תוצאות הקומפילציה של סביבת העבודה ב-BigQuery באמצעות החלפות דינמיות של קומפילציה. ההגדרות Dynamic table prefix (קידומת דינמית של טבלה) ו-schema suffix compilation overrides (החלפות של הידור סיומת סכימה) מכילות את המשתנה ${workspaceName}. כשמפעילים הרצה בסביבת עבודה, Dataform מחליף את המשתנה ${workspaceName} בשם של סביבת העבודה הנוכחית, וכך יוצר ביטולים של קומפילציה שייחודיים לסביבת העבודה.

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

יצירת הגדרות מוצר

באמצעות הגדרות מוצר, אתם יכולים להגדיר תבניות של הגדרות ליצירת תוצאות קומפילציה של מאגרי מידע.

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

בהגדרת גרסה, אפשר להגדיר את ההגדרות הבאות של הידור:

אפשר ליצור כמה הגדרות של הפצה במאגר Dataform, אחת לכל שלב במחזור החיים של הפיתוח, וכך ליצור תוצאות מבודדות של קומפילציה של המאגר.

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

אפשר גם להפעיל ידנית את הביצוע של תוצאת קומפילציה בהגדרת פריט תוכן נבחר.

הגדרת תוצאת הידור יחידה באמצעות ביטולי הידור ב-Dataform API

אפשר להעביר בקשות Dataform API במסוף כדי להגדיר החלפות של קומפילציה לתוצאה יחידה של קומפילציה.

בבקשה compilationResults.create אפשר ליצור תוצאת הידור (compilation) יחידה של סביבת עבודה ב-Dataform או של קומיט מסוים ב-Git.

באובייקט CodeCompilationConfig של בקשת compilationResults.create, אפשר להגדיר שינויים בהגדרות הקומפילציה של בקשת הקומפילציה.

אפשר להגדיר את ההחלפות הבאות של קומפילציה של Dataform API:

חשוב לזכור ששינויים בהידור (compilation) באמצעות Dataform API חלים על תוצאת הידור אחת ועל ביצוע אחד. אי אפשר להשתמש בהם כדי לתזמן הפעלות של Dataform.

אפשר להריץ תוצאת קומפילציה בבקשה workflowInvocations.create.

דרכים להגדיר את ההרצה של Dataform

ב-Dataform יש את האפשרויות הבאות להגדרת ההרצה:

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

הפעלת ביצוע מיידי ב-Workspace

בסביבת עבודה של Dataform, אתם יכולים להפעיל ידנית את הביצוע המיידי של תהליך עבודה בסביבת העבודה, מחוץ לכל לוח זמנים.

אתם יכולים להריץ באופן ידני את הרכיבים הבאים של תהליך העבודה בסביבת העבודה שלכם:

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

יצירת הגדרות של תהליכי עבודה

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

בהגדרת תהליך עבודה, אפשר להגדיר את הגדרות ההפעלה הבאות:

  • הוחלה הגדרת הפצה של קומפילציה.
  • בחירה של פעולות בתהליך העבודה שיופעלו.
  • התזמון ואזור הזמן של ההרצות.

אפשר לבחור את פעולות תהליך העבודה הבאות להרצה:

  • כל הפעולות
  • הפעולות שנבחרו
  • פעולות עם תגים נבחרים

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

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

תפוגה של משאבים במחזור החיים

תוצאות הידור (compilation) והפעלות של תהליכי עבודה נשמרות ב-Dataform לפרק זמן מסוים.

תפוגה של הפעלות של תהליכי עבודה

הפעלות של תהליכי עבודה פגות אחרי 90 ימים, או כשמוחקים אותן באופן ידני.

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

תוקף התוצאות של ההידור

תוקף תוצאות הקומפילציה תלוי באופן שבו הן נוצרו: בסביבת פיתוח, בהגדרת הפצה או בהפעלת תהליך עבודה.

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

בתצורת הפצה, תוצאת הקומפילציה האחרונה הופכת לתוצאת הקומפילציה הפעילה. תוצאת אוסף חדשה מחליפה את תוצאת האוסף הפעילה הנוכחית. תוצאת ההידור הפעילה נשמרת ב-Dataform עד שהיא מוחלפת בתוצאת הידור חדשה. התוקף של תוצאת קומפילציה שהוחלפה הוא עד 24 שעות.

‫Dataform מסיר תוצאות הידור (compilation) שתוקפן פג מרשימת תוצאות ההידור הקודמות בדף Details של הגדרת פריסה.

תוצאות הקומפילציה שנוצרו על ידי הפעלות של תהליכי עבודה נשמרות ב-Dataform למשך כל משך ההפעלה של תהליך העבודה, עד 24 שעות אחרי שההפעלה של תהליך העבודה מסתיימת או אחרי שהיא נמחקת.

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

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

כשמפתחים קוד של תהליך עבודה בסביבת עבודה של Dataform, מערכת Dataform מבצעת קומפילציה של הקוד בסביבת העבודה בזמן אמת כדי ליצור תוצאת קומפילציה של סביבת העבודה. ‫Dataform משתמש בהגדרות שמוגדרות בקובץ ההגדרות של תהליך העבודה כדי ליצור את תוצאת ההידור של סביבת העבודה. לאחר מכן, כשמפעילים את ההרצה בסביבת עבודה, Dataform מריץ את תוצאת הקומפילציה של סביבת העבודה ב-BigQuery.

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

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

פרויקט

פרויקט Google Cloud שבו Dataform מריץ את תוצאת ההידור של סביבת העבודה, שמוגדר ב-workflow_settings.yaml כ-defaultProject או ב-dataform.json כ-defaultDatabase.

תחילית של טבלה

הקידומת המותאמת אישית שנוספה לכל שמות הטבלאות בכל סביבות העבודה במאגר.

סיומת סכימה

הסיומת המותאמת אישית שמצורפת לסכימה של הטבלאות. מגדירים את הערך defaultDataset ב-workflow_settings.yaml, את הערך defaultSchema ב-dataform.json או את הפרמטר schema בבלוק config של טבלה.

כדי ליצור סביבות פיתוח מבודדות, אפשר לבודד סביבות עבודה באמצעות שינויים ייחודיים בהגדרות הקומפילציה. אפשר לשנות באופן דינמי את קידומת הטבלה ואת החלפות ההידור של סיומת הסכימה באמצעות המשתנה ${workspaceName}.

כשמפעילים ידנית את ההרצה בסביבת עבודה, המשתנה ${workspaceName} מוסיף את שם סביבת העבודה לשינויים בהידור של סביבת העבודה.

כשמגדירים את ${workspaceName} כקידומת של הטבלה, Dataform מוסיף את שם סביבת העבודה לשמות של כל הטבלאות בסביבת העבודה. אחרי ההרצה, ב-BigQuery, אפשר לזהות מאיזה מרחב עבודה הטבלה הגיעה.

כשמגדירים את ${workspaceName} כסיומת של הסכימה, Dataform מוסיף את שם סביבת העבודה ל-defaultSchema, וכך יוצר סכימה מותאמת אישית שמוקדשת לסביבת העבודה. אחרי ההרצה, ב-BigQuery, אפשר לאתר את כל הטבלאות שמופעלות ממרחב עבודה ספציפי בסכימה הייעודית.

דוגמה לשינויים בהידור של סביבת עבודה דינמית

בדוגמה הבאה מוצגות החלפות של קומפילציה דינמית של סביבות עבודה שמוחלות על מאגר שמכיל סביבות עבודה שנקראות על שם מפתחים שעובדים על המאגר: Sasha ו-Kai.

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

ההגדרות הבאות מוגדרות כברירת מחדל ב-workflow_settings.yaml:

  • defaultProject : analytics
  • defaultDataset: dataform

ההגדרות הבאות של הידור סביבת העבודה יוצרות קידומת דינמית של טבלה וסיומת סכמה לכל סביבת עבודה במאגר:

  • מזהה הפרויקט ב-Google Cloud: analytics_dev
  • Table prefix: ${workspaceName}
  • סיומת סכימה: ${workspaceName}

כשסשה מפעילה ידנית את ההרצה ב-Sasha workspace,‏ Dataform מריץ את התוכן שלו עם ההגדרות הבאות:

  • Google Cloud פרויקט: analytics_dev
  • סכימה: dataform_sasha
  • שמות הטבלאות: sasha_name, לדוגמה: sasha_orders

כשקאי מפעיל ידנית את ההרצה בסביבת העבודה Kai, ‏ Dataform מריץ את התוכן שלו עם ההגדרות הבאות:

  • Google Cloud פרויקט: analytics_dev
  • סכימה: dataform_kai
  • שמות הטבלאות: kai_name, לדוגמה: kai_orders

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

כדי ליצור שינויים בהידור של סביבת עבודה ב-Dataform:

  1. במאגר, עוברים אל הגדרות.
  2. לוחצים על Edit.
  3. בחלונית Workspace compilation overrides (שינויים בהגדרות של אוסף קבצים של סביבת עבודה), בשדה Google Cloud Project ID (מזהה פרויקט ב-Google Cloud), מזינים את מזהה הפרויקט.
  4. בשדה Table prefix (קידומת לטבלה), מזינים קידומת לכל שמות הטבלאות.
    1. אופציונלי: כדי ליצור קידומת דינמית לטבלה שתהיה ייחודית לכל סביבת עבודה, מזינים ${workspaceName} כקידומת לטבלה.
  5. בשדה סיומת סכימה, מזינים סיומת להוספה לסכימה של הטבלה או התצוגה שנוצרו.
    1. אופציונלי: כדי ליצור סיומת סכמה דינמית שייחודית לכל מרחב עבודה, מזינים ${workspaceName} כסיומת הטבלה.
  6. לוחצים על Save.

‫Dataform מחיל את ההגדרות של שינויים בהידור של סביבת העבודה על כל סביבות העבודה במאגר.

עריכת שינויים בהגדרות של קומפילציה של סביבת עבודה

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

  1. במאגר, עוברים אל הגדרות.
  2. לוחצים על Edit.
  3. עורכים את ההגדרות של שינוי ברירת המחדל של קומפילציה של סביבת עבודה ולוחצים על שמירה.

מחיקת שינויים בהגדרות של קומפילציה של סביבת עבודה

כדי למחוק שינויים בהידור של סביבת עבודה ב-Dataform:

  1. במאגר, עוברים אל הגדרות.
  2. לוחצים על Edit.
  3. בחלונית Workspace compilation overrides (שינויים בהגדרות ההידור של סביבת העבודה), לוחצים על Clear all (ניקוי הכול) ואז על Save (שמירה).

הגדרת שינויים בהידור באמצעות Dataform API

בקטע הזה נסביר איך ליצור ולהריץ תוצאת קומפילציה עם שינויים בקומפילציה באמצעות Dataform API.

מידע על שינויים בהידור (compilation) ב-Dataform API

כדי להריץ את תהליך העבודה, Dataform מהדר את הקוד ל-SQL כדי ליצור תוצאת הידור. לאחר מכן, במהלך הפעלת תהליך העבודה,‏ Dataform מריץ את תוצאת ההידור ב-BigQuery.

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

אפשר להעביר בקשות ל-Dataform API במסוף כדי ליצור ולהפעיל תוצאת קומפילציה יחידה עם החלפות של קומפילציה. אפשר ליצור תוצאת קומפילציה של סביבת עבודה או של קומיט Git נבחר.

כדי ליצור תוצאת קומפילציה עם שינויים בקומפילציה, צריך לשלוח בקשה ל-Dataform API‏ compilationResults.create. בבקשה, צריך לציין מקור, שיכול להיות סביבת עבודה או קומיט ב-Git, כדי ש-Dataform יקמפל אותו לתוצאת הקומפילציה. באובייקט CodeCompilationConfig של בקשת compilationResults.create, אפשר להגדיר שינויים בהגדרות הקומפילציה.

לאחר מכן תוכלו להפעיל את תוצאת ההידור שנוצרה בבקשת Dataform API‏ workflowInvocations.create.

אפשר להגדיר את ההחלפות הבאות של קומפילציה של Dataform API:

Google Cloud project

הפרויקט שבו Dataform מריץ את תוצאת ההידור, שמוגדר בקובץ workflow_settings.yaml כמאפיין defaultProject או בקובץ dataform.json כמאפיין defaultDatabase.

קידומת של טבלה

הקידומת המותאמת אישית שנוספה לכל שמות הטבלאות בתוצאת ההידור.

סיומת סכימה

הסיומת המותאמת אישית שמצורפת לסכימה של טבלאות שמוגדרות במאפיין defaultDataset בקובץ workflow_settings.yaml, במאפיין defaultSchema בקובץ dataform.json או בפרמטר schema בבלוק config של טבלה.

הערך של משתנה של אוסף

הערך של משתנה קומפילציה שישמש בתוצאת הקומפילציה. אפשר להשתמש במשתני קומפילציה כדי להפעיל טבלאות באופן מותנה.

במקום להשתמש בביטולי הידור (compilation) של Dataform API שאפשר להשתמש בהם רק לתוצאת הידור אחת, אפשר להגדיר ביטולי הידור של סביבת עבודה במסוף Google Cloud .

במאמר מבוא למחזור החיים של תהליך העבודה ב-Dataform מוסבר על דרכים חלופיות להגדרת שינויים בהידור ב-Dataform.

הגדרת מקור לתוצאת האוסף

כדי לשלוח בקשה ל-Dataform API compilationResults.create צריך לציין מקור לתוצאת הקומפילציה.

אפשר להגדיר סביבת עבודה של Dataform או ענף Git, תג Git או SHA של שמירת Git כמקור בבקשת compilationResults.create.

הגדרת סביבת עבודה כמקור לתוצאות של קומפילציה

  • בבקשה compilationResults.create, ממלאים את הנתיב של סביבת עבודה נבחרת ב-Dataform במאפיין workspace בפורמט הבא:

    {
    "workspace": "projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY_NAME/workspaces/WORKSPACE_NAME"
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: השם של Google Cloud הפרויקט.
    • LOCATION: המיקום של מאגר Dataform, שמוגדר בהגדרות של תהליך העבודה.
    • REPOSITORY_NAME: השם של מאגר Dataform.
    • WORKSPACE_NAME: השם של סביבת העבודה של Dataform.

בדוגמת הקוד הבאה מוצגת המאפיין workspace בבקשה compilationResults.create שמוגדר למרחב עבודה שנקרא