תבנית 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/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records \
    --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/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית. אפשר למצוא את הגרסה הזו בתיקיית ההורה המתאימה עם התאריך בדלי – gs://dataflow-templates/
  • ‫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/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
{
   "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: מזהה הפרויקט שבו רוצים להריץ את משימת Google Cloud Dataflow
  • ‫JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • ‫VERSION: הגרסה של התבנית שרוצים להשתמש בה

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

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית. אפשר למצוא את הגרסה הזו בתיקיית ההורה המתאימה עם התאריך בדלי – gs://dataflow-templates/
  • ‫LOCATION: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • ‫READ_QUERY: השאילתה ב-BigQuery שרוצים להריץ
  • ‫OUTPUT_DIRECTORY: קידומת הנתיב ב-Cloud Storage למערכי נתונים של פלט
  • ‫TRAINING_PERCENTAGE: פיצול האחוזים העשרוני של מערך הנתונים לאימון
  • ‫TESTING_PERCENTAGE: אחוז החלוקה העשרוני של מערך נתוני הבדיקה
  • ‫VALIDATION_PERCENTAGE: אחוז הפיצול העשרוני של מערך נתוני האימות
  • ‫OUTPUT_FILENAME_SUFFIX: הסיומת המועדפת של קובץ TensorFlow Record של הפלט

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