En esta página, se describe cómo integrar Cloud SQL en Vertex AI.
Esta integración te permite aplicar modelos de lenguaje grandes (LLM), que se alojan en Vertex AI, a una base de datos de Cloud SQL para SQL Server 2025.
Si integras Cloud SQL en Vertex AI, puedes aplicar el poder semántico y predictivo de los modelos de aprendizaje automático (AA) a tus datos. Esta integración extiende la sintaxis de SQL con la función generate embeddings para consultar tus modelos.
Usas la función de generación de embeddings para que el modelo de embedding pueda traducir instrucciones de texto en vectores numéricos. Luego, puedes aplicar estos embeddings de vectores como entradas a los tipos de datos de vectores. Para obtener más información, consulta la documentación de Microsoft sobre la búsqueda vectorial y los índices vectoriales en el motor de base de datos SQL.
Para obtener más información sobre Vertex AI, consulta Introducción a Vertex AI.
Ediciones y versiones de bases de datos compatibles
La integración de Vertex AI es compatible con las ediciones Enterprise Plus y Enterprise de Cloud SQL y con todas las versiones de la base de datos de SQL Server 2025.
Tipos de modelos admitidos
La integración de Vertex AI con Cloud SQL admite extremos de modelos de las siguientes fuentes:
- Vertex AI
- Hugging Face
- OpenAI
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
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.
- Habilita las Google Cloud APIs necesarias.
Console
- Ve a la página de APIs y servicios.
- Selecciona el proyecto desde la lista de proyectos.
- Si la Biblioteca de API no está abierta, selecciona Biblioteca en el menú de navegación.
Haz clic en las APIs que quieras habilitar. Para este procedimiento, habilita lo siguiente:
- API de Cloud SQL Admin
- La API de Vertex AI
- API de Compute Engine
- Opcional: Si usas un modelo de terceros, se requiere la API de Secret Manager.
- Después de seleccionar cada API, haz clic en Habilitar.
gcloud
- Abre Cloud Shell, que proporciona acceso de línea de comandos a tus recursos de Google Cloud directamente desde el navegador.
- Para habilitar las APIs requeridas, usa el comando
gcloud services enable:gcloud services enable sqladmin.googleapis.com \ aiplatform.googleapis.com \ compute.googleapis.com \ secretmanager.googleapis.com
Este comando habilita las siguientes APIs: - API de Cloud SQL Admin
- La API de Vertex AI
- API de Compute Engine
- Opcional: Si usas un modelo de terceros, se requiere la API de Secret Manager.
- Otorga permisos de Identity and Access Management (IAM) a la cuenta de servicio de Cloud SQL para acceder a Vertex AI.
- PROJECT_ID: Es el ID del proyecto que tiene el extremo de Vertex AI. Cloud SQL usa este extremo para acceder al LLM alojado en Vertex AI.
SERVICE_ACCOUNT_EMAIL: La dirección de correo electrónico de la cuenta de servicio de Cloud SQL.
Para encontrar esta dirección de correo electrónico, usa el comando
gcloud sql instances describe:gcloud sql instances describe INSTANCE_NAME | grep EmailAddress
Reemplaza INSTANCE_NAME por el nombre de la instancia de Cloud SQL.
- Asegúrate de que el usuario de Cloud SQL que trabaja con los modelos de incorporación tenga los siguientes permisos de base de datos:
- Para permitir que un usuario de la base de datos cree o modifique modelos, debes otorgarle al usuario de Cloud SQL el permiso
EXECUTEen los siguientes procedimientos almacenados:[msdb].gcloudsql_ml_create_external_model: Crea un objeto de modelo externo que contiene la ubicación, el método de autenticación y el propósito de un extremo de inferencia de un modelo de IA.[msdb].gcloudsql_ml_alter_external_model: Te permite modificar el objeto del modelo externo.[msdb].gcloudsql_ml_drop_external_model: Quita el objeto del modelo externo de la base de datos.
- Para llamar a los procedimientos almacenados que se mencionaron anteriormente, necesitas los siguientes permisos en la base de datos de destino:
CREATE EXTERNAL MODELALTER EXTERNAL MODEL
Para ver cómo otorgar estos permisos, consulta la documentación de Microsoft sobre el comando y la nomenclatura de Create external model.
Para obtener información sobre los permisos de superusuario de Cloud SQL, consulta Acerca de los usuarios y los procedimientos almacenados de SQL Server.
- Para permitir que un usuario de la base de datos cree o modifique modelos, debes otorgarle al usuario de Cloud SQL el permiso
- Si deseas usar un modelo externo de terceros, debes tener una clave de API válida para el modelo almacenada en una ubicación de Secret Manager a la que pueda acceder la instancia de Cloud SQL.
- Si usas un modelo externo de terceros, la instancia de Cloud SQL debe usar una dirección IP pública. Las instancias de IP privada no pueden acceder a modelos externos de terceros. El acceso privado a servicios y Private Service Connect solo se admiten con la integración de Vertex AI.
gcloud
Para agregar los permisos de Vertex AI a la cuenta de servicio de Cloud SQL para el proyecto en el que se encuentra la instancia de Cloud SQL, usa el comandogcloud projects add-iam-policy-binding:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/aiplatform.user"
Habilita la integración de bases de datos en Vertex AI
Para habilitar la integración de la base de datos con Vertex AI, completa los siguientes pasos:
- Crea o actualiza una instancia de Cloud SQL para que la instancia pueda integrarse en Vertex AI.
gcloud
Crea la instancia
Para crear la instancia de Cloud SQL, usa el comando
gcloud sql instances create.gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --tier=MACHINE_TYPE \ --region=REGION_NAME \ --enable-google-ml-integration
Realiza los siguientes reemplazos:
- INSTANCE_NAME: El nombre de la instancia.
- DATABASE_VERSION: La versión de la base de datos para la instancia, como
SQLSERVER_2025_ENTERPRISE. - MACHINE_TYPE: Es el tipo de máquina para la instancia, como
db-perf-optimized-N-8.. - REGION_NAME: Es la región de la instancia, como
us-central1.
Actualiza la instancia
Para actualizar la instancia, usa el comando
gcloud sql instances patch.gcloud sql instances patch INSTANCE_NAME \ --enable-google-ml-integration
REST v1
Crea la instancia
Usa este ejemplo para crear la instancia. Para ver una lista completa de los parámetros de esta llamada, consulta la página instances:insert. Para obtener información sobre la configuración de las instancias, incluidos los valores válidos para una región, consulta Configuración de instancias.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID o el número del proyecto del proyecto Google Cloud que contiene la instancia.
- INSTANCE_NAME: El nombre de la instancia.
- REGION_NAME: el nombre de la región para la instancia.
- DATABASE_VERSION: Es la cadena de enumeración de la versión de la base de datos, como
SQLSERVER_2025_ENTERPRISE. - PASSWORD: Es la contraseña del usuario
rootde la base de datos. - MACHINE_TYPE: Es la cadena de enumeración del tipo de máquina (nivel), como
db-custom-[CPUS]-[MEMORY_MBS]. Para obtener más información, consulta Niveles de máquinas. - EDITION_TYPE: Tu edición de Cloud SQL, como
ENTERPRISE.
También debes incluir el objeto enableGoogleMlIntegration en la solicitud. Configura los siguientes parámetros, según sea necesario:
enableGoogleMlIntegration: Cuando este parámetro se establece entrue, las instancias de Cloud SQL pueden conectarse a Vertex AI para pasar solicitudes de predicciones en tiempo real y estadísticas a la IA.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" } }Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" }Actualiza la instancia
Usa este ejemplo para actualizar la instancia. Para ver una lista completa de los parámetros de esta llamada, consulta la página instances.patch.
Si una actualización modifica un valor que requiere que la instancia se reinicie, recibirás un mensaje para continuar con el cambio o cancelarlo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID o el número del proyecto del proyecto Google Cloud que contiene la instancia
- INSTANCE_NAME: Es el nombre de la instancia.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": { "enableGoogleMlIntegration": true, } }Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Crea la instancia
Usa este ejemplo para crear la instancia. Para ver una lista completa de los parámetros de esta llamada, consulta la página instances:insert. Para obtener información sobre la configuración de las instancias, incluidos los valores válidos para una región, consulta Configuración de instancias.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID o el número del proyecto del proyecto Google Cloud que contiene la instancia.
- INSTANCE_NAME: El nombre de la instancia.
- REGION_NAME: el nombre de la región para la instancia.
- DATABASE_VERSION: Es la cadena de enumeración de la versión de la base de datos, como
SQLSERVER_2025_ENTERPRISE. - PASSWORD: Es la contraseña del usuario
rootde la base de datos. - MACHINE_TYPE: Es la cadena de enumeración del tipo de máquina (nivel), como
db-custom-[CPUS]-[MEMORY_MBS]. Para obtener más información, consulta Niveles de máquinas. - EDITION_TYPE: Tu edición de Cloud SQL, como
ENTERPRISE.
También debes incluir el objeto enableGoogleMlIntegration en la solicitud. Configura los siguientes parámetros, según sea necesario:
enableGoogleMlIntegration: Cuando este parámetro se establece entrue, las instancias de Cloud SQL pueden conectarse a Vertex AI para pasar solicitudes de predicciones en tiempo real y estadísticas a la IA.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" } }Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" }Actualiza la instancia
Usa este ejemplo para actualizar la instancia. Para ver una lista completa de los parámetros de esta llamada, consulta la página instances.patch.
Si una actualización modifica un valor que requiere que la instancia se reinicie, recibirás un mensaje para continuar con el cambio o cancelarlo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID o el número del proyecto del proyecto Google Cloud que contiene la instancia
- INSTANCE_NAME: Es el nombre de la instancia.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": { "enableGoogleMlIntegration": true, } }Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" }
Agrega permisos de Secret Manager
Si quieres usar un modelo de una fuente externa, como OpenAI o Hugging Face, debes almacenar la clave de API de la fuente del modelo en Secret Manager.
Luego, debes otorgarle a la instancia de Cloud SQL acceso a la clave de API de la fuente del modelo en Secret Manager. Para obtener acceso, ejecuta el siguiente comando:
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"
Reemplaza lo siguiente:
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL.
- SECRET_NAME: Es el nombre del secreto tal como se usa en Secret Manager.
Objetos de modelos externos
Para acceder a un modelo desde una fuente externa, debes crear un objeto de modelo para que lo use SQL Server. Cloud SQL proporciona tres procedimientos almacenados que te permiten crear, modificar y descartar un objeto de modelo externo:
gcloudsql_ml_create_external_modelgcloudsql_ml_alter_external_modelgcloudsql_ml_drop_external_model
Crea un modelo externo
Para crear un modelo, ejecuta el procedimiento almacenado gcloudsql_ml_create_external_model que se encuentra en la base de datos 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
Reemplaza lo siguiente:
- DB_NAME: Es la base de datos de destino en la que deseas que se cree el modelo externo.
- MODEL_NAME: Es el nombre del modelo externo nuevo.
- MODEL_PROVIDER: Es el nombre del proveedor del modelo, como uno de los siguientes:
- Vertex AI
- OpenAI
- Hugging Face
- MODEL_URL: Es la URL del extremo del modelo.
- MODEL: Es el modelo de IA que se invoca. Por ejemplo:
gemini-embedding-002 - SECRET_URL: Si Vertex AI es el proveedor del modelo, este parámetro debe estar vacío. Si se usa un modelo externo, este valor debe hacer referencia a la ubicación de Secret Manager de la clave de API. Una URL de ejemplo usa el siguiente formato:
https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_NAME/versions/VERSIONReemplaza lo siguiente:
- PROJECT_ID: Es el ID del proyecto en el que se encuentra el secreto.
- SECRET_NAME: Es el nombre del secreto tal como se usa en Secret Manager.
- VERSION: Es el número de versión del secreto.
Cómo modificar un modelo externo
Para modificar un objeto de modelo externo, ejecuta el procedimiento almacenado gcloudsql_ml_alter_external_model que se encuentra en la base de datos 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
Reemplaza lo siguiente:
- DB_NAME: Es la base de datos de destino en la que existe el modelo que deseas modificar.
- MODEL_NAME: Es el nombre del modelo existente.
- MODEL_PROVIDER: Es el nombre del proveedor del modelo, como uno de los siguientes:
- Vertex AI
- OpenAI
- Hugging Face
- MODEL_URL: Es la URL del extremo del modelo.
- MODEL: Es el modelo de IA que se invoca. Por ejemplo,
gemini-embedding-001 - SECRET_URL: Si Vertex AI es el proveedor del modelo, este parámetro debe estar vacío. Si se usa un modelo externo, este valor debe hacer referencia a la ubicación de Secret Manager de la clave de API. Una URL de ejemplo usa el siguiente formato:
https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_NAME/versions/VERSIONReemplaza lo siguiente:
- PROJECT_ID: Es el ID del proyecto en el que se encuentra el secreto.
- SECRET_NAME: Es el nombre del secreto tal como se usa en Secret Manager.
- VERSION: Es el número de versión del secreto.
Inhabilita la integración en Vertex AI
Para inhabilitar la integración de Vertex AI en una instancia de Cloud SQL, ejecuta el siguiente comando:
gcloud sql instances patch [instance-name] --no-enable-google-ml-integration
Reemplaza INSTANCE_NAME por el nombre de la instancia de Cloud SQL.
Cómo descartar un modelo externo en SQL Server
Para descartar un modelo externo de SQL Server, ejecuta el procedimiento almacenado gcloudsql_ml_drop_external_model que se encuentra en la base de datos msdb:
EXECUTE [msdb].[dbo].[gcloudsql_ml_drop_external_model] @db = [DB_NAME], @model_name = MODEL_NAME
Reemplaza lo siguiente:
- DB_NAME: Es la base de datos de destino en la que existe el modelo externo que deseas descartar.
- MODEL_NAME: Es el nombre del modelo externo que se descartará.
Invoca un modelo externo
Después de habilitar la integración de Vertex AI en la instancia de Cloud SQL y crear un objeto de modelo para que lo use SQL Server, puedes invocar la función AI_GENERATE_EMBEDDINGS de SQL Server para crear embeddings vectoriales para tus datos.
Para crear embeddings de vectores con el modelo externo, ejecuta el siguiente comando:
SELECT AI_GENERATE_EMBEDDINGS(N'Test Text' USE MODEL MODEL_NAME)
Reemplaza MODEL_NAME por el nombre del modelo que deseas usar.
El usuario principal que ejecuta la acción debe tener permisos de EXECUTE ON EXTERNAL MODEL otorgados con un rol o una concesión adecuados.
Para obtener más información, consulta la documentación de Microsoft sobre External model grants.
Restricciones de tamaño del modelo
Algunos modelos, como gemini-embedding-01, tienen dimensiones de salida predeterminadas más altas de las que SQL Server puede admitir para los vectores float32, que tienen un máximo de 1,998 dimensiones. Cuando sea necesario, debes usar float16 (una función de vista previa de Microsoft) para el tipo base de vector, que ofrece un máximo de 3,996 dimensiones de vector, o bien se debe proporcionar el parámetro de dimensiones en la solicitud de AI_GENERATE_EMBEDDINGS para reducir la dimensionalidad.
Para obtener más información, consulta Compatibilidad con números de punto flotante de media precisión en el tipo de datos vectoriales.
Por ejemplo, consulta lo siguiente:
DECLARE @params JSON = N'{"dimensions": "DIMENSIONS"}';
SELECT AI_GENERATE_EMBEDDINGS('This article introduces AI concepts.' USE MODEL MODEL_NAME PARAMETERS @params)
Reemplaza lo siguiente:
- DIMENSIONS: Son las dimensiones que deseas usar para tu modelo, como
1536. Este valor se acepta como una cadena. - MODEL_NAME: Es el nombre del modelo que deseas usar.
Solucionar problemas
A continuación, se muestran los posibles mensajes de error que puedes recibir:
| Contexto | Error o mensaje recibido | Causa posible |
|---|---|---|
Procedimiento de CREATE/ALTER |
“El proveedor del modelo especificado no es válido”. | Se proporcionó un proveedor de modelos no compatible. |
Procedimiento de CREATE/ALTER |
"La URL secreta especificada no es válida para este proveedor de modelos". | En el caso de Vertex AI, la URL secreta debe estar vacía. En el caso de otros proveedores de modelos, la URL secreta no debe estar vacía. |
Procedimiento de CREATE/ALTER/DROP |
“El nombre del modelo especificado no es válido”. | El nombre del modelo es un campo obligatorio. |
Procedimiento de CREATE/ALTER |
"La URL del modelo especificado no es válida". | La URL del modelo es un campo obligatorio. |
Procedimiento de CREATE/ALTER/DROP |
"El nombre de la base de datos especificado no es válido". | El nombre de la base de datos es un campo obligatorio. |
AI_GENERATE_EMBEDDINGS llamada |
Varios códigos de error, incluidos 400, 403, 404, 405 y 500 |
Si tienes problemas cuando intentas ejecutar la función AI_GENERATE_EMBEDDINGS, solo se devuelven códigos de error. Esta es una limitación conocida de Microsoft. |
AI_GENERATE_EMBEDDINGS llamada |
"La respuesta HTTP no contiene un JSON válido". | El agente de aprendizaje automático devolvió un código de error que te pide que vuelvas a intentarlo, como 429
o 500. Sin embargo, el cliente recibe este mensaje de texto. Esta es una limitación conocida de Microsoft. |
Códigos de error
La función AI_GENERATE_EMBEDDINGS solo proporciona códigos de error, no mensajes. En la siguiente tabla, se enumeran las posibles causas de algunos códigos de error:
| Código de error | Causa posible |
|---|---|
400 Bad Request |
|
401 Unauthorized |
El modelo de terceros no tiene una clave de API válida. |
403 Forbidden |
|
404 Not Found |
|
405 Method Not Allowed |
Se proporcionó un método distinto de POST. |
413 Request Body Too Large |
El tamaño de la solicitud supera el límite de 1 MB. |
429 Too Many Requests |
Se agotó el error del proveedor del modelo. |
500 Internal Server Error |
|