התחברות לנתונים מ-AlloyDB ל-PostgreSQL (תצוגה מקדימה)

אתם יכולים לקשר את מופע AlloyDB ל-Gemini Enterprise כדי לקבל גישה בזמן אמת לנתונים שלכם.

בהשוואה לייבוא מ-AlloyDB, לחיבור יש את היתרונות הבאים:

  • אין צורך לייבא, ליצור אינדקסים ולשכפל נתונים.
  • עדכניות נתונים מקסימלית.
  • אין עלויות נוספות של יצירת אינדקס ואחסון.
  • אין צורך לשטח נתונים מובנים לרשומות אחידות.

כדאי לשקול את החסרונות הבאים של חיבור לעומת ייבוא:

  • הגישה הזו תומכת רק בשאילתות מובנות, ולא בשאילתות סמנטיות או חצי-סמנטיות.
  • ההגדרה קצת יותר מורכבת בהשוואה לייבוא הנתונים.

מגבלות

יש מגבלות על חיבור ל-AlloyDB:

  • ‫Gemini Enterprise תומך בבקרת גישה ברמת האובייקטים של מסד הנתונים, כמו טבלאות ועמודות, אבל לא ברמת המשתמש. כל המשתמשים שיש להם גישה לאפליקציית Gemini Enterprise יכולים לראות את אותם נתונים.
  • אפשר ליצור מאגר נתונים של AlloyDB באמצעות API, ולא באמצעות מסוף Google Cloud .

הגדרת שפה טבעית ב-AlloyDB AI

המחבר הזה מסתמך על שפה טבעית ב-AlloyDB AI ב-AlloyDB, שמתרגמת שאילתות בשפה טבעית לשאילתות SQL.

לפני שמתחברים, צריך להגדיר שפה טבעית ב-AlloyDB AI במסד הנתונים באמצעות השלבים שמפורטים במאמר יצירת שאילתות SQL שעונות על שאלות בשפה טבעית במסמכי התיעוד של AlloyDB.

הערה: הוספת תבניות בשפה טבעית ב-AlloyDB AI (קבוצה שנבחרה בקפידה של שאלות בשפה טבעית עם שאילתות SQL תואמות) שימושית במיוחד לשיפור האיכות. כשמוסיפים תבניות, Google ממליצה על הפעולות הבאות:

  • כדאי להשתמש ב-ORDER BY כדי להימנע מאי-דטרמיניזם. לדוגמה: SELECT customers.id FROM customers ORDER BY customers.id;.

    אם אתם מבחינים בתשובה באיכות נמוכה ב-Gemini Enterprise לשאלה ספציפית.

הגדרת אימות בין Gemini Enterprise לבין AlloyDB

‫Gemini Enterprise ניגש ל-AlloyDB באמצעות חשבון שירות ייעודי ומשתמש במסד נתונים במופע AlloyDB. בגישה הזו, כל משתמש ב-Gemini Enterprise יכול לראות את אותם נתונים, בלי בקרת גישה ספציפית למשתמש.

חשבון שירות משמש לחיבור לאינטראקציה עם מופע AlloyDB. כדי להפעיל את האפשרות הזו, צריך להגדיר את ההגדרות של ניהול הזהויות והרשאות הגישה (IAM) בפרויקט Google Cloud שבו נמצא מופע מסד הנתונים.

