Instrucciones y requisitos de configuración del lab
Protege tu cuenta y tu progreso. Usa siempre una ventana de navegador privada y las credenciales del lab para ejecutarlo.

Configura la búsqueda de vectores en Spanner

Lab 15 minutos universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.

GSP1288

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

Imagina que tus aplicaciones buscan en tu base de datos de Spanner y, además, identifican rápidamente los datos relacionados, incluso si la fase de búsqueda proporcionada no se incluye en el texto almacenado. Esto ahora es posible gracias a la potencia de los embeddings de texto de Vertex AI para realizar búsquedas vectoriales en Spanner.

Spanner es un servicio de bases de datos completamente administrado que ofrece coherencia en las transacciones a escala global y replicación automática síncrona para una alta disponibilidad. Además, puedes aprovechar la funcionalidad de Inteligencia Artificial (IA) en Spanner para realizar tareas como crear aplicaciones de IA generativa y mostrar datos en tu base de datos de Spanner en función de qué tan pertinentes son tus términos de búsqueda específicos.

La búsqueda de vectores es una metodología que se puede usar para encontrar rápidamente elementos similares en función de su significado semántico (en lugar de la coincidencia exacta de palabras clave) y se puede aplicar a muchos tipos de datos, incluidos audio, imágenes, videos y texto. En el caso del texto, la búsqueda de vectores te permite encontrar elementos de texto similares sin que su contenido coincida con el texto o la frase exactos que se usan en la búsqueda.

En este lab, aprenderás los aspectos básicos de la configuración de la búsqueda de vectores en Spanner. Para ello, primero generarás y almacenarás embeddings de texto (vectores que contienen representaciones numéricas del significado semántico del texto) y, luego, usarás esos embeddings de texto para realizar búsquedas de similitud rápidas. Este lab práctico se adaptó del codelab titulado Comienza a usar la Búsqueda de vectores de Spanner. Se usa un conjunto de datos de productos de bicicletas con el objetivo de destacar cómo aprovechar la búsqueda de vectores en Spanner para encontrar los productos más relevantes para una frase de búsqueda sin necesidad de una concordancia exacta en el texto.

Actividades

En este lab, aprenderás a realizar las siguientes tareas:

  • Crear un modelo de embeddings en Spanner y configurarlo en un endpoint de modelo de Vertex AI
  • Crear una tabla y cargar datos en Spanner
  • Generar y almacenar embeddings de texto en Spanner
  • Realizar una búsqueda de vectores en Spanner con embeddings de texto

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón para abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
  7. Haz clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar. Ícono del menú de navegación y campo de búsqueda

Tarea 1: Crea un modelo de embeddings en Spanner y configúralo en un endpoint de modelo de Vertex AI

En este entorno de lab, se aprovisionó una instancia de Spanner llamada cymbal-retail y una base de datos llamada cymbal-bicycles.

En esta tarea, iniciarás el flujo de trabajo general en Spanner creando y configurando el modelo de embeddings que se usa para generar los embeddings de texto, lo que también inicia automáticamente la creación de la cuenta de servicio de Spanner necesaria para tareas posteriores. Específicamente, crearás un modelo de embeddings llamado EmbeddingsModel y lo configurarás en un endpoint para el modelo de embeddings de texto de Vertex AI llamado .

  1. En la consola de Google Cloud, haz clic en el menú de navegación (Ícono del menú de navegación) > Ver todos los productos. En Bases de datos, haz clic en Spanner.

  2. En la página Instancias, haz clic en la instancia llamada Cymbal Retail Spanner Instance para examinar sus detalles.

  3. En Bases de datos, haz clic en la base de datos llamada cymbal-bicycles.

  4. En el menú de Spanner, en Base de datos, haz clic en Spanner Studio.

  5. En la página de Spanner Studio, haz clic en Nueva pestaña del editor de SQL para abrir una nueva ventana de consulta.

  6. Para crear y configurar el modelo de embeddings en un endpoint de modelo de Vertex AI, copia y pega la siguiente consulta en la ventana correspondiente y haz clic en Ejecutar.

CREATE MODEL EmbeddingsModel INPUT( content STRING(MAX), ) OUTPUT( embeddings STRUCT<statistics STRUCT<truncated BOOL, token_count FLOAT32>, values ARRAY<FLOAT32>>, ) REMOTE OPTIONS ( endpoint = '//aiplatform.googleapis.com/projects/{{{project_0.project_id |Project ID}}}/locations/{{{project_0.default_region |Region}}}/publishers/google/models/{{{project_0.startup_script.gemini_embedding_model_id | model_name | disablehighlight }}}' );

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un modelo de embeddings y configurarlo en un endpoint de modelo de Vertex AI

