Connettiti ai dati di AlloyDB per PostgreSQL (anteprima)

Puoi connettere la tua istanza AlloyDB a Gemini Enterprise, consentendo l'accesso in tempo reale ai tuoi dati.

Rispetto all'importazione da AlloyDB, la connessione presenta i seguenti vantaggi:

  • Evita la necessità di importare, indicizzare e duplicare i dati.
  • Aggiornamento dei dati massimo.
  • Nessun costo aggiuntivo per l'indicizzazione e l'archiviazione.
  • Non è necessario appiattire i dati strutturati in record uniformi.

Considera i seguenti svantaggi del collegamento rispetto all'importazione:

  • Questo approccio supporta solo query strutturate, non query semantiche o semisemantiche.
  • La configurazione è leggermente più complessa rispetto all'importazione dei dati.

Limitazioni

La connessione ad AlloyDB presenta le seguenti limitazioni:

  • Gemini Enterprise supporta il controllo dell'accesso a livello di oggetti del database, come tabelle e colonne, ma non a livello di utente. Tutti gli utenti con accesso alla tua app Gemini Enterprise possono visualizzare gli stessi dati.
  • La creazione di un datastore AlloyDB è supportata tramite l'API, non tramite la console Google Cloud .

Configura il linguaggio naturale di AlloyDB AI

Questo connettore si basa sul linguaggio naturale di AlloyDB AI in AlloyDB, che traduce le query in linguaggio naturale in query SQL.

Prima di connetterti, configura il linguaggio naturale di AlloyDB AI nel tuo database seguendo i passaggi descritti in Genera query SQL che rispondono a domande in linguaggio naturale nella documentazione di AlloyDB.

Tieni presente che l'aggiunta di template nel linguaggio naturale di AlloyDB AI (un insieme selezionato di domande in linguaggio naturale con query SQL corrispondenti) è particolarmente utile per la qualità. Quando aggiungi i template, Google consiglia quanto segue:

  • Utilizza ORDER BY per evitare il non determinismo. Ad esempio: SELECT customers.id FROM customers ORDER BY customers.id;.

Configura l'autenticazione tra Gemini Enterprise e AlloyDB

Gemini Enterprise accede ad AlloyDB utilizzando un account di servizio dedicato e un utente del database nella tua istanza AlloyDB. Con questo approccio, ogni utente aziendale di Gemini Enterprise può visualizzare gli stessi dati, senza un controllo degli accessi specifico per l'utente.

Un account di servizio viene utilizzato per connettersi e interagire con l'istanza AlloyDB. Per abilitare questa funzionalità, devi configurare le impostazioni di Identity and Access Management (IAM) nel progetto Google Cloud in cui si trova l'istanza del database.

Per configurare l'autenticazione:

  1. Vai alla pagina di configurazione IAM del progetto che ospita l'istanza AlloyDB.
  2. Concedi il ruolo Cloud AlloyDB Database User alla seguente entità: service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com

    Sostituisci PROJECT_NUMBER con il numero di progetto Google Cloud in cui utilizzi Gemini Enterprise.

  3. Nella tua istanza AlloyDB, crea un utente DB che verrà utilizzato da Gemini Enterprise per eseguire query SQL.

    È molto importante concedere a questo utente l'accesso di sola lettura e solo per tabelle, viste e colonne che devono essere accessibili da Gemini Enterprise. In questo modo:

    • Le query di Gemini Enterprise non possono modificare o eliminare i tuoi dati. Gemini Enterprise è progettato per leggere solo i dati del tuo database e non modificare nulla, ma Google non può escludere completamente la possibilità che l'AI possa generare query di scrittura indesiderate.

    • Gli utenti di Gemini Enterprise possono vedere solo i dati che sono autorizzati a vedere.

      Ad esempio:

      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;
      

      Quando colleghi Gemini Enterprise ad AlloyDB, fornisci il nome utente e la password nei campi Utente e Password di alloydbConnectionConfig.

Collega Gemini Enterprise ad AlloyDB

Per connettere l'istanza AlloyDB:

  1. Crea un datastore in Gemini Enterprise con i dettagli della connessione ad AlloyDB utilizzando l'API, tra cui federatedSearchConfig.alloyDbConfig.

    Il seguente esempio:

    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"]
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui utilizzi Gemini Enterprise.
    • LOCATION: la località del datastore. Deve essere la stessa località della tua istanza di Gemini Enterprise.

    • DATA_STORE_ID: l'ID del datastore che vuoi creare. Questo ID può contenere solo lettere minuscole, cifre, trattini bassi e trattini.

    • DATA_STORE_NAME: il nome visualizzato del datastore che vuoi creare.

    • INSTANCE_PATH: il percorso dell'istanza AlloyDB, nel formato projects/.../locations/.../clusters/.../instances/....

    • DATABASE_NAME: l'ID del database AlloyDB.

    • DATABASE_USER_NAME: l'ID dell'utente del database AlloyDB.

    • DATABASE_USER_PASSWORD: la password dell'utente del database AlloyDB.

    • NL_CONFIG_ID: l'ID della configurazione del linguaggio naturale di AlloyDB AI.

  2. Collega il datastore a un'app Gemini Enterprise esistente o crea una nuova app e seleziona il connettore seguendo i passaggi descritti in Crea un'app.

  3. Per visualizzare l'anteprima dell'aspetto dei risultati di ricerca dopo la configurazione dell'app, consulta Visualizza l'anteprima dei risultati di ricerca.