כדי להגדיר אימות:

  1. עוברים לדף ההגדרות של IAM בפרויקט שמארח את מופע AlloyDB.
  2. מקצים את התפקיד Cloud AlloyDB Database User (משתמש במסד נתונים של Cloud AlloyDB) למשתמש הראשי הבא: service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com

    מחליפים את PROJECT_NUMBER במספר הפרויקט שבו אתם משתמשים ב-Gemini Enterprise. Google Cloud

  3. במכונת AlloyDB, יוצרים משתמש במסד הנתונים ש-Gemini Enterprise ישתמש בו כדי להריץ שאילתות SQL.

    חשוב מאוד להעניק למשתמש הזה הרשאת קריאה בלבד, ורק לטבלאות, לתצוגות ולעמודות שצריכות להיות נגישות מ-Gemini Enterprise. כך מוודאים ש:

    • שאילתות מ-Gemini Enterprise לא יכולות לשנות או למחוק את הנתונים שלכם. ‫Gemini Enterprise נועד לקרוא נתונים רק מהמסד שלכם ולא לשנות שום דבר, אבל Google לא יכולה לשלול לחלוטין את האפשרות שה-AI ייצור שאילתות כתיבה לא מכוונות.

    • משתמשים ב-Gemini Enterprise יכולים לראות רק את הנתונים שהם אמורים לראות.

      לדוגמה:

      CREATE ROLE USER_NAME WITH LOGIN PASSWORD 'PASSWORD';
      GRANT SELECT ON TABLE "public"."TABLE_NAME_1" TO USER_NAME;
      GRANT SELECT ON TABLE "public"."TABLE_NAME_2" TO USER_NAME;
      

      כשמקשרים את Gemini Enterprise ל-AlloyDB, צריך להזין את שם המשתמש והסיסמה בשדות User (משתמש) ו-Password (סיסמה) של alloydbConnectionConfig.

קישור של Gemini Enterprise ל-AlloyDB

כדי לחבר את מופע AlloyDB:

  1. יוצרים מאגר נתונים ב-Gemini Enterprise עם פרטי החיבור ל-AlloyDB באמצעות ה-API, כולל federatedSearchConfig.alloyDbConfig.

    בדוגמה הבאה:

    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/LOCATION/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" -d '{
      "displayName": "DATA_STORE_NAME",
      "federatedSearchConfig": {
        "alloyDbConfig": {
          "alloydbConnectionConfig": {
            "instance": "INSTANCE_PATH",
            "database": "DATABASE_NAME",
            "user": "DATABASE_USER_NAME",
            "password": "DATABASE_USER_PASSWORD",
            "authMode": "AUTH_MODE_SERVICE_ACCOUNT"
          },
          "alloydb_ai_nl_config": { "nlConfigId": "NL_CONFIG_ID" }
        }
      },
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"]
    }'
    

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

    • PROJECT_ID: מזהה הפרויקט שבו אתם משתמשים ב-Gemini Enterprise.
    • LOCATION: המיקום של מאגר הנתונים. המיקום הזה צריך להיות זהה למיקום של מופע Gemini Enterprise שלכם.

    • DATA_STORE_ID: המזהה של מאגר הנתונים שרוצים ליצור. המזהה יכול להכיל רק אותיות קטנות, ספרות, קווים תחתונים ומקפים.

    • DATA_STORE_NAME: השם המוצג של מאגר הנתונים שרוצים ליצור.

    • INSTANCE_PATH: הנתיב למופע AlloyDB, בפורמט projects/.../locations/.../clusters/.../instances/....

    • DATABASE_NAME: המזהה של מסד הנתונים ב-AlloyDB.

    • DATABASE_USER_NAME: המזהה של משתמש מסד הנתונים של AlloyDB.

    • DATABASE_USER_PASSWORD: הסיסמה של משתמש מסד הנתונים ב-AlloyDB.

    • NL_CONFIG_ID: המזהה של ההגדרה של השפה הטבעית ב-AlloyDB AI.

  2. מצרפים את מאגר הנתונים לאפליקציית Gemini Enterprise קיימת, או יוצרים אפליקציה חדשה ובוחרים את המחבר, לפי השלבים במאמר יצירת אפליקציה.

  3. כדי לראות תצוגה מקדימה של תוצאות החיפוש אחרי הגדרת האפליקציה, אפשר לעיין במאמר בנושא תצוגה מקדימה של תוצאות החיפוש.