אחרי שיוצרים את תבנית Dataflow ומכינים אותה להפעלה, מפעילים את התבנית באמצעות מסוף Google Cloud, API בארכיטקטורת REST או Google Cloud CLI. Google Cloud אפשר לפרוס משימות של תבניות Dataflow מסביבות רבות, כולל סביבת App Engine סטנדרטית, פונקציות Cloud Run וסביבות מוגבלות אחרות.
שימוש במסוף Google Cloud
אתם יכולים להשתמש במסוף Google Cloud כדי להריץ תבניות Dataflow ש-Google מספקת ותבניות בהתאמה אישית.
תבניות ש-Google סיפקה
כדי להפעיל תבנית ש-Google סיפקה:
- נכנסים לדף Dataflow במסוף Google Cloud . כניסה לדף Dataflow
- לוחצים על add_boxCREATE JOB FROM TEMPLATE.
- בתפריט הנפתח Dataflow template (תבנית Dataflow), בוחרים את התבנית שסופקה על ידי Google שרוצים להפעיל.
- מזינים שם למשרה בשדה Job Name.
- מזינים את ערכי הפרמטר בשדות הפרמטרים שמוצגים. אם משתמשים בתבנית שסופקה על ידי Google, אין צורך בקטע פרמטרים נוספים.
- לוחצים על הרצת משימה.
תבניות מותאמות אישית
כדי להפעיל תבנית בהתאמה אישית:
- נכנסים לדף Dataflow במסוף Google Cloud . כניסה לדף Dataflow
- לוחצים על CREATE JOB FROM TEMPLATE (יצירת משימה מתבנית).
- בתפריט הנפתח תבנית של Dataflow, בוחרים באפשרות תבנית בהתאמה אישית.
- מזינים שם למשרה בשדה Job Name.
- מזינים את הנתיב של Cloud Storage לקובץ התבנית בשדה template Cloud Storage path (נתיב התבנית ב-Cloud Storage).
- אם התבנית דורשת פרמטרים, לוחצים על addהוספת פרמטר בקטע פרמטרים נוספים. מזינים את השם והערך של הפרמטר. חוזרים על השלב הזה לכל פרמטר שצריך.
- לוחצים על הרצת משימה.
שימוש ב-API ל-REST
כדי להריץ תבנית באמצעות בקשת API בארכיטקטורת REST, שולחים בקשת HTTP POST עם מזהה הפרויקט. כדי לבצע את הבקשה הזו נדרש אישור.
מידע נוסף על הפרמטרים הזמינים זמין בחומר העזר בנושא API בארכיטקטורת REST בנושא projects.locations.templates.launch.
יצירת משימת אצווה של תבנית בהתאמה אישית
בדוגמה הזו, בקשת projects.locations.templates.launch יוצרת משימה באצווה מתבנית שקוראת קובץ טקסט וכותבת קובץ טקסט של פלט. אם הבקשה מצליחה, גוף התגובה יכיל מופע של LaunchTemplateResponse.
משנים את הערכים הבאים:
- מחליפים את
YOUR_PROJECT_IDבמזהה הפרויקט. - מחליפים את
LOCATIONבאזור Dataflow לבחירתכם. - מחליפים את
JOB_NAMEבשם של המשימה לבחירתכם. - מחליפים את
YOUR_BUCKET_NAMEבשם הקטגוריה שלכם ב-Cloud Storage. - מגדירים את
gcsPathלמיקום של קובץ התבנית ב-Cloud Storage. - מגדירים את
parametersלרשימה של צמדי מפתח/ערך. - מגדירים את
tempLocationלמיקום שיש לכם הרשאת כתיבה בו. הערך הזה נדרש כדי להפעיל תבניות שסופקו על ידי Google.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://YOUR_BUCKET_NAME/templates/TemplateName
{
"jobName": "JOB_NAME",
"parameters": {
"inputFile" : "gs://YOUR_BUCKET_NAME/input/my_input.txt",
"output": "gs://YOUR_BUCKET_NAME/output/my_output"
},
"environment": {
"tempLocation": "gs://YOUR_BUCKET_NAME/temp",
"zone": "us-central1-f"
}
}
יצירת תבנית מותאמת אישית למשימת סטרימינג
בדוגמה הזו, בקשת projects.locations.templates.launch יוצרת משימת סטרימינג מתבנית קלאסית שקוראת ממינוי Pub/Sub וכותבת לטבלה ב-BigQuery. אם רוצים להפעיל תבנית Flex, צריך להשתמש במקום זאת ב-projects.locations.flexTemplates.launch. התבנית לדוגמה היא תבנית ש-Google סיפקה. אפשר לשנות את הנתיב בתבנית כך שיצביע על תבנית מותאמת אישית. אותה לוגיקה משמשת להפעלת תבניות שסופקו על ידי Google ותבניות מותאמות אישית. בדוגמה הזו, הטבלה ב-BigQuery כבר צריכה להתקיים עם הסכימה המתאימה. אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של LaunchTemplateResponse.
משנים את הערכים הבאים:
- מחליפים את
YOUR_PROJECT_IDבמזהה הפרויקט. - מחליפים את
LOCATIONבאזור Dataflow לבחירתכם. - מחליפים את
JOB_NAMEבשם של המשימה לבחירתכם. - מחליפים את
YOUR_BUCKET_NAMEבשם של הקטגוריה שלכם ב-Cloud Storage. - מחליפים את
GCS_PATHבמיקום של קובץ התבנית ב-Cloud Storage. המיקום צריך להתחיל ב-gs:// - מגדירים את
parametersלרשימה של צמדי מפתח/ערך. הפרמטרים שמופיעים ברשימה הם ספציפיים לדוגמה הזו של התבנית. אם אתם משתמשים בתבנית מותאמת אישית, משנים את הפרמטרים לפי הצורך. אם אתם משתמשים בתבנית לדוגמה, מחליפים את המשתנים הבאים.- מחליפים את
YOUR_SUBSCRIPTION_NAMEבשם המינוי שלכם ל-Pub/Sub. - מחליפים את
YOUR_DATASETבמערך הנתונים ב-BigQuery ואתYOUR_TABLE_NAMEבשם הטבלה ב-BigQuery.
- מחליפים את
- מגדירים את
tempLocationלמיקום שיש לכם הרשאת כתיבה בו. הערך הזה נדרש כדי להפעיל תבניות שסופקו על ידי Google.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=GCS_PATH
{
"jobName": "JOB_NAME",
"parameters": {
"inputSubscription": "projects/YOUR_PROJECT_ID/subscriptions/YOUR_SUBSCRIPTION_NAME",
"outputTableSpec": "YOUR_PROJECT_ID:YOUR_DATASET.YOUR_TABLE_NAME"
},
"environment": {
"tempLocation": "gs://YOUR_BUCKET_NAME/temp",
"zone": "us-central1-f"
}
}
עדכון של משימת סטרימינג של תבנית בהתאמה אישית
בדוגמה הזו של בקשת projects.locations.templates.launch מוצג איך לעדכן משימת סטרימינג של תבנית. אם רוצים לעדכן תבנית Flex, צריך להשתמש במקום זאת ב-projects.locations.flexTemplates.launch.
- מריצים את דוגמה 2: יצירת משימת סטרימינג של תבנית בהתאמה אישית כדי להתחיל משימת סטרימינג של תבנית.
- שולחים את בקשת ה-HTTP POST הבאה, עם הערכים ששונו:
- מחליפים את
YOUR_PROJECT_IDבמזהה הפרויקט. - מחליפים את
LOCATIONבאזור של Dataflow שבו אתם מעדכנים את הג'וב. - מחליפים את
JOB_NAMEבשם המדויק של המשרה שרוצים לעדכן. - מחליפים את
GCS_PATHבמיקום של קובץ התבנית ב-Cloud Storage. המיקום צריך להתחיל ב-gs:// - מגדירים את
parametersלרשימה של צמדי מפתח/ערך. הפרמטרים שמופיעים ברשימה הם ספציפיים לדוגמה הזו של התבנית. אם אתם משתמשים בתבנית מותאמת אישית, משנים את הפרמטרים לפי הצורך. אם אתם משתמשים בתבנית לדוגמה, מחליפים את המשתנים הבאים.- מחליפים את
YOUR_SUBSCRIPTION_NAMEבשם המינוי שלכם ל-Pub/Sub. - מחליפים את
YOUR_DATASETבמערך הנתונים ב-BigQuery ואתYOUR_TABLE_NAMEבשם הטבלה ב-BigQuery.
- מחליפים את
- משתמשים בפרמטר
environmentכדי לשנות הגדרות סביבה, כמו סוג המכונה. בדוגמה הזו נעשה שימוש בסוג המכונה n2-highmem-2, שיש לה יותר זיכרון ומעבד לכל עובד מאשר לסוג המכונה שמוגדר כברירת מחדל.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=GCS_PATH { "jobName": "JOB_NAME", "parameters": { "inputSubscription": "projects/YOUR_PROJECT_ID/subscriptions/YOUR_TOPIC_NAME", "outputTableSpec": "YOUR_PROJECT_ID:YOUR_DATASET.YOUR_TABLE_NAME" }, "environment": { "machineType": "n2-highmem-2" }, "update": true } - מחליפים את
- ניגשים אל ממשק המעקב של Dataflow ומוודאים שנוצרה משימה חדשה עם אותו שם. הסטטוס של המשרה הזו הוא עודכן.
שימוש בספריות הלקוח של Google API
מומלץ להשתמש בספריות הלקוח של Google API כדי לבצע בקלות קריאות ל-Dataflow REST APIs. בדוגמה הזו נעשה שימוש ב-Google API Client Library for Python.
בדוגמה הזו, צריך להגדיר את המשתנים הבאים:
-
project: מוגדר למזהה הפרויקט. -
job: מוגדר לשם ייחודי של משימה לפי בחירתכם. -
template: הגדרה למיקום של קובץ התבנית ב-Cloud Storage. -
parameters: מוגדר כמילון עם פרמטרים של התבנית.
כדי להגדיר את הפרמטר region, צריך לכלול את הפרמטר location.
מידע נוסף על האפשרויות הזמינות מופיע במאמר בנושא שיטת projects.locations.templates.launch בהפניית API של Dataflow REST.
שימוש ב-CLI של gcloud
אפשר להריץ ב-CLI של gcloud תבנית בהתאמה אישית או תבנית שסופקה על ידי Google באמצעות הפקודה gcloud dataflow jobs run. דוגמאות להרצת תבניות ש-Google סיפקה מתועדות בדף התבניות ש-Google סיפקה.
בדוגמאות הבאות של תבניות בהתאמה אישית, מגדירים את הערכים הבאים:
- מחליפים את
JOB_NAMEבשם של המשימה לבחירתכם. - מחליפים את
YOUR_BUCKET_NAMEבשם של הקטגוריה שלכם ב-Cloud Storage. - מגדירים את
--gcs-locationלמיקום של קובץ התבנית ב-Cloud Storage. - מגדירים את
--parametersלרשימת הפרמטרים המופרדים בפסיקים להעברה לעבודה. אסור להוסיף רווחים בין הפסיקים לערכים. - כדי למנוע ממכונות וירטואליות לקבל מפתחות SSH ששמורים במטא-נתונים של הפרויקט, משתמשים בדגל
additional-experimentsעם אפשרות השירותblock_project_ssh_keys:--additional-experiments=block_project_ssh_keys.
יצירת משימת אצווה של תבנית בהתאמה אישית
בדוגמה הזו נוצרת משימה באצווה מתבנית שקוראת קובץ טקסט וכותבת קובץ טקסט של פלט.
gcloud dataflow jobs run JOB_NAME \
--gcs-location gs://YOUR_BUCKET_NAME/templates/MyTemplate \
--parameters inputFile=gs://YOUR_BUCKET_NAME/input/my_input.txt,output=gs://YOUR_BUCKET_NAME/output/my_output
התגובה לבקשה מוחזרת בפורמט הבא.
id: 2016-10-11_17_10_59-1234530157620696789
projectId: YOUR_PROJECT_ID
type: JOB_TYPE_BATCH
יצירת תבנית מותאמת אישית למשימת סטרימינג
בדוגמה הזו נוצרת משימת סטרימינג מתבנית שקוראת מנושא Pub/Sub וכותבת לטבלה ב-BigQuery. הטבלה ב-BigQuery כבר צריכה להתקיים עם הסכימה המתאימה.
gcloud dataflow jobs run JOB_NAME \
--gcs-location gs://YOUR_BUCKET_NAME/templates/MyTemplate \
--parameters topic=projects/project-identifier/topics/resource-name,table=my_project:my_dataset.my_table_name
התגובה לבקשה מוחזרת בפורמט הבא.
id: 2016-10-11_17_10_59-1234530157620696789
projectId: YOUR_PROJECT_ID
type: JOB_TYPE_STREAMING
לרשימה מלאה של דגלים לפקודה gcloud dataflow jobs run, ראו את ה-CLI של gcloud.
מעקב ופתרון בעיות
ממשק המעקב של Dataflow מאפשר לעקוב אחרי משימות Dataflow. אם משימה נכשלת, אפשר למצוא טיפים לפתרון בעיות, אסטרטגיות לניפוי באגים וקטלוג של שגיאות נפוצות במדריך פתרון בעיות בצינור הנתונים.