תבנית Bigtable ל-Cloud Storage SequenceFile

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

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

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

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

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

  • ‫bigtableProject: המזהה של הפרויקט ב-Google Cloud שמכיל את מופע Bigtable שממנו רוצים לקרוא נתונים.
  • ‫bigtableInstanceId: המזהה של מכונת Bigtable שמכילה את הטבלה.
  • ‫bigtableTableId: המזהה של טבלת Bigtable לייצוא.
  • ‫destinationPath: הנתיב ב-Cloud Storage שבו הנתונים נכתבים. לדוגמה, gs://your-bucket/your-path/.
  • ‫filenamePrefix: הקידומת של שם הקובץ SequenceFile. לדוגמה, output-.

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

  • ‫bigtableAppProfileId: המזהה של פרופיל האפליקציה ב-Bigtable שבו רוצים להשתמש לייצוא. אם לא מציינים פרופיל אפליקציה, Bigtable משתמש בפרופיל האפליקציה שמוגדר כברירת מחדל במופע: https://cloud.google.com/bigtable/docs/app-profiles#default-app-profile.
  • ‫bigtableStartRow: השורה שממנה מתחיל הייצוא. ברירת המחדל היא השורה הראשונה.
  • ‫bigtableStopRow: השורה שבה הייצוא יופסק. ברירת המחדל היא השורה האחרונה.
  • ‫bigtableMaxVersions: מספר הגרסאות המקסימלי של התאים. ברירת המחדל היא: 2147483647.
  • ‫bigtableFilter: מחרוזת מסנן. למידע נוסף: http://hbase.apache.org/book.html#thrift. ברירת המחדל היא ריקה.
  • ‫bigtableReadRpcTimeoutMs: הזמן הקצוב לתפוגת RPC של קריאה ב-Bigtable, באלפיות השנייה.
  • ‫bigtableReadRpcAttemptTimeoutMs: הזמן הקצוב לתפוגה של ניסיון קריאה של RPC ב-Bigtable, באלפיות השנייה.
  • ‫bigtableMaxAttempts: המספר המקסימלי של ניסיונות חוזרים ללקוח Bigtable.
  • ‫bigtableReadPartialRowTimeoutMs: משך הזמן שסריקה יכולה להימשך בלי לקבל תגובה, באלפיות השנייה, לפני שהיא מבוטלת ומנסים אותה שוב.

הרצת התבנית

המסוף

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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile \
    --region REGION_NAME \
    --parameters \
bigtableProject=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
bigtableAppProfileId=APPLICATION_PROFILE_ID,\
destinationPath=DESTINATION_PATH,\
filenamePrefix=FILENAME_PREFIX

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

  • ‫JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • ‫VERSION: הגרסה של התבנית שרוצים להשתמש בה

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

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית. אפשר למצוא את הגרסה הזו בתיקיית ההורה המתאימה עם התאריך בדלי – gs://dataflow-templates/
  • ‫REGION_NAME: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • ‫BIGTABLE_PROJECT_ID: המזהה של Google Cloud הפרויקט של מופע Bigtable שרוצים לקרוא ממנו נתונים
  • ‫INSTANCE_ID: המזהה של מופע Bigtable שמכיל את הטבלה
  • ‫TABLE_ID: המזהה של טבלת Bigtable לייצוא
  • ‫APPLICATION_PROFILE_ID: המזהה של פרופיל האפליקציה ב-Bigtable שבו ישתמשו לייצוא
  • ‫DESTINATION_PATH: הנתיב ב-Cloud Storage שבו הנתונים נכתבים, לדוגמה, gs://mybucket/somefolder
  • ‫FILENAME_PREFIX: הקידומת של שם הקובץ SequenceFile, לדוגמה, output-

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_Bigtable_to_GCS_SequenceFile
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "destinationPath": "DESTINATION_PATH",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "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
  • ‫BIGTABLE_PROJECT_ID: המזהה של Google Cloud הפרויקט של מופע Bigtable שרוצים לקרוא ממנו נתונים
  • ‫INSTANCE_ID: המזהה של מופע Bigtable שמכיל את הטבלה
  • ‫TABLE_ID: המזהה של טבלת Bigtable לייצוא
  • ‫APPLICATION_PROFILE_ID: המזהה של פרופיל האפליקציה ב-Bigtable שבו ישתמשו לייצוא
  • ‫DESTINATION_PATH: הנתיב ב-Cloud Storage שבו הנתונים נכתבים, לדוגמה, gs://mybucket/somefolder
  • ‫FILENAME_PREFIX: הקידומת של שם הקובץ SequenceFile, לדוגמה, output-

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