תבנית BigQuery to Cloud Storage TFRecords

תבנית TFRecords מ-BigQuery ל-Cloud Storage היא צינור שקורא נתונים משאילתת BigQuery וכותב אותם לקטגוריה של Cloud Storage בפורמט TFRecord. אפשר לציין את אחוז החלוקה של הנתונים לאימון, לבדיקה ולאימות. כברירת מחדל, הפיצול הוא 1 או 100% עבור קבוצת נתונים לאימון ו-0 או 0% עבור קבוצות הבדיקה וקבוצות נתונים לתיקוף. כשמגדירים את פיצול מערך הנתונים, סכום הנתונים לאימון, לבדיקה ולאימות צריך להיות 1 או 100% (לדוגמה, 0.6+0.2+0.2). ‫Dataflow קובע באופן אוטומטי את מספר הרסיסים האופטימלי לכל מערך נתונים של פלט.

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

  • מערך הנתונים והטבלה ב-BigQuery חייבים להתקיים.
  • קטגוריה של Cloud Storage של הפלט חייבת להתקיים לפני הפעלת צינור הנתונים. אין צורך שספריות המשנה של ההדרכה, הבדיקה והאימות יהיו קיימות מראש, והן נוצרות באופן אוטומטי.

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

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

  • readQuery: שאילתת BigQuery SQL שמחלצת נתונים מהמקור. לדוגמה, select * from dataset1.sample_table.
  • outputDirectory: קידומת הנתיב ברמה העליונה ב-Cloud Storage שבה יש להשתמש כשכותבים את קובצי ה-TFRecord של האימון, הבדיקה והאימות. תיקיות משנה לקובצי TFRecord של אימון, בדיקה ואימות נוצרות באופן אוטומטי מ-outputDirectory. לדוגמה, gs://mybucket/output.

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

  • readIdColumn: השם של העמודה ב-BigQuery שבה מאוחסן המזהה הייחודי של השורה.
  • invalidOutputPath: נתיב ב-Cloud Storage שבו ייכתבו שורות BigQuery שלא ניתן להמיר לישויות היעד. לדוגמה, gs://your-bucket/your-path.
  • outputSuffix: הסיומת של קובצי ה-TFRecord של האימון, הבדיקה והאימות שנכתבים. ערך ברירת המחדל הוא .tfrecord.
  • trainingPercentage: אחוז נתוני השאילתות שהוקצו לקובצי TFRecord לאימון. ערך ברירת המחדל הוא 1 או 100%.
  • testingPercentage: אחוז נתוני השאילתות שמוקצים לקובצי TFRecord לבדיקה. ערך ברירת המחדל הוא 0 או 0%.
  • validationPercentage: אחוז נתוני השאילתה שהוקצו לקובצי TFRecord של אימות. ערך ברירת המחדל הוא 0 או 0%.

הרצת התבנית

המסוף

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

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

  5. בתפריט הנפתח Dataflow template (תבנית Dataflow), בוחרים את התבנית BigQuery to TFRecords (מ-BigQuery ל-TFRecords).
  6. בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
  7. לוחצים על הפעלת העבודה.

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/ \
    --region REGION_NAME \
    --parameters \
readQuery=READ_QUERY,\
outputDirectory=OUTPUT_DIRECTORY,\
trainingPercentage=TRAINING_PERCENTAGE,\
testingPercentage=TESTING_PERCENTAGE,\
validationPercentage=VALIDATION_PERCENTAGE,\
outputSuffix=OUTPUT_FILENAME_SUFFIX

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

  • 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
  • READ_QUERY: השאילתה ב-BigQuery שרוצים להריץ
  • OUTPUT_DIRECTORY: קידומת הנתיב ב-Cloud Storage למערכי נתונים של פלט
  • TRAINING_PERCENTAGE: אחוז הפיצול העשרוני של מערך הנתונים לאימון
  • TESTING_PERCENTAGE: אחוז החלוקה העשרוני של מערך נתוני הבדיקה
  • VALIDATION_PERCENTAGE: אחוז הפיצול העשרוני של מערך נתוני האימות
  • OUTPUT_FILENAME_SUFFIX: הסיומת המועדפת של קובץ TensorFlow Record של הפלט

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": {
       "readQuery":"READ_QUERY",
       "outputDirectory":"OUTPUT_DIRECTORY",
       "trainingPercentage":"TRAINING_PERCENTAGE",
       "testingPercentage":"TESTING_PERCENTAGE",
       "validationPercentage":"VALIDATION_PERCENTAGE",
       "outputSuffix":"OUTPUT_FILENAME_SUFFIX"
   },
   "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
  • READ_QUERY: השאילתה ב-BigQuery שרוצים להריץ
  • OUTPUT_DIRECTORY: קידומת הנתיב ב-Cloud Storage למערכי נתונים של פלט
  • TRAINING_PERCENTAGE: אחוז הפיצול העשרוני של מערך הנתונים לאימון
  • TESTING_PERCENTAGE: אחוז החלוקה העשרוני של מערך נתוני הבדיקה
  • VALIDATION_PERCENTAGE: אחוז הפיצול העשרוני של מערך נתוני האימות
  • OUTPUT_FILENAME_SUFFIX: הסיומת המועדפת של קובץ TensorFlow Record של הפלט

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