Menghubungkan ke data dari AlloyDB untuk PostgreSQL (Pratinjau)

Anda dapat menghubungkan instance AlloyDB ke Gemini Enterprise, sehingga memungkinkan akses langsung ke data Anda.

Dibandingkan dengan mengimpor dari AlloyDB, menghubungkan memiliki keuntungan sebagai berikut:

  • Menghindari kebutuhan untuk mengimpor, mengindeks, dan menduplikasi data.
  • Keaktualan data maksimal.
  • Tidak ada biaya pengindeksan dan penyimpanan tambahan.
  • Tidak perlu meratakan data terstruktur menjadi rekaman seragam.

Pertimbangkan kerugian menghubungkan berikut dibandingkan dengan mengimpor:

  • Pendekatan ini hanya mendukung kueri terstruktur, bukan kueri semantik atau semi-semantik.
  • Penyiapannya sedikit lebih rumit dibandingkan dengan mengimpor data.

Batasan

Menghubungkan ke AlloyDB memiliki batasan berikut:

  • Gemini Enterprise mendukung kontrol akses pada tingkat objek database, seperti tabel dan kolom, tetapi tidak pada tingkat per pengguna. Semua pengguna yang memiliki akses ke aplikasi Gemini Enterprise Anda dapat melihat data yang sama.
  • Membuat penyimpanan data AlloyDB didukung melalui API, bukan melalui Google Cloud Konsol.

Menyiapkan bahasa alami AI AlloyDB

Konektor ini mengandalkan bahasa alami AI AlloyDB di AlloyDB, yang menerjemahkan kueri bahasa alami ke dalam kueri SQL.

Sebelum menghubungkan, siapkan bahasa alami AI AlloyDB di database Anda menggunakan langkah-langkah di Membuat kueri SQL yang menjawab pertanyaan bahasa alami pertanyaan dalam dokumentasi AlloyDB.

Perhatikan bahwa menambahkan template dalam bahasa alami AI AlloyDB (kumpulan pertanyaan bahasa alami yang dikurasi dengan kueri SQL yang sesuai) sangat berguna untuk kualitas. Saat menambahkan template, Google merekomendasikan hal berikut:

  • Gunakan ORDER BY untuk menghindari non-determinisme. Contoh: SELECT customers.id FROM customers ORDER BY customers.id;.

Menyiapkan autentikasi antara Gemini Enterprise dan AlloyDB

Gemini Enterprise mengakses AlloyDB menggunakan akun layanan khusus dan pengguna database di instance AlloyDB Anda. Dengan pendekatan ini, setiap pengguna Gemini Enterprise dapat melihat data yang sama, tanpa kontrol akses khusus pengguna.

Akun layanan digunakan untuk menghubungkan dan berinteraksi dengan instance AlloyDB Anda. Untuk mengaktifkan hal ini, Anda harus mengonfigurasi setelan Identity and Access Management (IAM) di Google Cloud project tempat instance database Anda berada.

Untuk menyiapkan autentikasi, lakukan hal berikut:

  1. Buka halaman konfigurasi IAM project yang menghosting instance AlloyDB Anda.
  2. Beri peran Pengguna Database Cloud AlloyDB ke principal berikut: service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com

    Ganti PROJECT_NUMBER dengan Google Cloud nomor project tempat Anda menggunakan Gemini Enterprise.

  3. Di instance AlloyDB Anda, buat pengguna DB yang akan digunakan oleh Gemini Enterprise untuk menjalankan kueri SQL.

    Sangat penting untuk memberi pengguna ini akses hanya baca dan hanya untuk tabel, tampilan, dan kolom yang harus dapat diakses dari Gemini Enterprise. Hal ini memastikan bahwa:

    • Kueri dari Gemini Enterprise tidak dapat mengubah atau menghapus data Anda. Gemini Enterprise dirancang hanya untuk membaca data dari database Anda dan tidak mengubah apa pun, tetapi Google tidak dapat sepenuhnya mengecualikan kemungkinan bahwa AI dapat membuat kueri tulis yang tidak diinginkan.

    • Pengguna di Gemini Enterprise hanya dapat melihat data yang seharusnya mereka lihat.

      Contoh:

      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;
      

      Saat menautkan Gemini Enterprise dengan AlloyDB, berikan nama pengguna dan sandi di kolom Pengguna dan Sandi alloydbConnectionConfig.

Menautkan Gemini Enterprise dengan AlloyDB

Untuk menghubungkan instance AlloyDB Anda, ikuti langkah-langkah berikut:

  1. Buat penyimpanan data di Gemini Enterprise dengan detail koneksi AlloyDB Anda menggunakan API, termasuk federatedSearchConfig.alloyDbConfig.

    Contoh berikut:

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

    Ganti kode berikut:

    • PROJECT_ID: ID project tempat Anda menggunakan Gemini Enterprise.
    • LOCATION: Lokasi penyimpanan data Anda. Lokasi ini harus sama dengan instance Gemini Enterprise Anda.

    • DATA_STORE_ID: ID penyimpanan data yang ingin Anda buat. ID ini hanya dapat berisi huruf kecil, digit, garis bawah, dan tanda hubung.

    • DATA_STORE_NAME: nama tampilan penyimpanan data yang ingin Anda buat.

    • INSTANCE_PATH: Jalur instance AlloyDB Anda, dalam format projects/.../locations/.../clusters/.../instances/....

    • DATABASE_NAME: ID database AlloyDB.

    • DATABASE_USER_NAME: ID pengguna database AlloyDB.

    • DATABASE_USER_PASSWORD: sandi pengguna database AlloyDB.

    • NL_CONFIG_ID: ID konfigurasi bahasa alami AI AlloyDB.

  2. Lampirkan penyimpanan data Anda ke aplikasi Gemini Enterprise yang ada, atau buat aplikasi baru dan pilih konektor Anda, dengan mengikuti langkah-langkah di Membuat aplikasi.

  3. Untuk melihat pratinjau tampilan hasil penelusuran setelah aplikasi Anda disiapkan, lihat Melihat pratinjau hasil penelusuran.