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

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

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

gcloud

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

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates/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/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית. אפשר למצוא את הגרסה הזו בתיקיית ההורה המתאימה עם התאריך בדלי – gs://dataflow-templates/
  • ‫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/VERSION/flex/AstraDB_To_BigQuery",
     "environment": { "maxWorkers": "10" }
  }
}

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

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

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