תבנית של ביטול דחיסה של קבצים ב-Cloud Storage בכמות גדולה

התבנית Bulk Decompress Cloud Storage Files (ביטול דחיסה של קבצים ב-Cloud Storage בכמות גדולה) היא צינור להעברת נתונים באצווה שמבטל דחיסה של קבצים ב-Cloud Storage למיקום שצוין. הפונקציונליות הזו שימושית כשרוצים להשתמש בנתונים דחוסים כדי לצמצם את העלויות של רוחב הפס ברשת במהלך העברה, אבל רוצים למקסם את מהירות העיבוד האנליטי על ידי הפעלה של נתונים לא דחוסים אחרי ההעברה. הצינור מטפל אוטומטית בכמה מצבי דחיסה במהלך הרצה אחת, וקובע את מצב הפריסה שבו יש להשתמש על סמך סיומת הקובץ (.bzip2,‏ .deflate,‏ .gz,‏ .zip).

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

  • הקבצים שרוצים לחלץ צריכים להיות באחד מהפורמטים הבאים: Bzip2,‏ Deflate, ‏ Gzip, ‏ Zip.
  • ספריית הפלט חייבת להתקיים לפני שמריצים את צינור הנתונים.

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

פרמטר תיאור
inputFilePattern תבנית קובץ הקלט שממנה רוצים לקרוא. לדוגמה, gs://bucket-name/compressed/*.gz.
outputDirectory מיקום הפלט שאליו רוצים לכתוב. לדוגמה, gs://bucket-name/decompressed.
outputFailureFile קובץ הפלט של יומן השגיאות שבו צריך להשתמש בשגיאות כתיבה שמתרחשות במהלך תהליך הביטול של הדחיסה. לדוגמה, gs://bucket-name/decompressed/failed.csv. אם אין כשלים, הקובץ עדיין נוצר אבל הוא יהיה ריק. תוכן הקובץ הוא בפורמט CSV (שם הקובץ, שגיאה) והוא כולל שורה אחת לכל קובץ שחילוץ הדחיסה שלו נכשל.

הפעלת התבנית

המסוף

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

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

  5. בתפריט הנפתח Dataflow template (תבנית של העברת נתונים), בוחרים באפשרות the Bulk Decompress Files on Cloud Storage template.
  6. בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
  7. לוחצים על הפעלת העבודה.

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Bulk_Decompress_GCS_Files \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/compressed/*.gz,\
outputDirectory=gs://BUCKET_NAME/decompressed,\
outputFailureFile=OUTPUT_FAILURE_FILE_PATH

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

  • 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/
  • BUCKET_NAME: שם הקטגוריה של Cloud Storage
  • OUTPUT_FAILURE_FILE_PATH: הנתיב לקובץ שמכיל את פרטי הכשל

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/Bulk_Decompress_GCS_Files
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/compressed/*.gz",
       "outputDirectory": "gs://BUCKET_NAME/decompressed",
       "outputFailureFile": "OUTPUT_FAILURE_FILE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

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

  • 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/
  • BUCKET_NAME: שם הקטגוריה של Cloud Storage
  • OUTPUT_FAILURE_FILE_PATH: הנתיב לקובץ שמכיל את פרטי הכשל

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