ייבוא מ-Bigtable

כדי להטמיע נתונים מ-Bigtable, צריך לבצע את השלבים הבאים כדי ליצור מאגר נתונים ולהטמיע נתונים באמצעות ה-API.

הגדרת הגישה ל-Bigtable

כדי לתת ל-Gemini Enterprise גישה לנתוני Bigtable בפרויקט אחר, פועלים לפי השלבים הבאים:

  1. מחליפים את המשתנה PROJECT_NUMBER במספר הפרויקט ב-Gemini Enterprise, ואז מעתיקים את התוכן של בלוק הקוד הזה. זהו המזהה של חשבון השירות שלך ב-Gemini Enterprise:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
    
  2. נכנסים לדף IAM & Admin.

    IAM & Admin

  3. בדף IAM & Admin, עוברים לפרויקט Bigtable ולוחצים על Grant Access.

  4. בשדה New principals, מזינים את מזהה חשבון השירות של המכונה ובוחרים את התפקיד Bigtable > Bigtable Reader.

  5. לוחצים על Save.

  6. חוזרים לפרויקט ב-Gemini Enterprise.

בשלב הבא, עוברים לקטע ייבוא נתונים מ-Bigtable.

ייבוא נתונים מ-Bigtable

REST

כדי ליצור מאגר נתונים ולהטמיע נתונים מ-Bigtable באמצעות שורת הפקודה:

  1. יוצרים מאגר נתונים.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
    }'
    

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

    • ‫PROJECT_ID: מזהה הפרויקט.
    • ‫DATA_STORE_ID: המזהה של מאגר הנתונים. המזהה יכול להכיל רק אותיות קטנות, ספרות, קווים תחתונים ומקפים.
    • ‫DISPLAY_NAME: השם המוצג של מאגר הנתונים. יכול להיות שההודעה הזו תוצג במסוף Google Cloud .
  2. ייבוא נתונים מ-Bigtable.

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
      -d '{
        "bigtableSource ": {
          "projectId": "BIGTABLE_PROJECT_ID",
          "instanceId": "INSTANCE_ID",
          "tableId": "TABLE_ID",
          "bigtableOptions": {
            "keyFieldName": "KEY_FIELD_NAME",
            "families": {
              "key": "KEY",
              "value": {
                "fieldName": "FIELD_NAME",
                "encoding": "ENCODING",
                "type": "TYPE",
                "columns": [
                  {
                    "qualifier": "QUALIFIER",
                    "fieldName": "FIELD_NAME",
                    "encoding": "COLUMN_ENCODING",
                    "type": "COLUMN_VALUES_TYPE"
                  }
                ]
              }
             }
             ...
          }
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

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

    • ‫PROJECT_ID: מזהה הפרויקט ב-Gemini Enterprise.
    • ‫DATA_STORE_ID: המזהה של מאגר הנתונים. המזהה יכול להכיל רק אותיות קטנות, ספרות, קווים תחתונים ומקפים.
    • ‫BIGTABLE_PROJECT_ID: מזהה הפרויקט ב-Bigtable.
    • ‫INSTANCE_ID: המזהה של המכונה ב-Bigtable.
    • ‫TABLE_ID: המזהה של הטבלה ב-Bigtable.
    • ‫KEY_FIELD_NAME: אופציונלי אבל מומלץ. שם השדה שבו צריך להשתמש לערך של מפתח השורה אחרי ההטמעה ב-Gemini Enterprise.
    • ‫KEY: חובה. ערך מחרוזת של המפתח של קבוצת העמודות.
    • ‫ENCODING: אופציונלי. מצב הקידוד של הערכים כשהסוג הוא לא STRING.אפשר לשנות את זה בעמודה ספציפית על ידי הוספת העמודה הזו ל-columns וציון קידוד בשבילה.
    • ‫COLUMN_TYPE: אופציונלי. סוג הערכים בקבוצת העמודות הזו.
    • ‫QUALIFIER: חובה. מזהה העמודה.
    • ‫FIELD_NAME: אופציונלי אבל מומלץ. שם השדה של העמודה הזו אחרי ההטמעה ב-Gemini Enterprise.
    • ‫COLUMN_ENCODING: אופציונלי. מצב הקידוד של הערכים בעמודה ספציפית, כשהסוג הוא לא STRING.
    • ‫RECONCILIATION_MODE: אופציונלי. הערכים הם FULL ו-INCREMENTAL. ברירת המחדל היא INCREMENTAL. אם מציינים את הערך INCREMENTAL, מתבצע רענון מצטבר של הנתונים מ-Bigtable למאגר הנתונים. הפעולה הזו מבצעת פעולת עדכון או הוספה (upsert), שמוסיפה מסמכים חדשים ומחליפה מסמכים קיימים במסמכים מעודכנים עם אותו מזהה. אם מציינים את הערך FULL, מתבצעת הגדרה מחדש מלאה של המסמכים במאגר הנתונים. במילים אחרות, מסמכים חדשים ומעודכנים מתווספים למאגר הנתונים, ומסמכים שלא נמצאים ב-Bigtable מוסרים ממאגר הנתונים. מצב FULL שימושי אם רוצים למחוק באופן אוטומטי מסמכים שכבר לא צריך.
    • ‫AUTO_GENERATE_IDS: אופציונלי. מציינים אם ליצור מזהי מסמכים באופן אוטומטי. אם הערך הוא true, מזהי המסמכים נוצרים על סמך גיבוב (hash) של המטען הייעודי (payload). חשוב לזכור שמזהי המסמכים שנוצרו לא בהכרח יישארו עקביים בכמה פעולות ייבוא. אם אתם יוצרים מזהים באופן אוטומטי בכמה פעולות ייבוא, Google ממליצה מאוד להגדיר את reconciliationMode לערך FULL כדי לשמור על מזהי מסמכים עקביים.

      צריך לציין את autoGenerateIds רק כש-bigquerySource.dataSchema מוגדר ל-custom. אחרת, תוחזר השגיאה INVALID_ARGUMENT. אם לא מציינים את autoGenerateIds או מגדירים אותו כ-false, צריך לציין את idField. אחרת, ייבוא המסמכים ייכשל.

    • ‫ID_FIELD: אופציונלי. מציינים אילו שדות הם מזהי המסמכים.

השלבים הבאים