התבנית לייצוא קבצים מ-Spanner לחיפוש וקטורים ב-Vertex AI ב-Cloud Storage יוצרת צינור להעברת נתונים באצווה שמייצא נתוני הטבעות וקטוריות מטבלה ב-Spanner ל-Cloud Storage בפורמט JSON. משתמשים בפרמטרים של התבנית כדי לציין את תיקיית Cloud Storage שאליה רוצים לייצא את הטמעות הווקטורים.
התיקייה ב-Cloud Storage מכילה את רשימת הקבצים שיוצאו .json, שמייצגים את הטמעות הווקטורים בפורמט שנתמך על ידי אינדקס החיפוש הווקטורי של Vertex AI.
מידע נוסף זמין במאמר בנושא פורמט ומבנה של נתוני קלט.
הדרישות לגבי צינורות עיבוד נתונים
- מסד הנתונים ב-Spanner חייב להתקיים.
- צריכה להיות קטגוריה של Cloud Storage שאליה יועברו הנתונים.
- בנוסף לתפקידים בניהול הזהויות והרשאות הגישה (IAM) שנדרשים להפעלת משימות Dataflow, אתם צריכים את תפקידי ה-IAM הנדרשים כדי לקרוא את נתוני Spanner ולכתוב ל-bucket ב-Cloud Storage.
פרמטרים של תבניות
פרמטרים נדרשים
- spannerProjectId: מזהה הפרויקט של מופע Spanner.
- spannerInstanceId: המזהה של מכונת Spanner שממנה מייצאים את הטמעות הווקטורים.
- spannerDatabaseId: המזהה של מסד הנתונים של Spanner שממנו רוצים לייצא את הטמעות הווקטורים.
- spannerTable: הטבלה ב-Spanner שממנה רוצים לקרוא.
- spannerColumnsToExport: רשימה מופרדת בפסיקים של העמודות הנדרשות לאינדקס החיפוש של Vertex AI Vector Search. העמודות 'מזהה' ו'הטמעה' הן עמודות חובה ב-Vector Search. אם שמות העמודות לא תואמים למבנה הקלט של אינדקס החיפוש הווקטורי ב-Vertex AI, צריך ליצור מיפויים של עמודות באמצעות שמות חלופיים. אם שמות העמודות לא תואמים לפורמט שנדרש ב-Vertex AI, צריך להשתמש בסימון from:to. לדוגמה, אם יש לכם עמודות בשמות id ו-my_embedding, צריך לציין id, my_embedding:embedding.
- gcsOutputFolder: תיקיית Cloud Storage שאליה ייכתבו קובצי הפלט. הנתיב חייב להסתיים בקו נטוי. לדוגמה,
gs://your-bucket/folder1/. - gcsOutputFilePrefix: הקידומת של שם הקובץ לכתיבת קובצי פלט. לדוגמה,
vector-embeddings.
פרמטרים אופציונליים
- spannerHost: נקודת הקצה של Spanner שאליה מתקשרים בתבנית. ערך ברירת המחדל הוא https://batch-spanner.googleapis.com. לדוגמה,
https://batch-spanner.googleapis.com. - spannerVersionTime: אם ההגדרה הזו מוגדרת, היא מציינת את השעה שבה צריך לקחת את גרסת מסד הנתונים. הערך הוא מחרוזת בפורמט התאריך RFC-3339 בזמן תקופת UNIX. לדוגמה:
1990-12-31T23:59:60Z. חותמת הזמן צריכה להיות בעבר, וחלים עליה מגבלות על חותמת הזמן (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness). אם לא מוגדרת חובה, נעשה שימוש בחובה חזקה (https://cloud.google.com/spanner/docs/timestamp-bounds#strong) כדי לקרוא את הנתונים האחרונים. ברירת המחדל היאempty. לדוגמה,1990-12-31T23:59:60Z. - spannerDataBoostEnabled: אם הערך מוגדר ל-
true, התבנית משתמשת ב-Spanner on-demand compute. משימת הייצוא פועלת במשאבי מחשוב עצמאיים שלא משפיעים על עומסי העבודה הנוכחיים של Spanner. השימוש באפשרות הזו כרוך בחיובים נוספים ב-Spanner. מידע נוסף זמין במאמר בנושא סקירה כללית של Spanner Data Boost (https://cloud.google.com/spanner/docs/databoost/databoost-overview). ברירת המחדל:false. - spannerPriority: העדיפות של הבקשה לקריאות ל-Spanner. הערכים המותרים הם
HIGH,MEDIUMו-LOW. ערך ברירת המחדל הואMEDIUM.
הרצת התבנית
המסוף
- עוברים לדף Create job from template (יצירת משימה מתבנית) ב-Dataflow. כניסה לדף Create job from template
- בשדה שם המשימה, מזינים שם ייחודי למשימה.
- אופציונלי: בשדה Regional endpoint (נקודת קצה אזורית), בוחרים ערך מהתפריט הנפתח. אזור ברירת המחדל הוא
us-central1.רשימת האזורים שבהם אפשר להריץ משימת Dataflow מופיעה במאמר בנושא מיקומי Dataflow.
- בתפריט הנפתח Dataflow template (תבנית Dataflow), בוחרים בתבנית Spanner to Vertex AI Vector Search files on Cloud Storage (קובצי Spanner לחיפוש וקטורים ב-Vertex AI ב-Cloud Storage).
- בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
- לוחצים על הפעלת העבודה.
gcloud
במעטפת או בטרמינל, מריצים את התבנית:
gcloud dataflow jobs run JOB_NAME \ --gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/ \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ spannerProjectId=SPANNER_PROJECT_ID,\ spannerInstanceId=SPANNER_INSTANCE_ID,\ spannerDatabaseId=SPANNER_DATABASE_ID,\ spannerTable=SPANNER_TABLE,\ spannerColumnsToExport=SPANNER_COLUMNS_TO_EXPORT,\ gcsOutputFolder=GCS_OUTPUT_FOLDER,\ gcsOutputFilePrefix=GCS_OUTPUT_FILE_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 -
SPANNER_PROJECT_ID: מזהה הפרויקט ב-Spanner -
SPANNER_INSTANCE_ID: מזהה מכונת Spanner -
SPANNER_DATABASE_ID: מזהה מסד הנתונים של Spanner -
SPANNER_TABLE: טבלת Spanner -
SPANNER_COLUMNS_TO_EXPORT: העמודות לייצוא מטבלת Spanner -
GCS_OUTPUT_FOLDER: תיקיית Cloud Storage שאליה ייצאו הקבצים -
GCS_OUTPUT_FILE_PREFIX: הקידומת של קובצי הפלט ב-Cloud Storage
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": { "spannerProjectId": "SPANNER_PROJECT_ID", "spannerInstanceId": "SPANNER_INSTANCE_ID", "spannerDatabaseId": "SPANNER_DATABASE_ID", "spannerTable": "SPANNER_TABLE", "spannerColumnsToExport": "SPANNER_COLUMNS_TO_EXPORT", "gcsOutputFolder": "GCS_OUTPUT_FOLDER", "gcsOutputFilePrefix": "GCS_OUTPUT_FILE_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 -
SPANNER_PROJECT_ID: מזהה הפרויקט ב-Spanner -
SPANNER_INSTANCE_ID: מזהה מכונת Spanner -
SPANNER_DATABASE_ID: מזהה מסד הנתונים של Spanner -
SPANNER_TABLE: טבלת Spanner -
SPANNER_COLUMNS_TO_EXPORT: העמודות לייצוא מטבלת Spanner -
GCS_OUTPUT_FOLDER: תיקיית Cloud Storage שאליה ייצאו הקבצים -
GCS_OUTPUT_FILE_PREFIX: הקידומת של קובצי הפלט ב-Cloud Storage
המאמרים הבאים
- מידע נוסף על תבניות Dataflow
- כאן אפשר לעיין ברשימת התבניות ש-Google סיפקה.