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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/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-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/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: מזהה הפרויקט שבו רוצים להריץ את משימת 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 של הפלט

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