Halaman ini menjelaskan cara mengintegrasikan Cloud SQL dengan Vertex AI.
Integrasi ini memungkinkan Anda menerapkan model bahasa besar (LLM), yang dihosting di Vertex AI, ke database Cloud SQL untuk SQL Server 2025.
Dengan mengintegrasikan Cloud SQL dengan Vertex AI, Anda dapat menerapkan kemampuan semantik dan prediktif model machine learning (ML) ke data Anda. Integrasi ini memperluas sintaksis SQL dengan fungsi generate embeddings untuk membuat kueri model Anda.
Anda menggunakan fungsi pembuatan embedding sehingga model embedding dapat menerjemahkan perintah teks menjadi vektor numerik. Kemudian, Anda dapat menerapkan embedding vektor ini sebagai input ke jenis data vektor. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Microsoft tentang Penelusuran vektor dan indeks vektor di Mesin Database SQL.
Untuk mengetahui informasi selengkapnya tentang Vertex AI, lihat Pengantar Vertex AI.
Edisi dan versi database yang didukung
Integrasi Vertex AI didukung untuk edisi Cloud SQL Enterprise Plus dan edisi Cloud SQL Enterprise serta untuk semua versi database SQL Server 2025.
Jenis model yang didukung
Integrasi Vertex AI dengan Cloud SQL mendukung endpoint model dari sumber berikut:
- Vertex AI
- Hugging Face
- OpenAI
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Aktifkan Google Cloud API yang diperlukan.
Konsol
- Buka halaman APIs & Services.
- Dari daftar project, pilih project Anda.
- Jika API Library tidak terbuka, pilih Library dari menu navigasi.
Klik API yang ingin Anda aktifkan. Untuk prosedur ini, aktifkan berikut ini:
- Cloud SQL Admin API
- Vertex AI API
- Compute Engine API
- Opsional: Jika menggunakan model pihak ketiga, Secret Manager API diperlukan.
- Setelah memilih setiap API, klik Aktifkan.
gcloud
- Buka Cloud Shell, yang menyediakan akses command line ke resource Google Cloud Anda langsung dari browser.
- Untuk mengaktifkan API yang diperlukan, gunakan perintah
gcloud services enable:gcloud services enable sqladmin.googleapis.com \ aiplatform.googleapis.com \ compute.googleapis.com \ secretmanager.googleapis.com
Perintah ini mengaktifkan API berikut:
- Cloud SQL Admin API
- Vertex AI API
- Compute Engine API
- Opsional: Jika menggunakan model pihak ketiga, maka Secret Manager API diperlukan.
- Berikan izin Identity and Access Management (IAM) kepada akun layanan Cloud SQL untuk mengakses Vertex AI.
- PROJECT_ID: ID project yang memiliki endpoint Vertex AI. Cloud SQL menggunakan endpoint ini untuk mengakses LLM yang dihosting di Vertex AI.
SERVICE_ACCOUNT_EMAIL: alamat email akun layanan Cloud SQL.
Untuk menemukan alamat email ini, gunakan perintah
gcloud sql instances describe:gcloud sql instances describe INSTANCE_NAME | grep EmailAddress
Ganti INSTANCE_NAME dengan nama instance Cloud SQL.
- Pastikan pengguna Cloud SQL yang menggunakan model sematan diberi izin database berikut:
- Untuk mengizinkan pengguna database membuat atau mengubah model, Anda perlu memberikan izin
EXECUTEkepada pengguna Cloud SQL pada prosedur tersimpan berikut:[msdb].gcloudsql_ml_create_external_model: membuat objek model eksternal yang berisi lokasi, metode autentikasi, dan tujuan endpoint inferensi model AI.[msdb].gcloudsql_ml_alter_external_model: memungkinkan Anda mengubah objek model eksternal.[msdb].gcloudsql_ml_drop_external_model: menghapus objek model eksternal dari database.
- Untuk memanggil prosedur tersimpan yang tercantum sebelumnya, Anda memerlukan izin
berikut dalam database target:
CREATE EXTERNAL MODELALTER EXTERNAL MODEL
Untuk mengetahui cara memberikan izin ini, lihat dokumentasi Microsoft tentang perintah dan nomenklatur Buat model eksternal.
Untuk mengetahui informasi tentang izin pengguna super Cloud SQL, lihat Tentang pengguna SQL Server dan prosedur tersimpan.
- Untuk mengizinkan pengguna database membuat atau mengubah model, Anda perlu memberikan izin
- Jika ingin menggunakan model eksternal pihak ketiga, Anda harus memiliki Kunci API yang valid untuk model yang disimpan di lokasi Secret Manager yang dapat diakses oleh instance Cloud SQL.
- Jika menggunakan model eksternal pihak ketiga, instance Cloud SQL harus menggunakan alamat IP publik. Instance IP pribadi tidak dapat mengakses model eksternal pihak ketiga. Akses layanan pribadi dan Private Service Connect hanya didukung dengan integrasi Vertex AI.
gcloud
Untuk menambahkan izin Vertex AI ke akun layanan Cloud SQL untuk project tempat instance Cloud SQL berada, gunakan perintahgcloud projects add-iam-policy-binding:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/aiplatform.user"
Mengaktifkan integrasi database dengan Vertex AI
Untuk mengaktifkan integrasi database dengan Vertex AI, selesaikan langkah-langkah berikut:
- Buat atau perbarui instance Cloud SQL agar instance dapat terintegrasi dengan Vertex AI.
gcloud
Buat instance
Untuk membuat instance Cloud SQL, gunakan perintah
gcloud sql instances create.gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --tier=MACHINE_TYPE \ --region=REGION_NAME \ --enable-google-ml-integration
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance.
- DATABASE_VERSION: versi database untuk instance, seperti
SQLSERVER_2025_ENTERPRISE. - MACHINE_TYPE: jenis mesin untuk instance, seperti
db-perf-optimized-N-8.. - REGION_NAME: region untuk instance, seperti
us-central1.
Perbarui instance
Untuk memperbarui instance, gunakan perintah
gcloud sql instances patch.gcloud sql instances patch INSTANCE_NAME \ --enable-google-ml-integration
REST v1
Buat instance
Gunakan contoh ini untuk membuat instance. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat halaman instances:insert. Untuk mengetahui informasi tentang setelan instance, termasuk nilai yang valid untuk region, lihat Setelan instance.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance.
- INSTANCE_NAME: nama instance.
- REGION_NAME: nama region untuk instance.
- DATABASE_VERSION: string enum versi database, seperti
SQLSERVER_2025_ENTERPRISE. - PASSWORD: sandi untuk pengguna
rootdatabase. - MACHINE_TYPE: string enum jenis (tingkat) mesin, seperti
db-custom-[CPUS]-[MEMORY_MBS]. Untuk mengetahui informasi selengkapnya, lihat Tingkatan mesin. - EDITION_TYPE: edisi Cloud SQL Anda, seperti
ENTERPRISE.
Anda juga harus menyertakan objek enableGoogleMlIntegration dalam permintaan. Tetapkan parameter berikut, jika diperlukan:
enableGoogleMlIntegration: saat parameter ini disetel ketrue, instance Cloud SQL dapat terhubung ke Vertex AI untuk meneruskan permintaan prediksi real-time dan insight ke AI.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2019-09-25T22:19:33.735Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }Perbarui instance
Gunakan contoh ini untuk memperbarui instance. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat halaman instances.patch.
Jika update ini mengubah nilai yang memerlukan proses mulai ulang, Anda akan melihat perintah untuk melanjutkan perubahan atau membatalkan.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": { "enableGoogleMlIntegration": true, } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
Buat instance
Gunakan contoh ini untuk membuat instance. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat halaman instances:insert. Untuk mengetahui informasi tentang setelan instance, termasuk nilai yang valid untuk region, lihat Setelan instance.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance.
- INSTANCE_NAME: nama instance.
- REGION_NAME: nama region untuk instance.
- DATABASE_VERSION: string enum versi database, seperti
SQLSERVER_2025_ENTERPRISE. - PASSWORD: sandi untuk pengguna
rootdatabase. - MACHINE_TYPE: string enum jenis (tingkat) mesin, seperti
db-custom-[CPUS]-[MEMORY_MBS]. Untuk mengetahui informasi selengkapnya, lihat Tingkatan mesin. - EDITION_TYPE: edisi Cloud SQL Anda, seperti
ENTERPRISE.
Anda juga harus menyertakan objek enableGoogleMlIntegration dalam permintaan. Tetapkan parameter berikut, jika diperlukan:
enableGoogleMlIntegration: saat parameter ini disetel ketrue, instance Cloud SQL dapat terhubung ke Vertex AI untuk meneruskan permintaan prediksi real-time dan insight ke AI.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2019-09-25T22:19:33.735Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }Perbarui instance
Gunakan contoh ini untuk memperbarui instance. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat halaman instances.patch.
Jika update ini mengubah nilai yang memerlukan proses mulai ulang, Anda akan melihat perintah untuk melanjutkan perubahan atau membatalkan.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": { "enableGoogleMlIntegration": true, } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Menambahkan izin Secret Manager
Jika Anda ingin menggunakan model dari sumber eksternal, seperti OpenAI atau Hugging Face, Anda harus menyimpan kunci API sumber model di Secret Manager.
Kemudian, Anda perlu memberi instance Cloud SQL akses ke kunci API sumber model di Secret Manager. Untuk mendapatkan akses, jalankan perintah berikut:
SA_NAME=$(gcloud sql instances describe INSTANCE_NAME --format="value(serviceAccountEmailAddress)");
gcloud secrets add-iam-policy-binding SECRET_NAME \
--member="serviceAccount:${SA_NAME}" \
--role="roles/secretmanager.secretAccessor"
Ganti kode berikut:
- INSTANCE_NAME: nama instance Cloud SQL.
- SECRET_NAME: nama secret seperti yang digunakan di Secret Manager.
Objek model eksternal
Untuk mengakses model dari sumber eksternal, Anda perlu membuat objek model untuk digunakan SQL Server. Cloud SQL menyediakan tiga prosedur tersimpan yang memungkinkan Anda membuat, mengubah, dan menghapus objek model eksternal:
gcloudsql_ml_create_external_modelgcloudsql_ml_alter_external_modelgcloudsql_ml_drop_external_model
Membuat model eksternal
Untuk membuat model, jalankan prosedur tersimpan gcloudsql_ml_create_external_model
yang ada di database msdb:
EXECUTE [msdb].[dbo].[gcloudsql_ml_create_external_model] @db = [DB_NAME], @model_name = MODEL_NAME, @model_provider = 'MODEL_PROVIDER', @model = 'MODEL', @model_url = MODEL_URL, @secret_url = SECRET_URL
Ganti kode berikut:
- DB_NAME: database target tempat Anda ingin membuat model eksternal.
- MODEL_NAME: nama model eksternal baru.
- MODEL_PROVIDER: nama penyedia model, seperti salah satu
berikut:
- Vertex AI
- OpenAI
- Hugging Face
- MODEL_URL: URL endpoint model.
- MODEL: model AI yang dipanggil. Contoh,
gemini-embedding-002. - SECRET_URL: jika Vertex AI adalah penyedia
model, parameter ini harus kosong. Jika menggunakan model eksternal, nilai ini
harus merujuk ke lokasi Kunci API Secret Manager. Contoh URL menggunakan format berikut:
https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_NAME/versions/VERSIONGanti kode berikut:
- PROJECT_ID: project ID tempat secret berada.
- SECRET_NAME: nama secret seperti yang digunakan di Secret Manager.
- VERSION: nomor versi secret.
Mengubah model eksternal
Untuk mengubah objek model eksternal, jalankan prosedur tersimpan gcloudsql_ml_alter_external_model
yang ada di database msdb:
EXECUTE [msdb].[dbo].[gcloudsql_ml_alter_external_model] @db = [DB_NAME], @model_name = MODEL_NAME, @model_provider = 'MODEL_PROVIDER', @model = 'MODEL', @model_url = MODEL_URL, @secret_url = SECRET_URL
Ganti kode berikut:
- DB_NAME: database target tempat model yang ingin Anda ubah berada.
- MODEL_NAME: nama model yang ada.
- MODEL_PROVIDER: nama penyedia model, seperti salah satu
berikut:
- Vertex AI
- OpenAI
- Hugging Face
- MODEL_URL: URL endpoint model.
- MODEL: model AI yang dipanggil. Contoh,
gemini-embedding-001. - SECRET_URL: jika Vertex AI adalah penyedia model,
parameter ini harus kosong. Jika menggunakan model eksternal, nilai ini harus merujuk ke lokasi Secret Manager untuk Kunci API. Contoh URL menggunakan
format berikut:
https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_NAME/versions/VERSIONGanti kode berikut:
- PROJECT_ID: project ID tempat secret berada.
- SECRET_NAME: nama secret seperti yang digunakan di Secret Manager.
- VERSION: nomor versi secret.
Menonaktifkan integrasi Vertex AI
Untuk menonaktifkan integrasi Vertex AI pada instance Cloud SQL, jalankan perintah berikut:
gcloud sql instances patch [instance-name] --no-enable-google-ml-integration
Ganti INSTANCE_NAME dengan nama instance Cloud SQL.
Menghapus model eksternal di SQL Server
Untuk menghapus model eksternal dari SQL Server, jalankan prosedur tersimpan gcloudsql_ml_drop_external_model yang ada di database msdb:
EXECUTE [msdb].[dbo].[gcloudsql_ml_drop_external_model] @db = [DB_NAME], @model_name = MODEL_NAME
Ganti kode berikut:
- DB_NAME: database target tempat model eksternal yang ingin Anda hapus berada.
- MODEL_NAME: nama model eksternal yang akan dihapus.
Memanggil model eksternal
Setelah integrasi Vertex AI diaktifkan di instance Cloud SQL, dan objek model dibuat untuk digunakan SQL Server, Anda dapat memanggil fungsi AI_GENERATE_EMBEDDINGS SQL Server untuk membuat embedding vektor untuk data Anda.
Untuk membuat embedding vektor menggunakan model eksternal, jalankan perintah berikut:
SELECT AI_GENERATE_EMBEDDINGS(N'Test Text' USE MODEL MODEL_NAME)
Ganti MODEL_NAME dengan nama model yang ingin Anda gunakan.
Pengguna utama yang menjalankan harus telah diberi izin EXECUTE ON EXTERNAL MODEL
menggunakan peran atau pemberian izin yang sesuai.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Microsoft tentang Pemberian akses model eksternal.
Batasan ukuran model
Beberapa model, seperti gemini-embedding-01, memiliki dimensi output default yang lebih tinggi daripada yang dapat didukung SQL Server untuk vektor float32, yang memiliki maksimum 1.998 dimensi. Jika perlu, Anda harus menggunakan
float16 (fitur pratinjau Microsoft)
untuk jenis dasar vektor, yang menawarkan maksimum 3.996
dimensi vektor, atau parameter dimensi harus diberikan dalam permintaan
AI_GENERATE_EMBEDDINGS untuk mengurangi dimensi.
Untuk mengetahui informasi selengkapnya, lihat Dukungan float presisi setengah dalam jenis data vektor.
Untuk melihat contohnya, lihat berikut ini:
DECLARE @params JSON = N'{"dimensions": "DIMENSIONS"}';
SELECT AI_GENERATE_EMBEDDINGS('This article introduces AI concepts.' USE MODEL MODEL_NAME PARAMETERS @params)
Ganti kode berikut:
- DIMENSIONS: dimensi yang ingin Anda gunakan untuk model, seperti
1536. Nilai ini diterima sebagai string. - MODEL_NAME: nama model yang ingin Anda gunakan.
Memecahkan masalah
Berikut adalah kemungkinan pesan error yang mungkin Anda terima:
| Konteks | Error atau pesan yang diterima | Kemungkinan penyebab |
|---|---|---|
Prosedur CREATE/ALTER |
"Penyedia model yang ditentukan tidak valid." | Penyedia model yang tidak didukung diberikan. |
Prosedur CREATE/ALTER |
"URL rahasia yang ditentukan tidak valid untuk penyedia model ini." | Untuk Vertex AI, URL rahasia harus kosong. Untuk penyedia model lainnya, URL rahasia tidak boleh kosong. |
Prosedur CREATE/ALTER/DROP |
"Nama model yang ditentukan tidak valid." | Kolom nama model wajib diisi. |
Prosedur CREATE/ALTER |
"URL model yang ditentukan tidak valid." | Kolom URL model wajib diisi. |
Prosedur CREATE/ALTER/DROP |
"Nama DB yang ditentukan tidak valid." | Kolom nama DB yang valid wajib diisi. |
Panggilan AI_GENERATE_EMBEDDINGS |
Berbagai kode error, termasuk 400, 403,
404, 405, 500. |
Jika mengalami masalah saat mencoba menjalankan fungsi AI_GENERATE_EMBEDDINGS, hanya kode error yang ditampilkan. Ini adalah batasan Microsoft yang sudah diketahui. |
Panggilan AI_GENERATE_EMBEDDINGS |
"Respons HTTP tidak berisi JSON yang valid." | Kode error yang meminta Anda untuk mencoba lagi, seperti 429
atau 500, ditampilkan dari agen machine learning. Namun,
klien menerima pesan teks ini. Ini adalah batasan Microsoft yang sudah diketahui. |
Kode error
Fungsi AI_GENERATE_EMBEDDINGS hanya memberikan kode error, bukan pesan. Tabel berikut mencantumkan kemungkinan penyebab untuk beberapa kode error:
| Kode error | Kemungkinan penyebab |
|---|---|
400 Bad Request |
|
401 Unauthorized |
Model pihak ketiga tidak memiliki kunci API yang valid. |
403 Forbidden |
|
404 Not Found |
|
405 Method Not Allowed |
Metode selain POST telah diberikan. |
413 Request Body Too Large |
Ukuran permintaan lebih besar dari batas 1 MB. |
429 Too Many Requests |
Error habis dari penyedia model. |
500 Internal Server Error |
|