Cuando la consulta se ejecuta correctamente, se muestra un mensaje que dice Actualización completada.

Permanece en Spanner Studio y continúa con la siguiente tarea.

Tarea 2: Crea una tabla nueva y carga datos de los productos

Ahora que creaste y configuraste el modelo de embeddings, necesitas los datos para los que quieres generar los embeddings de texto de búsqueda de vectores.

En esta tarea, crearás una nueva tabla que contenga columnas descriptivas para los productos (como nombres de productos y recuento de inventario) de una empresa ficticia llamada Cymbal Bicycles, junto con una columna adicional para los embeddings de vectores de las descripciones de los productos (que se generarán en la siguiente tarea). Por último, cargarás una muestra de los datos de productos de Cymbal Bicycles en la tabla de Spanner.

  1. En el editor de consultas de Spanner, haz clic en Borrar (en la misma barra de menú que Ejecutar) para quitar la consulta anterior.

  2. Para crear una tabla nueva llamada products, copia y pega la siguiente consulta en la ventana de consultas y haz clic en Ejecutar.

CREATE TABLE products ( categoryId INT64 NOT NULL, productId INT64 NOT NULL, productName STRING(MAX) NOT NULL, productDescription STRING(MAX) NOT NULL, productDescriptionEmbedding ARRAY<FLOAT32>, createTime TIMESTAMP NOT NULL OPTIONS ( allow_commit_timestamp = true ), inventoryCount INT64 NOT NULL, priceInCents INT64, ) PRIMARY KEY(categoryId, productId);

La columna llamada productDescriptionEmbedding es del tipo ARRAY<FLOAT32>, que admite el almacenamiento de los valores de vector que crearás en la siguiente tarea.

Cuando la consulta se ejecuta correctamente, se muestra un mensaje que dice Actualización completada.

  1. Haz clic en Borrar de nuevo (en la misma barra de menú que Ejecutar) para quitar la consulta anterior.

  2. Para cargar datos en la tabla, copia y pega la siguiente consulta en la ventana de consultas y haz clic en Ejecutar.

Ten en cuenta que esta consulta carga una pequeña muestra de productos, pero incluye toda la información necesaria para cada uno de los 10 productos cargados en la tabla.

