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

התבנית Bulk Compress Cloud Storage Files (דחיסה בכמות גדולה של קבצים ב-Cloud Storage) היא צינור להעברת נתונים (pipeline) של אצווה שדוחס קבצים ב-Cloud Storage למיקום שצוין. התבנית הזו יכולה להיות שימושית כשצריך לדחוס קבוצות גדולות של קבצים כחלק מתהליך ארכיון תקופתי. מצבי הדחיסה הנתמכים הם: BZIP2, ‏ DEFLATE, ‏ GZIP. השמות של הקבצים שיוצאו למיקום היעד יהיו לפי סכימת שמות שבה שם הקובץ המקורי מצורף לסיומת של מצב הדחיסה. התוספים שיתווספו יהיו אחד מהבאים: .bzip2, .deflate, .gz.

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

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

  • הדחיסה צריכה להיות באחד מהפורמטים הבאים: BZIP2, DEFLATE, GZIP.
  • ספריית הפלט צריכה להתקיים לפני שמריצים את צינור הנתונים.

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

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

  • ‫inputFilePattern: המיקום ב-Cloud Storage של הקבצים שרוצים לעבד. לדוגמה, gs://your-bucket/your-files/*.txt.
  • ‫outputDirectory: הנתיב והקידומת של שם הקובץ לכתיבת קובצי פלט. חייב להסתיים בלוכסן. הפורמט של תאריך ושעה משמש לניתוח נתיב הספריה עבור מעצבי תאריך ושעה. לדוגמה, gs://your-bucket/your-path.
  • ‫outputFailureFile: קובץ הפלט של יומן השגיאות שמשמש לכשלים בכתיבה שמתרחשים במהלך הדחיסה. התוכן יהיה שורה אחת לכל קובץ שדחיסתו נכשלה. הערה: הפרמטר הזה יאפשר לצינור העיבוד להמשיך לעבד במקרה של כשל. לדוגמה, gs://your-bucket/compressed/failed.csv.
  • דחיסה: אלגוריתם הדחיסה שמשמש לדחיסת הקבצים התואמים. אלגוריתמים תקינים: BZIP2, ‏ DEFLATE, ‏ GZIP.

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

  • ‫outputFilenameSuffix: הסיומת של שם קובץ הפלט של הקבצים שייכתבו. ברירת המחדל היא ‎ .bzip2, ‏‎.deflate או ‎ .gz, בהתאם לאלגוריתם הדחיסה.

הרצת התבנית

המסוף

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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Bulk_Compress_GCS_Files \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/uncompressed/*.txt,\
outputDirectory=gs://BUCKET_NAME/compressed,\
outputFailureFile=gs://BUCKET_NAME/failed/failure.csv,\
compression=COMPRESSION

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

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

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

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית. אפשר למצוא את הגרסה הזו בתיקיית ההורה המתאימה עם התאריך בדלי – gs://dataflow-templates/
  • ‫BUCKET_NAME: שם הקטגוריה של Cloud Storage
  • ‫COMPRESSION: אלגוריתם הדחיסה שבחרתם

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/VERSION/Bulk_Compress_GCS_Files
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/uncompressed/*.txt",
       "outputDirectory": "gs://BUCKET_NAME/compressed",
       "outputFailureFile": "gs://BUCKET_NAME/failed/failure.csv",
       "compression": "COMPRESSION"
   },
   "environment": { "zone": "us-central1-f" }
}

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

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

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

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית. אפשר למצוא את הגרסה הזו בתיקיית ההורה המתאימה עם התאריך בדלי – gs://dataflow-templates/
  • ‫BUCKET_NAME: שם הקטגוריה של Cloud Storage
  • ‫COMPRESSION: אלגוריתם הדחיסה שבחרתם

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