Pengelompokan cerdas untuk fungsi AI di AlloyDB untuk PostgreSQL memungkinkan Anda mengoptimalkan performa saat menjalankan kueri SQL yang memanggil model AI. Fungsi ini memberikan performa yang sama atau lebih baik daripada fungsi berbasis array tanpa mengharuskan Anda menulis kueri pengelompokan yang kompleks. Untuk mengetahui informasi selengkapnya tentang fungsi AI, lihat Ringkasan fungsi AI.
Pengelompokan cerdas mendukung fungsi AI berikut:
ai.if: Pengelompokan cerdas hanya berlaku untuk kueriSELECTyang fungsinya berada dalam klausaWHERE. Ekstensi 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: Pengelompokan cerdas hanya berlaku untuk kueriSELECTyang fungsinya berada dalam klausaORDER BY. Fitur 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 pengelompokan cerdas untuk fungsi AI
Untuk mengaktifkan pengelompokan cerdas untuk 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
memindahkan operasi AI yang memenuhi syarat ke node penerapan fungsi AI untuk akselerasi.
Jika tidak disetel atau disetel ke off, semua operasi kueri akan dijalankan oleh eksekutor PostgreSQL standar.
Anda dapat mengonfigurasi flag ini di tingkat sesi atau instance.
Untuk mengaktifkan pengelompokan cerdas untuk 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 perbarui.REGION_ID: ID region tempat cluster berada. Untuk mengetahui informasi selengkapnya, lihat Wilayah 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 pengelompokan cerdas untuk fungsi AI
Untuk memverifikasi bahwa pengelompokan cerdas untuk fungsi AI diaktifkan, Anda dapat menggunakan pernyataan EXPLAIN untuk menganalisis kueri Anda.
Memverifikasi pengelompokan cerdas untuk fungsi AI untuk kueri ai.if
Contoh berikut menunjukkan cara mengaktifkan pengelompokan cerdas untuk 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, rencana 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 pengelompokan cerdas untuk fungsi AI untuk kueri ai.rank
Contoh berikut menunjukkan cara mengaktifkan pengelompokan cerdas untuk 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, rencana 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 rencana kueri menunjukkan bahwa kueri menggunakan pengelompokan cerdas untuk fungsi AI. Jika node ini tidak ada, kueri akan 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. Contoh argumenpromptyang didukung meliputi: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 Google. Untuk menggunakan model lain, Anda dapat menetapkan flag
google_ml_integration.default_llm_modelke ID model yang ingin digunakan. - 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 Wilayah yang didukung.
Langkah berikutnya
- Melakukan kueri SQL cerdas menggunakan fungsi AI.
- Percepat kueri AI menggunakan fungsi yang dioptimalkan.
- Melakukan pemfilteran menggunakan fungsi berbasis array