תבנית AstraDB ל-BigQuery

התבנית AstraDB to BigQuery היא צינור (pipeline) של אצווה שקורא רשומות מ-AstraDB וכותב אותן ל-BigQuery.

אם טבלת היעד לא קיימת ב-BigQuery, צינור הנתונים יוצר טבלה עם הערכים הבאים:

  • ה-Dataset ID, שעובר בירושה ממרחב המפתחות של Cassandra.
  • השדה Table ID, שמתקבל בירושה מהטבלה של Cassandra.

הסכמה של טבלת היעד נגזרת מטבלת המקור של Cassandra.

  • List ו-Set ממופים לשדות REPEATED ב-BigQuery.
  • Map ממופים לשדות RECORD ב-BigQuery.
  • כל שאר הסוגים ממופים לשדות BigQuery עם הסוגים המתאימים.
  • אין תמיכה בסוגי נתונים של טאפל ובסוגים מוגדרים על ידי המשתמש (UDT) ב-Cassandra.

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

  • חשבון AstraDB עם טוקן

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

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

  • astraToken: ערך האסימון או מזהה המשאב הסודי. לדוגמה, AstraCS:abcdefghij.
  • astraDatabaseId: המזהה הייחודי (UUID) של מסד הנתונים. לדוגמה, cf7af129-d33a-498f-ad06-d97a6ee6eb7.
  • astraKeyspace: השם של מרחב המפתחות של Cassandra בתוך מסד הנתונים של Astra.
  • astraTable: השם של הטבלה במסד הנתונים של Cassandra. לדוגמה, my_table.

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

  • astraQuery: השאילתה שמשמשת לסינון שורות במקום לקרוא את כל הטבלה.
  • astraDatabaseRegion: אם לא מציינים אזור, נבחר אזור ברירת מחדל, וזה שימושי במסדי נתונים עם מספר אזורים.
  • minTokenRangesCount: המספר המינימלי של פיצולים שמשמשים להפצת השאילתה.
  • outputTableSpec: מיקום הטבלה ב-BigQuery שאליה ייכתב הפלט. בפורמט <PROJECT_ID>:<DATASET_NAME>.<TABLE_NAME>. הסכימה של הטבלה צריכה להתאים לאובייקטים של הקלט.

הפעלת התבנית

המסוף

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

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

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

gcloud

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

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/AstraDB_To_BigQuery \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       astraToken=ASTRA_TOKEN,\
       astraDatabaseId=ASTRA_DATABASE_ID,\
       astraKeyspace=ASTRA_KEYSPACE,\
       astraTable=ASTRA_TABLE,\

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

  • 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
  • ASTRA_TOKEN: אסימון Astra
  • ASTRA_DATABASE_ID: מזהה מסד הנתונים
  • ASTRA_KEYSPACE: מרחב המפתחות של Cassandra
  • ASTRA_TABLE: טבלת Cassandra

API

כדי להריץ את התבנית באמצעות API בארכיטקטורת REST, שולחים בקשת HTTP POST. מידע נוסף על ה-API ועל היקפי ההרשאות שלו זמין במאמר projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "astraToken": "ASTRA_TOKEN",
       "astraDatabaseId": "ASTRA_DATABASE_ID",
       "astraKeyspace": "ASTRA_KEYSPACE",
       "astraTable": "ASTRA_TABLE",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/AstraDB_To_BigQuery",
     "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
  • ASTRA_TOKEN: אסימון Astra
  • ASTRA_DATABASE_ID: מזהה מסד הנתונים
  • ASTRA_KEYSPACE: מרחב המפתחות של Cassandra
  • ASTRA_TABLE: טבלת Cassandra

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