תבנית Cloud Storage Text to Pub/Sub (Batch)‎

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

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

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

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

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

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

  • inputFilePattern: דפוס קובץ הקלט לקריאה. לדוגמה, gs://bucket-name/files/*.json.
  • outputTopic: נושא הקלט של Pub/Sub שאליו ייכתב הפלט. השם צריך להיות בפורמט projects/<PROJECT_ID>/topics/<TOPIC_NAME>. לדוגמה, projects/your-project-id/topics/your-topic-name.

הרצת התבנית

המסוף

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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/ \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/files/*.json,\
outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME

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

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

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

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית האב ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
  • REGION_NAME: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • 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/
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/files/*.json",
       "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME"
   },
   "environment": { "zone": "us-central1-f" }
}

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

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

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

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

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