תבנית טקסט מ-Spanner ל-Cloud Storage

תבנית הטקסט Spanner to Cloud Storage היא צינור להעברת נתונים באצוות שקורא נתונים מטבלה ב-Spanner וכותב אותם ב-Cloud Storage כקובצי טקסט בפורמט CSV.

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

  • טבלת הקלט של Spanner צריכה להתקיים לפני שמריצים את צינור הנתונים.

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

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

  • spannerTable: טבלת Spanner שממנה יקראו הנתונים.
  • spannerProjectId: המזהה של הפרויקט בענן של Google שמכיל את מסד הנתונים של Spanner שממנו רוצים לקרוא נתונים.
  • spannerInstanceId: מזהה המכונה של הטבלה המבוקשת.
  • spannerDatabaseId: מזהה מסד הנתונים של הטבלה המבוקשת.
  • textWritePrefix: התחילית של הנתיב ב-Cloud Storage שמציינת את המקום שבו הנתונים נכתבים. לדוגמה, gs://mybucket/somefolder/.

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

  • csvTempDirectory: הנתיב ב-Cloud Storage שבו נכתבים קובצי CSV זמניים. לדוגמה, gs://your-bucket/your-path.
  • spannerPriority: העדיפות של הבקשה (https://cloud.google.com/spanner/docs/reference/rest/v1/RequestOptions) לקריאות ל-Spanner. הערכים האפשריים הם HIGH,‏ MEDIUM ו-LOW. ערך ברירת המחדל הוא MEDIUM.
  • spannerHost: נקודת הקצה של Cloud Spanner שאליה מתבצעת קריאה בתבנית. היא משמשת לבדיקה בלבד. לדוגמה, https://batch-spanner.googleapis.com. ברירת המחדל היא: https://batch-spanner.googleapis.com.
  • spannerSnapshotTime: חותמת הזמן שמתאימה לגרסה של מסד הנתונים של Spanner שממנה רוצים לקרוא. חותמת הזמן צריכה להיות בפורמט UTC Zulu Time של RFC 3339 (https://tools.ietf.org/html/rfc3339). חותמת הזמן צריכה להיות בעבר, וחלים עליה מגבלות על חותמת הזמן (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness). לדוגמה, 1990-12-31T23:59:60Z. ברירת המחדל היא ריק.
  • dataBoostEnabled: מגדירים את הערך ל-true כדי להשתמש במשאבי החישוב של Spanner Data Boost להרצת העבודה עם השפעה כמעט אפסית על תהליכי העבודה של Spanner OLTP. אם הערך הוא true, נדרשת הרשאה לניהול זהויות והרשאות גישה (IAM) spanner.databases.useDataBoost. מידע נוסף זמין במאמר בנושא סקירה כללית של Data Boost ‏ (https://cloud.google.com/spanner/docs/databoost/databoost-overview). ברירת המחדל היא: false.

הפעלת התבנית

המסוף

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

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

  5. בתפריט הנפתח Dataflow template (תבנית של העברת נתונים), בוחרים באפשרות the Cloud Spanner to Text Files on Cloud Storage template.
  6. בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
  7. לוחצים על הפעלת העבודה.

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Spanner_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
spannerProjectId=SPANNER_PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/

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

  • 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
  • SPANNER_PROJECT_ID: מזהה הפרויקט של מסד הנתונים של Spanner שממנו רוצים לקרוא נתונים Google Cloud
  • DATABASE_ID: מזהה מסד הנתונים של Spanner
  • BUCKET_NAME: שם הקטגוריה של Cloud Storage
  • INSTANCE_ID: מזהה מכונת Spanner
  • TABLE_ID: מזהה טבלת Spanner

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/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "SPANNER_PROJECT_ID",
       "spannerDatabaseId": "DATABASE_ID",
       "spannerInstanceId": "INSTANCE_ID",
       "spannerTable": "TABLE_ID",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "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
  • SPANNER_PROJECT_ID: מזהה הפרויקט של מסד הנתונים של Spanner שממנו רוצים לקרוא נתונים Google Cloud
  • DATABASE_ID: מזהה מסד הנתונים של Spanner
  • BUCKET_NAME: שם הקטגוריה של Cloud Storage
  • INSTANCE_ID: מזהה מכונת Spanner
  • TABLE_ID: מזהה טבלת Spanner

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