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 kueriSELECTdengan fungsi dalam klausaWHERE. Fungsi ini mendukung satu fungsiai.ifper 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 fungsiai.ifper pemindaian.ai.rank: Akselerasi hanya berlaku untuk kueriSELECTdengan fungsi dalam klausaORDER BY. Fungsi ini mendukung satu fungsiai.rankper pemindaian. Jika kueri berisi beberapa pemindaian tabel—misalnya, pada tabel, relasi, atau CTE yang berbeda, Anda dapat mempercepat satu fungsiai.rankper 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_IDGanti 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.ifdanai.rank, argumenpromptharus berupa referensi kolom atau literal string yang digabungkan dengan referensi kolom. Argumen lainnya harus berupa konstanta sederhana. Contoh argumenpromptyang 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
SELECTdenganai.ifdalam klausaWHEREatauai.rankdalam klausaORDER BYyang 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_modelke ID model yang ingin Anda gunakan. - Fitur ini hanya tersedia di region yang mendukung model
gemini-2.5-flash-liteatau region untuk model LLM yang Anda tetapkan menggunakan flaggoogle_ml_integration.default_llm_model. Untuk mengetahui informasi selengkapnya, lihat Region yang didukung.
Langkah berikutnya
- Menjalankan kueri SQL cerdas menggunakan fungsi AI.
- Mempercepat kueri AI menggunakan fungsi yang dioptimalkan.
- Melakukan pemfilteran menggunakan fungsi berbasis array