Mempercepat performa untuk kueri dengan fungsi AI

Akselerasi fungsi AI memungkinkan Anda mengoptimalkan performa saat menjalankan kueri yang menggunakan fungsi AI. Fitur ini memberikan performa yang sama atau lebih baik daripada fungsi berbasis array, tanpa mengharuskan Anda menulis kueri yang kompleks. Untuk mengetahui informasi selengkapnya tentang fungsi AI, lihat Ringkasan fungsi AI.

Akselerasi fungsi AI mendukung fungsi AI berikut:

  • ai.if: Akselerasi hanya berlaku untuk kueri SELECT dengan fungsi dalam klausa WHERE. Fungsi ini mendukung satu fungsi ai.if per pemindaian, dan berfungsi dengan pemindaian heap berurutan, indeks, dan bitmap. Jika kueri berisi beberapa pemindaian tabel—misalnya, pada tabel, relasi, atau Common Table Expression (CTE) yang berbeda, Anda dapat mempercepat satu fungsi ai.if per pemindaian.
  • ai.rank: Akselerasi hanya berlaku untuk kueri SELECT dengan fungsi dalam klausa ORDER BY. Fungsi ini mendukung satu fungsi ai.rank per pemindaian. Jika kueri berisi beberapa pemindaian tabel—misalnya, pada tabel, relasi, atau CTE yang berbeda, Anda dapat mempercepat satu fungsi ai.rank per pemindaian.

Mengaktifkan akselerasi fungsi AI

Untuk mengaktifkan akselerasi fungsi AI, tetapkan flag google_ml_integration.enable_ai_function_acceleration ke on. Flag ini dinonaktifkan secara default dan mengontrol apakah eksekutor kueri diizinkan untuk mengalihkan operasi AI yang memenuhi syarat ke node penerapan fungsi AI untuk akselerasi. Jika tidak ditetapkan atau ditetapkan ke off, semua operasi kueri akan dieksekusi oleh eksekutor PostgreSQL standar.

Anda dapat mengonfigurasi flag ini di tingkat sesi atau instance.

Untuk mengaktifkan akselerasi fungsi AI di tingkat instance, gunakan perintah gcloud alloydb instances update:

gcloud alloydb instances update INSTANCE_ID \
  --database-flags google_ml_integration.enable_ai_function_acceleration=on \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID

Ganti kode berikut:

  • INSTANCE_ID: ID instance yang ingin Anda update.
  • REGION_ID: ID region tempat cluster berada. Untuk mengetahui informasi selengkapnya, lihat Region yang didukung.
  • CLUSTER_ID: ID cluster.
  • PROJECT_ID: ID project.

Untuk mengetahui informasi selengkapnya tentang cara menetapkan flag tingkat instance, lihat Mengonfigurasi flag database.

Memverifikasi akselerasi fungsi AI

Untuk memverifikasi bahwa akselerasi fungsi AI diaktifkan, Anda dapat menggunakan pernyataan EXPLAIN untuk menganalisis kueri.

Memverifikasi akselerasi fungsi AI untuk kueri ai.if

Contoh berikut menunjukkan cara mengaktifkan akselerasi fungsi AI untuk sesi saat ini dan menjalankan kueri menggunakan fungsi ai.if:

SET google_ml_integration.enable_ai_function_acceleration = on;

EXPLAIN (COSTS OFF) SELECT r.name
FROM restaurant_reviews r
WHERE ai.if('Is the following a positive review? Review: '||r.review) AND r.city = 'Los Angeles'
GROUP BY r.name
HAVING count(*) > 20
ORDER BY r.name;

Saat Anda menggunakan pernyataan EXPLAIN untuk menganalisis kueri, paket kueri akan menampilkan node AI Function Apply:

                                       QUERY PLAN                                       
----------------------------------------------------------------------------------------
 GroupAggregate
   Group Key: name
   Filter: (count(*) > 20)
   ->  Sort
         Sort Key: name
         ->  AI Function Apply
               Filter: ai.if((('Is the following a positive review? Review: '::text || review)), NULL::character varying)
               ->  Index Scan using idx_restaurant_reviews_city on restaurant_reviews r
                     Index Cond: ((city)::text = 'Los Angeles'::text)

Memverifikasi akselerasi fungsi AI untuk kueri ai.rank

Contoh berikut menunjukkan cara mengaktifkan akselerasi fungsi AI untuk sesi saat ini dan menjalankan kueri menggunakan fungsi ai.rank:

SET google_ml_integration.enable_ai_function_acceleration = on;

EXPLAIN (COSTS OFF) SELECT r.name, r.review
FROM restaurant_reviews r
WHERE r.city = 'Los Angeles'
ORDER BY ai.rank('Rank these reviews based on how much they emphasize high-quality ingredients. Review: ' || r.review) DESC
LIMIT 50;

Saat Anda menggunakan pernyataan EXPLAIN untuk menganalisis kueri, paket kueri akan menampilkan node AI Function Apply:

                                       QUERY PLAN                                       
----------------------------------------------------------------------------------------
 Limit
  ->  Sort
        Sort Key: (ai.rank(('Rank these reviews based on how much they emphasize high-quality ingredients. Review: ' || r.review'), NULL)) DESC
        ->  AI Function Apply
              ->  Bitmap Heap Scan on restaurant_reviews r
                    Recheck Cond: (city = 'Los Angeles')
                    ->  Bitmap Index Scan on idx_restaurant_reviews_city
                          Index Cond: (city = 'Los Angeles')

Node AIFunctionApply dalam paket kueri menunjukkan bahwa kueri menggunakan akselerasi fungsi AI. Jika node ini tidak ada, kueri menggunakan eksekusi PostgreSQL standar.

Batasan

  • Hanya argumen dasar untuk fungsi yang didukung. Untuk ai.if dan ai.rank, argumen prompt harus berupa referensi kolom atau literal string yang digabungkan dengan referensi kolom. Argumen lainnya harus berupa konstanta sederhana. Contoh argumen prompt yang didukung mencakup hal berikut:
    • ai.if(r.review)
    • ai.if('Is this true? : ' || r.review)
    • ai.rank(r.review)
    • ai.rank('Rate this review: ' || r.review)
  • Hanya kueri SELECT dengan ai.if dalam klausa WHERE atau ai.rank dalam klausa ORDER BY yang didukung.
  • Hanya satu fungsi AI per pemindaian tabel yang didukung.
  • Hanya model Gemini default yang didukung. Untuk mengetahui informasi selengkapnya, lihat Model Gemini. Untuk menggunakan model lain, Anda dapat menetapkan flag google_ml_integration.default_llm_model ke ID model yang ingin Anda gunakan.
  • Fitur ini hanya tersedia di region yang mendukung model gemini-2.5-flash-lite atau region untuk model LLM yang Anda tetapkan menggunakan flag google_ml_integration.default_llm_model. Untuk mengetahui informasi selengkapnya, lihat Region yang didukung.

Langkah berikutnya