נושא Pub/Sub לקובצי טקסט ב-Cloud Storage

תבנית הטקסט של Pub/Sub ל-Cloud Storage היא צינור סטרימינג שקורא רשומות מנושא Pub/Sub ושומר אותן כסדרה של קבצים ב-Cloud Storage בפורמט טקסט. אפשר להשתמש בתבנית כדי לשמור נתונים ב-Pub/Sub לשימוש עתידי. כברירת מחדל, התבנית יוצרת קובץ חדש כל 5 דקות.

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

  • נושא Pub/Sub צריך להתקיים לפני ההפעלה.
  • ההודעות שמתפרסמות בנושא צריכות להיות בפורמט טקסט.
  • ההודעות שמתפרסמות בנושא לא יכולות להכיל מעברי שורה. שימו לב שכל הודעת Pub/Sub נשמרת כשורה אחת בקובץ הפלט.

פרמטרים של תבניות

פרמטרים נדרשים

  • outputDirectory: הנתיב והקידומת של שם הקובץ לכתיבת קובצי פלט. לדוגמה, gs://bucket-name/path/. הערך הזה חייב להסתיים בלוכסן.
  • outputFilenamePrefix: הקידומת שתוצב בכל קובץ עם חלונות. לדוגמה, output-. ברירת המחדל היא: output.

פרמטרים אופציונליים

  • inputTopic: נושא Pub/Sub שממנו יתבצע קריאת הקלט. שם הנושא צריך להיות בפורמט projects/<PROJECT_ID>/topics/<TOPIC_NAME>.
  • userTempLocation: הספרייה שהמשתמש סיפק כדי להוציא אליה קבצים זמניים. חייב להסתיים בלוכסן.
  • outputFilenameSuffix: הסיומת שתוצב בכל קובץ עם חלון זמן. בדרך כלל סיומת קובץ כמו .txt או .csv. ברירת המחדל היא ריק.
  • outputShardTemplate: תבנית השארד מגדירה את החלק הדינמי של כל קובץ עם חלון זמן. כברירת מחדל, הצינור משתמש בשבר יחיד לפלט למערכת הקבצים בכל חלון. לכן, כל פלט הנתונים נשמר בקובץ אחד לכל חלון. ‫outputShardTemplate defaults to W-P-SS-of-NN, כאשר W הוא טווח התאריכים של החלון, P הוא פרטי החלונית, S הוא מספר הרסיס ו-N הוא מספר הרסיסים. אם מדובר בקובץ אחד, החלק SS-of-NN של outputShardTemplate הוא 00-of-01.
  • yearPattern: תבנית לעיצוב השנה. חייב להיות אחד מהערכים y או Y או יותר. השימוש באותיות רישיות או קטנות לא משנה את השנה. אפשר להוסיף לתבנית תווים שהם לא אלפאנומריים או את התו של הספרייה (/). ברירת המחדל היא YYYY.
  • monthPattern: תבנית לעיצוב החודש. חייב לכלול תו אחד או יותר מתוך M. אפשר להוסיף לתבנית תווים שהם לא אלפאנומריים או את התו של הספרייה (/). ברירת המחדל היא MM.
  • dayPattern: תבנית לעיצוב היום. צריך להיות אחד או יותר מהערכים d ליום בחודש או D ליום בשנה. אפשר להוסיף לתבנית תווים שהם לא אלפאנומריים או את התו של הספרייה (/). ברירת המחדל היא dd.
  • hourPattern: תבנית לעיצוב השעה. חייב לכלול תו אחד או יותר מתוך H. אפשר להוסיף לתבנית תווים שהם לא אלפאנומריים או את התו של הספרייה (/). ברירת המחדל היא HH.
  • minutePattern: תבנית לעיצוב הדקות. חייב לכלול תו אחד או יותר מתוך m. אפשר להוסיף לתבנית תווים שהם לא אלפאנומריים או את התו של הספרייה (/). ברירת המחדל היא mm.

הרצת התבנית

המסוף

  1. עוברים לדף Create job from template (יצירת משימה מתבנית) ב-Dataflow.
  2. כניסה לדף Create job from template
  3. בשדה שם המשימה, מזינים שם ייחודי למשימה.
  4. אופציונלי: בשדה Regional endpoint (נקודת קצה אזורית), בוחרים ערך מהתפריט הנפתח. אזור ברירת המחדל הוא us-central1.

    רשימה של אזורים שבהם אפשר להריץ משימת Dataflow מופיעה במאמר מיקומי Dataflow.

  5. בתפריט הנפתח Dataflow template (תבנית Dataflow), בוחרים בתבנית Pub/Sub to Text Files on Cloud Storage (מ-Pub/Sub לקובצי טקסט ב-Cloud Storage).
  6. בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
  7. אופציונלי: כדי לעבור מעיבוד של כל נתון בדיוק פעם אחת אל מצב סטרימינג של כל נתון לפחות פעם אחת, בוחרים באפשרות לפחות פעם אחת.
  8. לוחצים על הפעלת העבודה.

gcloud

במעטפת או בטרמינל, מריצים את התבנית:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Cloud_PubSub_to_GCS_Text \
    --region REGION_NAME \
    --staging-location STAGING_LOCATION \
    --parameters \
inputTopic=projects/PROJECT_ID/topics/TOPIC_NAME,\
outputDirectory=gs://BUCKET_NAME/output/,\
outputFilenamePrefix=output-,\
outputFilenameSuffix=.txt

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

  • JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • REGION_NAME: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • VERSION: הגרסה של התבנית שרוצים להשתמש בה

    אפשר להשתמש בערכים הבאים:

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
  • STAGING_LOCATION: המיקום של קבצים מקומיים להעברה (לדוגמה, gs://your-bucket/staging)
  • TOPIC_NAME: שם הנושא ב-Pub/Sub
  • BUCKET_NAME: שם הקטגוריה של Cloud Storage

API

כדי להפעיל את התבנית באמצעות API בארכיטקטורת REST, שולחים בקשת HTTP POST. מידע נוסף על ה-API ועל היקפי ההרשאות שלו זמין במאמר projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Cloud_PubSub_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "environment": {
       "ipConfiguration": "WORKER_IP_UNSPECIFIED",
       "additionalExperiments": []
    },
   "parameters": {
       "inputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME"
       "outputDirectory": "gs://BUCKET_NAME/output/",
       "outputFilenamePrefix": "output-",
       "outputFilenameSuffix": ".txt",
   }
}

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

  • PROJECT_ID: מזהה הפרויקט שבו רוצים להריץ את משימת Dataflow Google Cloud
  • JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • LOCATION: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • VERSION: הגרסה של התבנית שרוצים להשתמש בה

    אפשר להשתמש בערכים הבאים:

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
  • STAGING_LOCATION: המיקום של קבצים מקומיים להעברה (לדוגמה, gs://your-bucket/staging)
  • TOPIC_NAME: שם הנושא ב-Pub/Sub
  • BUCKET_NAME: שם הקטגוריה של Cloud Storage

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