אחרי שיוצרים ומכינים את התבנית של Dataflow, מריצים אותה באמצעות מסוף Google Cloud , ה-API בארכיטקטורת REST או Google Cloud CLI. אפשר לפרוס משימות של תבניות Dataflow מהרבה סביבות, כולל סביבת ברירת המחדל ב-App Engine, פונקציות Cloud Run וסביבות מוגבלות אחרות.
שימוש במסוף Google Cloud
אתם יכולים להשתמש במסוף Google Cloud כדי להריץ תבניות Dataflow בהתאמה אישית ותבניות ש-Google מספקת.
תבניות ש-Google מספקת
כדי להריץ תבנית ש-Google מספקת:
- נכנסים לדף Dataflow במסוף Google Cloud . כניסה לדף Dataflow
- לוחצים על add_boxCREATE JOB FROM TEMPLATE.
- בתפריט הנפתח Dataflow template, בוחרים את התבנית ש-Google מספקת ורוצים להריץ.
- מזינים שם למשימה בשדה Job Name.
- מזינים את ערכי הפרמטרים בשדות הפרמטרים שמופיעים. אם אתם משתמשים בתבנית ש-Google מספקת, אתם לא צריכים את הקטע Additional Parameters.
- לוחצים על Run Job.
תבניות בהתאמה אישית
כדי להריץ תבנית בהתאמה אישית:
- נכנסים לדף Dataflow במסוף Google Cloud . כניסה לדף Dataflow
- לוחצים על CREATE JOB FROM TEMPLATE.
- בתפריט הנפתח Dataflow template, בוחרים באפשרות Custom Template.
- מזינים שם למשימה בשדה Job Name.
- בשדה הנתיב של התבנית ב-Cloud Storage, מזינים את הנתיב של קובץ התבנית ב-Cloud Storage.
- אם צריך להוסיף פרמטרים לתבנית, לוחצים על addADD PARAMETER בקטע Additional parameters. מזינים את השם והערך של הפרמטר. חוזרים על השלב הזה לכל פרמטר שצריך.
- לוחצים על Run Job.
שימוש ב-API בארכיטקטורת REST
כדי להריץ תבנית באמצעות בקשת API בארכיטקטורת REST, שולחים בקשת 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, שיש לה יותר זיכרון ו-CPU לכל worker מאשר לסוג המכונה שמוגדר כברירת מחדל.
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 ומוודאים שנוצרה משימה חדשה עם אותו שם. למשימה הזו יש את הסטטוס Updated.
שימוש בספריות הלקוח של Google API
כדאי להשתמש בספריות הלקוח של Google API כדי לבצע בקלות קריאות לממשקי ה-API בארכיטקטורת REST של Dataflow. הסקריפט לדוגמה משתמש בספריית הלקוח של Google API ל-Python.
בדוגמה הזו, צריך להגדיר את המשתנים הבאים:
-
project: מזהה הפרויקט. -
job: שם ייחודי למשימה, לפי בחירתכם. -
template: מגדירים את המיקום של קובץ התבנית ב-Cloud Storage. -
parameters: מוגדר למילון עם הפרמטרים של התבנית.
כדי להגדיר את האזור, צריך לכלול את הפרמטר location.
למידע נוסף על האפשרויות הזמינות, קראו על ה-method projects.locations.templates.launch במאמרי העזרה של ה-API בארכיטקטורת REST של Dataflow.
שימוש ב-CLI של gcloud
ה-CLI של gcloud יכול להריץ תבנית בהתאמה אישית או תבנית ש-Google מספקת באמצעות הפקודה gcloud dataflow jobs run. בדף התבניות ש-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. אם משימה נכשלת, תוכלו למצוא טיפים לפתרון בעיות, אסטרטגיות לניפוי באגים וקטלוג של שגיאות נפוצות במדריך פתרון בעיות בצינור עיבוד הנתונים.
כדי לבדוק ולבקר באופן פרוגרמטי משימות של תבניות שפועלות או משימות היסטוריות באמצעות ה-CLI של gcloud או ה-API בארכיטקטורת REST, קראו את המאמר בדיקה וביקורת של משימות של תבניות.