תבנית Bigtable לחיפוש וקטורים ב-Vertex AI

התבנית של קבצים מ-Bigtable ל-Vertex AI Vector Search ב-Cloud Storage יוצרת צינור עיבוד נתונים של אצווה שקורא נתונים מטבלה ב-Bigtable וכותב אותם לקטגוריה של Cloud Storage בפורמט JSON. אפשר להשתמש בתבנית הזו להטמעות של וקטורים.

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

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

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

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

  • bigtableProjectId: המזהה של הפרויקט בענן של Google שמכיל את מופע Bigtable שממנו רוצים לקרוא נתונים.
  • bigtableInstanceId: המזהה של מכונת Bigtable שמכילה את הטבלה.
  • bigtableTableId: המזהה של טבלת Bigtable שממנה רוצים לקרוא.
  • outputDirectory: הנתיב ב-Cloud Storage שבו מאוחסנים קובצי ה-JSON של הפלט. לדוגמה, gs://your-bucket/your-path/.
  • idColumn: שם העמודה שמוגדר במלואו שבה מאוחסן המזהה. בפורמט cf:col או _key.
  • embeddingColumn: השם המוגדר במלואו של העמודה שבה מאוחסנים ההטמעות. בפורמט cf:col או _key.

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

  • filenamePrefix: הקידומת של שם קובץ ה-JSON. לדוגמה: table1-. אם לא מציינים ערך, ברירת המחדל היא part.
  • crowdingTagColumn: שם העמודה המלא שבה מאוחסן תג הצפיפות. בפורמט cf:col או _key.
  • embeddingByteSize: גודל הבייט של כל רשומה במערך ההטמעות. לערך float, משתמשים בערך 4. לערך double, משתמשים בערך 8. ברירת המחדל היא 4.
  • allowRestrictsMappings: השמות המלאים של העמודות שמופרדים בפסיקים, שבהן יש להשתמש כמגבלות הרשאה, עם הכינויים שלהן. בפורמט cf:col->alias.
  • denyRestrictsMappings: השמות המלאים של העמודות שמופרדים בפסיקים, שבהן יש להשתמש כמגבלות של דחייה, עם הכינויים שלהן. בפורמט cf:col->alias.
  • intNumericRestrictsMappings: השמות המלאים של העמודות שרוצים להשתמש בהן כ-integer numeric_restricts, עם הכינויים שלהן, מופרדים באמצעות פסיקים. בפורמט cf:col->alias.
  • floatNumericRestrictsMappings: שמות העמודות שמוגדרים במלואם ומופרדים באמצעות פסיקים, שבהם יש להשתמש כ-numeric_restricts מסוג float (4 בייט), עם הכינויים שלהם. בפורמט cf:col->alias.
  • doubleNumericRestrictsMappings: שמות העמודות שמוגדרים במלואם ומופרדים באמצעות פסיקים, שבהם יש להשתמש כ-numeric_restricts כפול (8 בייט), עם הכינויים שלהם. בפורמט cf:col->alias.
  • bigtableAppProfileId: המזהה של פרופיל האפליקציה ב-Cloud Bigtable שישמש לייצוא. ברירת המחדל היא: default.

הפעלת התבנית

המסוף

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

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

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

‫CLI של gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/Cloud_Bigtable_to_Vector_Embeddings \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       bigtableProjectId=BIGTABLE_PROJECT_ID,\
       bigtableInstanceId=BIGTABLE_INSTANCE_ID,\
       bigtableTableId=BIGTABLE_TABLE_ID,\
       filenamePrefix=FILENAME_PREFIX,\
       idColumn=ID_COLUMN,\
       embeddingColumn=EMBEDDING_COLUMN,\

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

  • 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
  • BIGTABLE_PROJECT_ID: מזהה הפרויקט
  • BIGTABLE_INSTANCE_ID: מזהה המכונה
  • BIGTABLE_TABLE_ID: מזהה הטבלה
  • FILENAME_PREFIX: הקידומת של קובץ ה-JSON
  • ID_COLUMN: עמודת המזהה
  • EMBEDDING_COLUMN: עמודת ההטמעות

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/Cloud_Bigtable_to_Vector_Embeddings
{
   "jobName": "JOB_NAME",
   "parameters": {
     "bigtableProjectId": "BIGTABLE_PROJECT_ID",
     "bigtableInstanceId": "BIGTABLE_INSTANCE_ID",
     "bigtableTableId": "BIGTABLE_TABLE_ID",
     "filenamePrefix": "FILENAME_PREFIX",
     "idColumn": "ID_COLUMN",
     "embeddingColumn": "EMBEDDING_COLUMN",
   },
   "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
  • BIGTABLE_PROJECT_ID: מזהה הפרויקט
  • BIGTABLE_INSTANCE_ID: מזהה המכונה
  • BIGTABLE_TABLE_ID: מזהה הטבלה
  • FILENAME_PREFIX: הקידומת של קובץ ה-JSON
  • ID_COLUMN: עמודת המזהה
  • EMBEDDING_COLUMN: עמודת ההטמעות

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