במאמר הזה נסביר איך לבצע את הפעולות הבאות ב-Dataform:
- תזמון הרצות באמצעות הגדרות של תהליכי עבודה.
- תזמון הרצות באמצעות Workflows ו-Cloud Scheduler.
- תזמון הרצות באמצעות Managed Service for Apache Airflow.
- אוטומציה של הרצות באמצעות טריגרים של Cloud Build.
בטבלה הבאה מוצגת השוואה בין השיטות:
| Method | מטרה | סוג הטריגר |
|---|---|---|
| הגדרות של תהליכי עבודה | הרצות ייצור סטנדרטיות שמבוססות על זמן ב-Dataform. | מבוסס זמן |
| זרימות עבודה ו-Cloud Scheduler | תזמור קל משקל של Dataform לצד ממשקי API אחרים, ללא שרת. | מבוסס על זמן או על אירוע |
| Managed Airflow | צינורות מורכבים עם תלות מחוץ ל-BigQuery. | מבוסס על זמן או על אירוע |
| מפעילים של Cloud Build | אוטומציה של פרסום גרסאות מיד אחרי פעולת Git push. | מבוסס-אירועים |
לפני שמתחילים
כדי לתזמן הרצות עם הגדרות של תהליכי עבודה או לתזמן הרצות עם תהליכי עבודה ו-Cloud Scheduler, מבצעים את הפעולות הבאות:
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים מאגר או יוצרים מאגר.
יוצרים הגדרת גרסה.
כדי לתזמן הפעלות באמצעות Managed Service for Apache Airflow:
- בוחרים או יוצרים מאגר Dataform.
- איך מעניקים ל-Dataform גישה ל-BigQuery
- בוחרים או יוצרים סביבת עבודה ב-Dataform.
- יוצרים לפחות טבלה אחת.
- יוצרים סביבת Managed Airflow 2.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לביצוע המשימות שמתוארות במאמר הזה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- אדמין ב-Dataform (
roles/dataform.admin) במאגרים - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בחשבון השירות המותאם אישית - Composer Worker (
roles/composer.worker) בחשבון השירות של סביבת Managed Airflow -
הפעלת ריצות באופן אוטומטי באמצעות Cloud Build:
- אדמין של חשבון שירות (
roles/iam.serviceAccountAdmin) בחשבון השירות המותאם אישית - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) בפרויקט
- אדמין של חשבון שירות (
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
כדי להשתמש בחשבון שירות מותאם אישית כשיוצרים הגדרת זרימת עבודה, צריך להעניק גישה לחשבון השירות המותאם אישית.
כדי להשתמש בפרטי כניסה של משתמש לחשבון Google כשיוצרים הגדרת תהליך עבודה (גרסת Preview), צריך להעניק גישה לחשבון Google.
כדי להפעיל ביצועים מתוזמנים להגדרת זרימת עבודה, צריך להעניק את ההרשאה iam.serviceAccounts.actAs לסוכן השירות שמוגדר כברירת מחדל ב-Dataform עבור חשבון השירות בהתאמה אישית שמשמש בהגדרת זרימת העבודה. ההרשאה הזו זמינה בתפקיד 'משתמש בחשבון שירות' (roles/iam.serviceAccountUser). למידע נוסף, אפשר לעיין במאמר שימוש במצב 'התחזות מוגבלת'.
כדי לשפר את האבטחה של קביעת פגישות, אפשר לקרוא על הטמעה של הרשאות משופרות לקביעת פגישות.
תזמון הרצות באמצעות הגדרות של תהליכי עבודה
בקטע הזה מוסבר איך ליצור הגדרת תהליך עבודה ב-Dataform כדי לתזמן ולהגדיר הפעלות של תהליכי עבודה. אתם יכולים להשתמש בהגדרות של תהליכי עבודה כדי להריץ תהליכי עבודה של Dataform לפי לוח זמנים.
מידע על הגדרות של תהליכי עבודה
כדי לתזמן הרצות של Dataform של כל הפעולות בתהליך העבודה או רק חלק מהן ב-BigQuery, אפשר ליצור הגדרות של תהליך העבודה. בהגדרת תהליך עבודה, בוחרים הגדרת מהדורת קומפילציה, בוחרים פעולות של תהליך העבודה לביצוע ומגדירים את לוח הזמנים להרצה.
לאחר מכן, במהלך הפעלה מתוזמנת של הגדרת תהליך העבודה, Dataform פורס את הפעולות שבחרתם מתוצאת הקומפילציה האחרונה בהגדרת הגרסה אל BigQuery. אפשר גם להפעיל ידנית את הריצה של הגדרת תהליך עבודה באמצעות Dataform API workflowConfigs.
הגדרות של תהליך עבודה ב-Dataform כוללות את הגדרות ההרצה הבאות:
- המזהה של הגדרת תהליך העבודה.
- הגדרות מוצר.
חשבון שירות.
זהו חשבון השירות המותאם אישית שמשויך להגדרת תהליך העבודה. אפשר לבחור חשבון שירות מותאם אישית שמשויך לפרויקט Google Cloud , או להזין ידנית חשבון שירות אחר. כברירת מחדל, הגדרות של תהליכי עבודה משתמשות באותם חשבונות שירות כמו המאגרים שלהם.
פרטי הכניסה לחשבון השירות הם שיטת ההרשאה שמוגדרת כברירת מחדל ליצירה ולביצוע של תצורות של תהליכי עבודה מתוזמנים.
פרטי כניסה של משתמש בחשבון Google (גרסת טרום-השקה (Preview))
פרטי הכניסה של משתמש בחשבון Google הם שיטת ההרשאה שמוגדרת כברירת מחדל ליצירה ולהפעלה של תצורות ידניות של תהליכי עבודה שלא מתוזמנים. מידע נוסף זמין במאמר בנושא מתן הרשאה לחשבון Google.
פעולות בתהליך העבודה שיבוצעו:
- כל הפעולות.
- בחירת פעולות.
- בחירת תגים.
לוח זמנים להפעלה ואזור זמן.
יצירת הגדרה של תהליך עבודה
כדי ליצור הגדרת זרימת עבודה ב-Dataform, פועלים לפי השלבים הבאים:
- במאגר, עוברים אל Releases & Scheduling (גרסאות ולוחות זמנים).
- בקטע הגדרות של תהליכי עבודה, לוחצים על יצירה.
בחלונית Create workflow configuration (יצירת הגדרת תהליך עבודה), בשדה Configuration ID (מזהה הגדרה), מזינים מזהה ייחודי להגדרת תהליך העבודה.
המזהים יכולים לכלול רק מספרים, אותיות, מקפים וקווים תחתונים.
בתפריט Release configuration (הגדרת גרסה), בוחרים הגדרת גרסת קומפילציה.
בקטע אימות, מאשרים את הגדרת תהליך העבודה באמצעות פרטי הכניסה של משתמש בחשבון Google או חשבון שירות.
כדי להשתמש בפרטי הכניסה של המשתמש בחשבון Google (תצוגה מקדימה), בוחרים באפשרות Execute with my user credentials (הרצה עם פרטי הכניסה של המשתמש).
אופציונלי: בקטע Extended access options (אפשרויות גישה מורחבת), בוחרים את השירותים הנוספים שנדרשים בתהליך העבודה:
- Knowledge Catalog: מאפשרת Google Cloud עדכוני מטא-נתונים של Knowledge Catalog.
- Google Drive: מאפשר גישה לקבצים ב-Google Drive לקריאה בלבד.
- Bigtable: מאפשר גישה לקריאה בלבד לנתונים של Google Bigtable.
כדי להשתמש בחשבון שירות בהתאמה אישית, בוחרים באפשרות Execute with selected service account ואז בוחרים את חשבון השירות שמשויך לפרויקט Google Cloud שיש לכם גישה אליו. אם לא בוחרים חשבון שירות, הגדרת תהליך העבודה משתמשת בחשבון השירות של המאגר.
אופציונלי: בשדה Schedule frequency, מזינים את תדירות ההרצה בפורמט unix-cron.
כדי לוודא ש-Dataform מבצע את תוצאת הקומפילציה האחרונה בהגדרת הגרסה המתאימה, צריך להקפיד על הפסקה של שעה לפחות בין הזמן שבו נוצרה תוצאת הקומפילציה לבין הזמן של ההפעלה המתוזמנת.
אופציונלי: בתפריט אזור זמן, בוחרים את אזור הזמן להפעלות.
אזור הזמן שמוגדר כברירת מחדל הוא UTC.
בוחרים את הפעולות בתהליך העבודה שרוצים לבצע:
- כדי להפעיל את כל תהליך העבודה, לוחצים על כל הפעולות.
- כדי להפעיל פעולות נבחרות בתהליך העבודה, לוחצים על בחירת פעולות ואז בוחרים פעולות.
- כדי לבצע פעולות בתגים שנבחרו, לוחצים על בחירת תגים ואז בוחרים תגים.
- אופציונלי: כדי להפעיל תגים או פעולות נבחרות ואת התלויות שלהם, בוחרים באפשרות Include dependencies (כולל תלויות).
- אופציונלי: כדי להפעיל את הפעולות או התגים שנבחרו ואת התגים שתלויים בהם, בוחרים באפשרות Include dependents (כולל תגים שתלויים בתגים שנבחרו).
אופציונלי: כדי לבנות מחדש את כל הטבלאות מאפס, בוחרים באפשרות הפעלה עם רענון מלא.
בלי האפשרות הזו, Dataform מעדכן טבלאות מצטברות בלי לבנות אותן מחדש מאפס.
אופציונלי: מגדירים את העדיפות של משימת השאילתה ב-BigQuery באמצעות האפשרות Execute as interactive job with high priority (default) (ביצוע כמשימה אינטראקטיבית עם עדיפות גבוהה (ברירת מחדל)). כברירת מחדל, BigQuery מריץ שאילתות כמשימות של שאילתות אינטראקטיביות, שמיועדות להתחיל לפעול במהירות האפשרית. אם לא מסמנים את האפשרות הזו, השאילתות מופעלות כעבודות של שאילתות באצווה, שהעדיפות שלהן נמוכה יותר.
לוחצים על יצירה. אם בחרתם באפשרות ביצוע עם פרטי הכניסה של המשתמש שלי כשיטת האימות, אתם צריכים לתת הרשאה לחשבון Google (תצוגה מקדימה).
לדוגמה, הגדרת זרימת העבודה הבאה מפעילה פעולות עם התג hourly בכל שעה באזור הזמן CEST:
- מזהה ההגדרה:
production-hourly - הגדרת מוצר: –
- תדר:
0 * * * * - אזור זמן:
Central European Summer Time (CEST) - בחירת פעולות בתהליך העבודה: בחירת תגים, תג
hourly
איך נותנים הרשאה לחשבון Google
כדי לאמת את המשאב באמצעות פרטי הכניסה של המשתמש בחשבון Google, צריך להעניק באופן ידני הרשאה לצינורות של BigQuery לקבל את טוקן הגישה לחשבון Google ולגשת לנתוני המקור בשמכם. אתם יכולים לתת אישור ידני באמצעות ממשק תיבת הדו-שיח של OAuth. אם בוחרים באחת מאפשרויות הגישה המורחבת, צריך להעניק גישה לשירותים האלה – למשל, Google Drive או Knowledge Catalog.
צריך לתת הרשאה לצינורות של BigQuery רק פעם אחת.
כדי לבטל את ההרשאה שנתתם:
- עוברים אל הדף של החשבון ב-Google.
- לוחצים על BigQuery Pipelines.
- לוחצים על הסרת הגישה.
שינוי הבעלים של הגדרת תהליך העבודה על ידי עדכון פרטי הכניסה דורש גם אישור ידני אם הבעלים החדש של חשבון Google מעולם לא יצר הגדרת תהליך עבודה.
עריכת הגדרות של תהליך עבודה
כדי לערוך הגדרות של תהליך עבודה:
- במאגר, עוברים אל Releases & Scheduling (גרסאות ולוחות זמנים).
- לצד הגדרת תהליך העבודה שרוצים לערוך, לוחצים על התפריט עוד ואז על עריכה.
- בחלונית עריכת הגדרות תהליך העבודה, עורכים את ההגדרות של תהליך העבודה ולוחצים על שמירה.
מחיקה של הגדרת תהליך עבודה
כדי למחוק הגדרה של תהליך עבודה, מבצעים את השלבים הבאים:
- במאגר, עוברים אל Releases & Scheduling (גרסאות ולוחות זמנים).
- לצד הגדרת תהליך העבודה שרוצים למחוק, לוחצים על התפריט אפשרויות נוספות ואז על מחיקה.
- בתיבת הדו-שיח מחיקת הגדרת הפצה, לוחצים על מחיקה.
תזמון הרצות באמצעות Workflows ו-Cloud Scheduler
בקטע הזה מוסבר איך לתזמן הפעלות של תהליכי עבודה ב-Dataform באמצעות Workflows ו-Cloud Scheduler.
מידע על הרצות מתוזמנות של תהליכי עבודה
אתם יכולים להגדיר את התדירות של הרצות תהליכי העבודה ב-Dataform על ידי יצירת משימה ב-Cloud Scheduler שמפעילה תהליך עבודה ב-Workflows. Workflows מפעיל שירותים בתהליך עבודה של תזמור שהגדרתם.
הפלטפורמה Workflows מריצה את תהליך העבודה שלכם ב-Dataform בתהליך של שני שלבים. קודם כול, המערכת שולפת את קוד מאגר Dataform מספק Git שלכם ומקמפלת אותו לתוצאת קומפילציה. לאחר מכן, המערכת משתמשת בתוצאת ההידור כדי ליצור תהליך עבודה ב-Dataform ומבצעת אותו בתדירות שהגדרתם.
יצירת תהליך עבודה מתוזמן של תזמור
כדי לתזמן הרצות של תהליך העבודה ב-Dataform, משתמשים ב-Workflows כדי ליצור תהליך עבודה של תזמור ולהוסיף משימה של Cloud Scheduler כטריגר.
ב-Workflows נעשה שימוש בחשבונות שירות כדי להעניק לזרימות עבודה גישה למשאבים שלGoogle Cloud . יוצרים חשבון שירות ונותנים לו את ההרשאות הבאות:
- תפקיד עורך ב-Dataform
(
roles/dataform.editor). - התפקיד Service Account User (
roles/iam.serviceAccountUser) בחשבון השירות המותאם אישית שמשמש ב-Dataform. - ההרשאות המינימליות שנדרשות לניהול תהליך העבודה של התזמור. מידע נוסף זמין במאמר בנושא הענקת הרשאה לזרימת עבודה לגשת למשאבים ב- Google Cloud .
- תפקיד עורך ב-Dataform
(
יוצרים תהליך עבודה לתזמור ומשתמשים בקוד המקור הבא ב-YAML כהגדרת תהליך העבודה:
main: steps: - init: assign: - repository: projects/PROJECT_ID/locations/REPOSITORY_LOCATION/repositories/REPOSITORY_ID - createCompilationResult: call: http.post args: url: ${"https://dataform.googleapis.com/v1/" + repository + "/compilationResults"} auth: type: OAuth2 body: gitCommitish: GIT_COMMITISH result: compilationResult - createWorkflowInvocation: call: http.post args: url: ${"https://dataform.googleapis.com/v1/" + repository + "/workflowInvocations"} auth: type: OAuth2 body: compilationResult: ${compilationResult.body.name} result: workflowInvocation - complete: return: ${workflowInvocation.body.name}מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REPOSITORY_LOCATION: המיקום של מאגר Dataform.
- REPOSITORY_ID: השם של מאגר Dataform.
- GIT_COMMITISH: הענף ב-Git שממנו רוצים להריץ את קוד Dataform. אם המאגר נוצר לאחרונה, מחליפים את
main.