INSERT INTO products (categoryId, productId, productName, productDescription, createTime, inventoryCount, priceInCents) VALUES (1, 1, "Casco Cymbal Helios", "La seguridad y el estilo se unen en el casco de bicicleta infantil Cymbal. Su diseño ligero, ventilación superior y ajuste regulable garantizan comodidad y protección en cada viaje. Mantén a tu hijo o hija a salvo del sol con Cymbal Helios", PENDING_COMMIT_TIMESTAMP(), 100, 10999), (1, 2, "Cymbal Sprout", "Que el recorrido en bicicleta de tus hijos comience con la Cymbal Sprout, la bicicleta de equilibrio ideal para principiantes de 2 a 4 años. Su estructura liviana, la baja altura del asiento y los neumáticos antipinchazos promueven la estabilidad y la confianza mientras los niños aprenden a mantener el equilibrio y a conducir. Míralos convertirse en aficionados del ciclismo con Cymbal Sprout", PENDING_COMMIT_TIMESTAMP(), 10, 13999), (1, 3, "Cymbal Spark Jr.", "Ligera, llamativa y lista para la aventura, la Spark Jr. es perfecta como primera bicicleta para ciclistas jóvenes (de 5 a 8 años). Su estructura resistente, sus frenos fáciles de usar y los neumáticos resistentes a pinchazos inspiran confianza y garantizan recreación ilimitada. ¡Deja que la chispa del ciclismo se encienda con Cymbal!", PENDING_COMMIT_TIMESTAMP(), 34, 13900), (1, 4, "Cymbal Summit", "Conquistar senderos es pan comido con la bicicleta de montaña Summit. Su marco de aluminio ligero, la suspensión responsiva y los potentes frenos de disco proporcionan un control y una comodidad excepcionales para los ciclistas experimentados que se enfrentan a ascensos rocosos o descensos rápidos. Alcanza nuevas alturas con la Cymbal Summit", PENDING_COMMIT_TIMESTAMP(), 0, 79999), (1, 5, "Cymbal Breeze", "Pasea con estilo y pedalea sin esfuerzo con la bicicleta eléctrica Breeze. Su motor silencioso y su batería de larga duración te permiten conquistar colinas y distancias con facilidad. Disfruta de paseos, viajes diarios o mandados con un impulso de confianza de la Cymbal Breeze", PENDING_COMMIT_TIMESTAMP(), 72, 129999), (1, 6, "Mochila Cymbal Trailblazer", "Lleva todos tus elementos esenciales con estilo en la mochila Trailblazer. Su material resistente al agua, sus múltiples compartimentos y sus cómodas correas mantienen tu equipo organizado y accesible, lo que te permite enfocarte en la aventura. Abre nuevos caminos con Cymbal Trailblazer", PENDING_COMMIT_TIMESTAMP(), 24, 7999), (1, 7, "Luces Cymbal Phoenix", "Ilumina tu entorno y hazte notar con las luces para bicicleta Phoenix. Los potentes LEDs y los múltiples modos de luz garantizan una visibilidad superior, lo que mejora tu seguridad y disfrute durante los paseos de día o de noche. Ilumina tu viaje con Cymbal Phoenix", PENDING_COMMIT_TIMESTAMP(), 87, 3999), (1, 8, "Bombín Cymbal Windstar", Los neumáticos desinflados no son rivales para el bombín Windstar. Su diseño compacto, construcción ligera y capacidad de alta presión hacen que inflar neumáticos sea rápido y sencillo. Vuelve a la ruta en un instante con Cymbal Windstar", PENDING_COMMIT_TIMESTAMP(), 36, 24999), (1, 9,"Multiherramienta Cymbal Odyssey",Prepárate para cualquier desafío con la multiherramienta Odyssey. Este práctico aparato incluye herramientas esenciales como destornilladores, llaves hexagonales y palancas para neumáticos, lo que te permite realizar reparaciones y ajustes menores estés donde estés. ¡Conquista tu viaje con Cymbal Odyssey!", PENDING_COMMIT_TIMESTAMP(), 52, 999), (1, 10,"Botella de agua Cymbal Nomad","Asegura tu hidratación en cada aventura con la botella de agua Nomad. Su diseño elegante, la fabricación sin BPA y la tapa con cierre seguro la convierten en la compañera perfecto para mantenerte tu hidratación y tu motivación en tus aventuras. Hidrátate y explora con Cymbal Nomad", PENDING_COMMIT_TIMESTAMP(), 42, 1299);

Cuando la consulta se ejecuta correctamente, se muestra un mensaje que dice Esta declaración ejecutó correctamente 10 filas y no mostró ninguna fila.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear una tabla nueva y cargar los datos de los productos

Tarea 3: Genera y almacena embeddings de texto para los datos de los productos

Con la creación del modelo de embeddings en la Tarea 1, también iniciaste la creación de la cuenta de servicio de Spanner que se usa para acceder a este a través del endpoint de modelo de Vertex AI.

En esta tarea, primero te asegurarás de que esta cuenta de servicio tenga el rol necesario para acceder al endpoint de Vertex AI. Luego, ejecutarás una consulta para generar los embeddings de las descripciones de los productos y los almacenarás en la tabla products.

Otorga el rol de agente de servicio de la API de Cloud Spanner a la cuenta de servicio de Spanner

  1. En el menú de navegación (Ícono del menú de navegación) de la consola de Google Cloud, selecciona IAM y administración > IAM.

  2. Haz clic en Otorgar acceso.

  3. En Entidades nuevas, ingresa el ID de la cuenta de servicio de Spanner: service-@gcp-sa-spanner.iam.gserviceaccount.com

Nota: Si no ves esta cuenta de servicio, es posible que se necesite más tiempo para que se aprovisione después de la tarea 1. Cierra esta ventana y espera 3 minutos antes de repetir los pasos 2 y 3.
  1. En Seleccionar un rol, busca Agente de servicio de la API de Cloud Spanner con el filtro y selecciónalo para completar el cuadro Rol.

  2. Haz clic en Guardar.

Nota: Si recibes un mensaje que dice Sin cambios: La entidad ya existe en la política, puedes pasar a la siguiente sección sin intentar otorgar el rol de nuevo.

Actualiza la columna productDescriptionEmbedding para almacenar los embeddings de texto generados

