תבנית Bigtable ל-JSON

התבנית Bigtable to JSON היא פייפליין שקורא נתונים מטבלה ב-Bigtable וכותב אותם לקטגוריה של Cloud Storage בפורמט JSON.

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

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

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

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

  • bigtableProjectId: המזהה של הפרויקט ב-Google Cloud שמכיל את מופע Bigtable שממנו רוצים לקרוא נתונים.
  • bigtableInstanceId: המזהה של מכונת Bigtable שמכילה את הטבלה.
  • bigtableTableId: המזהה של טבלת Bigtable שממנה רוצים לקרוא.
  • outputDirectory: הנתיב ב-Cloud Storage שבו מאוחסנים קובצי ה-JSON של הפלט. לדוגמה, gs://your-bucket/your-path/.

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

  • filenamePrefix: הקידומת של שם קובץ ה-JSON. לדוגמה, table1-. אם לא מציינים ערך, ברירת המחדל היא part.
  • userOption: הערכים האפשריים הם FLATTEN או NONE. ‫FLATTEN משטחת את השורה לרמה אחת. ‫NONE שומר את השורה כולה כמחרוזת JSON. ברירת המחדל היא NONE.
  • columnsAliases: רשימה מופרדת בפסיקים של עמודות שנדרשות לאינדקס החיפוש של Vertex AI Vector Search. העמודות id ו-embedding נדרשות לחיפוש וקטורי ב-Vertex AI. אפשר להשתמש בסימון fromfamily:fromcolumn;to. לדוגמה, אם העמודות הן rowkey ו-cf:my_embedding, ולעמודה rowkey יש שם שונה משם העמודה להטמעה, מציינים cf:my_embedding;embedding ו-rowkey;id. משתמשים באפשרות הזו רק אם הערך של userOption הוא FLATTEN.
  • bigtableAppProfileId: המזהה של פרופיל האפליקציה ב-Bigtable שבו רוצים להשתמש לייצוא. אם לא מציינים פרופיל אפליקציה, Bigtable משתמש בפרופיל האפליקציה שמוגדר כברירת מחדל במופע: https://cloud.google.com/bigtable/docs/app-profiles#default-app-profile.

הרצת התבנית

המסוף

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

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

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

‫CLI של gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/ \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       bigtableProjectId=BIGTABLE_PROJECT_ID,\
       bigtableInstanceId=BIGTABLE_INSTANCE_ID,\
       bigtableTableId=BIGTABLE_TABLE_ID,\
       filenamePrefix=FILENAME_PREFIX,\

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

  • 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
  • BIGTABLE_PROJECT_ID: מזהה הפרויקט
  • BIGTABLE_INSTANCE_ID: מזהה המופע
  • BIGTABLE_TABLE_ID: מזהה הטבלה
  • FILENAME_PREFIX: הקידומת של קובץ ה-JSON

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": {
     "bigtableProjectId": "BIGTABLE_PROJECT_ID",
     "bigtableInstanceId": "BIGTABLE_INSTANCE_ID",
     "bigtableTableId": "BIGTABLE_TABLE_ID",
     "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "maxWorkers": "10" }
}

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

  • 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
  • BIGTABLE_PROJECT_ID: מזהה הפרויקט
  • BIGTABLE_INSTANCE_ID: מזהה המופע
  • BIGTABLE_TABLE_ID: מזהה הטבלה
  • FILENAME_PREFIX: הקידומת של קובץ ה-JSON

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