Ahora que te aseguraste de que la cuenta de servicio de Spanner tenga el rol adecuado, puedes generar los embeddings de texto para las descripciones de productos y agregarlos a la tabla products.

  1. Vuelve a Spanner Studio y sigue los pasos del 1 a 4 de la tarea 1.

  2. Copia y pega la siguiente consulta en la ventana de consultas para actualizar la columna llamada productDescriptionEmbedding con los embeddings generados y haz clic en Ejecutar.

UPDATE products p1 SET productDescriptionEmbedding = (SELECT embeddings.values from ML.PREDICT(MODEL EmbeddingsModel, (SELECT productDescription as content FROM products p2 where p2.productId=p1.productId))) WHERE categoryId=1; Nota: Si recibes un mensaje de error similar a Se denegó el permiso en el recurso, espera unos minutos para que los permisos que asignaste en los pasos anteriores se propaguen por completo y, luego, vuelve a ejecutar la consulta.

Cuando la consulta se ejecuta correctamente, se muestra un mensaje que dice Tu consulta actualizó 10 filas.

Haz clic en Revisar mi progreso para verificar el objetivo. Generar y almacenar embeddings de texto para los datos de productos

Permanece en Spanner Studio y continúa con la siguiente tarea.

Tarea 4: Realiza una búsqueda de vectores con embeddings de texto en Spanner

Después de generar y almacenar los embeddings de texto para las descripciones de productos, tus datos ya están listos para tu primera búsqueda de vectores en tiempo real.

En esta tarea, ejecutarás una consulta para realizar una búsqueda de similitudes basada en la frase Quiero comprar una bicicleta de principiante para mi hijo de 3 años y se devolverán rápidamente los 5 productos más pertinentes, a pesar de que no haya una concordancia exacta para este texto en los datos de productos.

  1. En el editor de consultas de Spanner, haz clic en Borrar (en la misma barra de menú que Ejecutar) para quitar la consulta anterior.

  2. Para realizar una búsqueda de vectores con los embeddings de texto, copia y pega la siguiente consulta en la ventana de consultas y haz clic en Ejecutar.

SELECT productName, productDescription, inventoryCount, COSINE_DISTANCE( productDescriptionEmbedding, ( SELECT embeddings.values FROM ML.PREDICT( MODEL EmbeddingsModel, (SELECT "Quiero comprar una bicicleta de principiante para mi hijo de 3 años" as content) ) ) ) as distance FROM products WHERE inventoryCount > 0 ORDER BY distance LIMIT 5;

Esta consulta usa los valores de la columna productDescriptionEmbedding para encontrar las 5 filas de la base de datos más similares desde el punto de vista semántico a la frase de búsqueda Quiero comprar una bicicleta de principiante para mi hijo de 3 años.

Ten en cuenta que el embedding para la fase de búsqueda se genera de forma dinámica en la consulta. Si quieres explorar más esta consulta, reemplaza Quiero comprar una bicicleta de principiante para mi hijo de 3 años en el código anterior por un nuevo término de búsqueda de tu elección.

El resultado se ve de la manera siguiente:

productName productDescription inventoryCount distance
Cymbal Sprout Que el recorrido en bicicleta de tus hijos comience con la Cymbal Sprout, la bicicleta de equilibrio ideal para principiantes de 2 a 4 años… 10 0.3094387191860244
Cymbal Spark Jr. Ligera, llamativa y lista para la aventura, la Spark Jr. es perfecta como primera bicicleta para ciclistas jóvenes (de 5 a 8 años)… 34 0.3412342902117166
Casco Cymbal Helios La seguridad y el estilo se unen en el casco de bicicleta infantil Cymbal… 100 0.4197863319656684
Cymbal Breeze Pasea con estilo y pedalea sin esfuerzo con la bicicleta eléctrica Breeze… 72 0.485231776523978
Luces Cymbal Phoenix Ilumina tu entorno y hazte notar con las luces para bicicleta Phoenix… 87 0.5251486508206732

Haz clic en Revisar mi progreso para verificar el objetivo. Realizar una búsqueda de vectores con embeddings de texto en Spanner

¡Felicitaciones!

En este lab, aprendiste a crear un modelo de embeddings en Spanner y configurarlo en un endpoint de modelo de Vertex AI, generar y almacenar embeddings de texto en una tabla de Spanner y realizar una búsqueda de vectores en Spanner con los embeddings de texto almacenados.

Próximos pasos y más información

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 28 de octubre de 2025

Prueba más reciente del lab: 28 de octubre de 2025

Copyright 2026 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usar una ventana de incógnito o de navegación privada es la mejor forma de ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.