GSP1049
Descripción general
Cloud Spanner es el servicio de base de datos relacional de Google, completamente administrado y con escalabilidad horizontal. Clientes de servicios financieros, juegos, venta minorista y muchas otras industrias confían en él para ejecutar sus cargas de trabajo más exigentes, en las que la coherencia y la disponibilidad a gran escala son fundamentales.
En este lab, explorarás varias formas de cargar datos en Cloud Spanner y crear una copia de seguridad de tu base de datos.
Actividades
- Insertar datos con DML
- Insertar datos a través de una biblioteca cliente
- Insertar datos por lotes a través de una biblioteca cliente
- Cargar datos con Dataflow
- Crear una copia de seguridad de tu base de datos
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
-
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
-
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.
-
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.
-
Haz clic en Siguiente.
-
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.
-
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.
-
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.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
-
Haz clic en Activar Cloud Shell
en la parte superior de la consola de Google Cloud.
-
Haz clic para avanzar por las siguientes ventanas:
- Continúa en la ventana de información de Cloud Shell.
- Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
- Haz clic en Autorizar.
Resultado:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project
Resultado:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.
Tarea 1: Explora la instancia
Durante la implementación, se crearon una instancia, una base de datos y una tabla de Cloud Spanner por ti.
- En la consola, abre el menú de navegación (
) > Ver todos los productos. En la sección Bases de datos, haz clic en Spanner.
El nombre de la instancia es banking-instance. Haz clic en ella para explorar las bases de datos.
La base de datos asociada se llama banking-db.
Haz clic en ella para explorarla. Verás que ya hay una tabla llamada Customer.
Haz clic en ella y podrás revisar el esquema.
- La tabla está vacía en este momento. Regresa a la página de descripción general de
banking-db. En el menú de la izquierda, haz clic en Spanner Studio y, luego, ejecuta el siguiente comando:
SELECT * FROM Customer;
- No se devuelven resultados.
Tarea 2: Inserta datos con DML
La forma más sencilla de insertar datos en Spanner es a través de DML. Con Cloud Shell y gcloud, puedes ejecutar cualquier sentencia DML, incluida INSERT.
- En Cloud Shell, ejecuta el siguiente comando:
gcloud spanner databases execute-sql banking-db --instance=banking-instance \
--sql="INSERT INTO Customer (CustomerId, Name, Location) VALUES ('bdaaaa97-1b4b-4e58-b4ad-84030de92235', 'Richard Nelson', 'Ada Ohio')"
- Regresa a la consola y, en el menú de la izquierda, haz clic en Descripción general. Ve a la tabla Customer y selecciona Data. Verás la fila que acabas de insertar.
Como se mencionó antes, puedes usar gcloud para ejecutar cualquier comando DML. Consulta la documentación de DML y Spanner.
Por supuesto, cargar una base de datos fila por fila no es muy eficiente.
Tarea 3: Inserta datos a través de una biblioteca cliente
La forma óptima de acceder a Spanner es a través de una interfaz programática. Hay una amplia variedad de bibliotecas cliente, incluidas las de C++, C#, Go, Java, Node.js, PHP, Python y Ruby.
- En Cloud Shell, ingresa el siguiente comando para invocar el editor de texto Nano y crear un nuevo archivo de configuración vacío llamado insert.py.
nano insert.py
- Pega el bloque de código que se indica a continuación.
from google.cloud import spanner
from google.cloud.spanner_v1 import param_types
INSTANCE_ID = "banking-instance"
DATABASE_ID = "banking-db"
spanner_client = spanner.Client()
instance = spanner_client.instance(INSTANCE_ID)
database = instance.database(DATABASE_ID)
def insert_customer(transaction):
row_ct = transaction.execute_update(
"INSERT INTO Customer (CustomerId, Name, Location)"
"VALUES ('b2b4002d-7813-4551-b83b-366ef95f9273', 'Shana Underwood', 'Ely Iowa')"
)
print("{} record(s) inserted.".format(row_ct))
database.run_in_transaction(insert_customer)
-
Presiona Ctrl + X para salir de Nano, Y para confirmar la actualización y, luego, Intro para guardar los cambios.
-
Ejecuta el código de Python.
python3 insert.py
- Actualiza la consola de Cloud o haz clic en un elemento diferente en el menú de la izquierda y, luego, vuelve a hacer clic en Data. Verás la nueva fila en tu base de datos.
Al igual que con gcloud, puedes ejecutar cualquier sentencia DML desde las bibliotecas cliente. Podrás encontrar varios ejemplos para los distintos lenguajes en la documentación.
Este método es más flexible que cargar datos con gcloud, pero igual tiene limitaciones cuando se carga una fuente que contiene una gran cantidad de filas.
- Haz clic en Revisar mi progreso para verificar el objetivo.
Insertar datos a través de una biblioteca cliente
Tarea 4: Inserta datos por lotes a través de una biblioteca cliente
Una forma más óptima de cargar datos en Spanner es hacerlo en lotes. Todas las bibliotecas cliente admiten la carga por lotes. En este ejemplo, se usa Python.
- En Cloud Shell, ingresa el siguiente comando para invocar el editor de texto Nano y crear un nuevo archivo de configuración vacío llamado batch_insert.py.
nano batch_insert.py
- Pega el bloque de código que se indica a continuación.
from google.cloud import spanner
from google.cloud.spanner_v1 import param_types
INSTANCE_ID = "banking-instance"
DATABASE_ID = "banking-db"
spanner_client = spanner.Client()
instance = spanner_client.instance(INSTANCE_ID)
database = instance.database(DATABASE_ID)
with database.batch() as batch:
batch.insert(
table="Customer",
columns=("CustomerId", "Name", "Location"),
values=[
('edfc683f-bd87-4bab-9423-01d1b2307c0d', 'John Elkins', 'Roy Utah'),
('1f3842ca-4529-40ff-acdd-88e8a87eb404', 'Martin Madrid', 'Ames Iowa'),
('3320d98e-6437-4515-9e83-137f105f7fbc', 'Theresa Henderson', 'Anna Texas'),
('6b2b2774-add9-4881-8702-d179af0518d8', 'Norma Carter', 'Bend Oregon'),
],
)
print("Rows inserted")
-
Presiona Ctrl + X para salir de Nano, Y para confirmar la actualización y, luego, Intro para guardar los cambios.
-
Ejecuta el código de Python.
python3 batch_insert.py
- Vuelve a la consola de Cloud y actualiza la página para ver los nuevos datos que acabas de insertar.
El método por lotes es más eficiente, ya que se ejecuta como una única solicitud. Solo se necesita un recorrido de ida y vuelta entre el cliente y el servidor, lo que reduce la latencia.
Sin embargo, este es un método muy lento y que consume muchos recursos para cargar datos.
- Haz clic en Revisar mi progreso para verificar el objetivo.
Insertar datos por lotes a través de una biblioteca cliente
Tarea 5: Carga datos con Dataflow
Dataflow es un servicio de Google Cloud para el procesamiento de datos de transmisión y por lotes a gran escala. Dataflow usa varios trabajadores para ejecutar el procesamiento de datos en paralelo. La forma en que se procesan los datos se define con canalizaciones que transforman los datos desde su origen (fuentes) hasta su destino (receptores).
Hay conectores para Spanner que te permiten conectar una base de datos como una fuente o un receptor en Dataflow.
Para cargar grandes cantidades de datos, puedes usar la potencia distribuida sin servidores de Dataflow para leer datos de una fuente (por ejemplo, un archivo CSV en Google Cloud Storage) y cargarlos en tu base de datos de Spanner con un conector receptor.
- Para prepararte para el trabajo de Dataflow, ejecuta estos comandos en Cloud Shell para crear un bucket en tu proyecto y una carpeta con un archivo vacío en su interior.
gsutil mb gs://{{{project_0.project_id|Project ID}}}
touch emptyfile
gsutil cp emptyfile gs://{{{project_0.project_id|Project ID}}}/tmp/emptyfile
- Para asegurarte de que se establezcan las APIs y los permisos adecuados, ejecuta el siguiente bloque de código en Cloud Shell.
gcloud services disable dataflow.googleapis.com --force
gcloud services enable dataflow.googleapis.com
-
En la consola, abre el menú de navegación (
) > Ver todos los productos. En la sección Analytics, haz clic en Dataflow.
-
En la parte superior de la pantalla, haz clic en Crear trabajo a partir de una plantilla.
-
Coloca los siguientes valores en la plantilla:
-
Desplázate hacia abajo en el selector de plantillas de Dataflow y verás los diferentes planos que puedes usar con Dataflow. Por supuesto, también puedes crear tus propias canalizaciones personalizadas con el SDK de Beam.
Existen dos tipos principales de plantillas:
-
De transmisión, que crearán una canalización para los datos que fluyen y se procesan de forma continua (por ejemplo, los pedidos en línea de un sitio web).
-
Por lotes, que procesarán conjuntos de datos que tienen un principio y un final (por ejemplo, archivos almacenados en Google Cloud Storage).
En tu situación, cargarás datos en la base de datos bancaria de Spanner desde un archivo CSV con más de 150,000 filas.
-
Selecciona la plantilla De archivos de texto en Cloud Storage a Cloud Spanner.
-
Coloca los siguientes valores en la plantilla:
| Elemento |
Valor |
| ID de la instancia de Cloud Spanner |
banking-instance |
| ID de la base de datos de Cloud Spanner |
banking-db |
| Archivo de manifiesto de importación de texto |
spls/gsp1049/manifest.json |
El formato del archivo manifest.json se explica en el instructivo de esta plantilla (puedes acceder a él haciendo clic en Abrir instructivo justo arriba de los campos de entrada de los parámetros).
El archivo de manifiesto debe almacenarse en un bucket de Google Cloud Storage que Dataflow pueda leer y al que pueda acceder. Este es el contenido de manifest.json para el lab:
{
"tables": [
{
"table_name": "Customer",
"file_patterns": [
"gs://spls/gsp1049/Customer_List.csv"
],
"columns": [
{"column_name" : "CustomerId", "type_name" : "STRING" },
{"column_name" : "Name", "type_name" : "STRING" },
{"column_name" : "Location", "type_name" : "STRING" }
]
}
]
}
El archivo de manifiesto especifica la tabla, el nombre y el tipo de las columnas (en el orden en que aparecen en el archivo CSV), así como el archivo CSV en sí, que también se almacena en un bucket de Google Cloud Storage.
Este es el aspecto del archivo CSV:
9d238899-8348-4642-9c00-77dc4481145b,Nicole Anderson,Ada Ohio
360ecaa6-9ec3-4fa0-81a5-3b0dc629e1fa,Ellen Richardson,Ada Ohio
8ee6c2ea-923b-45db-8d51-7f8e7a117af0,Wendy Daniel,Ada Ohio
1d7112cc-c1ee-414f-9325-95c97f9a25d3,Virginia Beasley,Ada Ohio
...
- En el parámetro Ubicación temporal, ingresa el siguiente valor:
{{{project_0.project_id|Project ID}}}/tmp
-
Expande Parámetros opcionales.
-
Desmarca la opción Usar el tipo de máquina predeterminado.
-
En De uso general, selecciona lo siguiente:
- Serie: E2
- Tipo de máquina: e2-medium (2 CPU virtuales y 4 GB de memoria)
-
Haz clic en Ejecutar trabajo para iniciar la canalización.
-
El proceso tardará entre 12 y 16 minutos. Verás que Dataflow pasa por varias etapas. En la primera, inicia los trabajadores y analiza la canalización desde la plantilla. Luego, leerá el archivo de manifiesto y comenzará a procesar el archivo CSV.
Nota: Si tu canalización falla con un error relacionado con nodos trabajadores que no se aprovisionan, crea un nuevo trabajo con el mismo nombre desde la misma plantilla y parte desde el paso 4. Esta vez, elige un extremo regional diferente en Estados Unidos. Por ejemplo, si en el paso 5 se indica "us-east4" como el extremo regional, prueba con "us-east1" en tu segundo intento.
Espera a que Dataflow finalice el procesamiento antes de continuar. Cuando se complete, tendrá el estado Sin errores.
-
Vuelve a Spanner seleccionándolo en el menú de la izquierda en la consola de Cloud. Ve a la tabla Customer y selecciona Data. Verás todas las filas nuevas que se cargaron con Dataflow.
-
Regresa a la página de descripción general de banking-db. En el menú de la izquierda, haz clic en Spanner Studio y ejecuta el siguiente comando para ver la cantidad total de filas en la tabla Customer:
SELECT COUNT(*) FROM Customer;
Con las plantillas de Dataflow, es fácil (y rápido) cargar grandes cantidades de datos. Puedes cargar volcados de otras bases de datos y cargar no solo archivos CSV, sino también Avro, siguiendo el mismo procedimiento. Incluso puedes ejecutar el proceso al revés, usando tu base de datos de Spanner como fuente en Dataflow para exportar los datos en un archivo CSV o Avro.
- Haz clic en Revisar mi progreso para verificar el objetivo.
Cargar datos con Dataflow
Tarea 6: Crea una copia de seguridad de tu base de datos
Usar Dataflow como se explicó anteriormente es una forma de crear copias de seguridad de tus datos. Sin embargo, Spanner tiene su propia herramienta para copias de seguridad.
Puedes crear una copia de seguridad de una base de datos de Spanner desde la consola de Cloud, las bibliotecas cliente o con los comandos de gcloud. Consulta los vínculos anteriores para acceder a la documentación.
En este lab, usarás la consola de Cloud para crear una copia de seguridad de tu base de datos.
-
Selecciona Copias de seguridad/restablecimientos en el menú de la izquierda.
-
Haz clic en Crear copia de seguridad.
-
Coloca o selecciona los siguientes valores en el asistente:
| Elemento |
Valor |
| Nombre de la base de datos |
banking-db |
| Nombre de la copia de seguridad |
banking-backup-001 |
| Fecha de vencimiento |
1 año |
-
Haz clic en Crear.
-
La copia de seguridad tardará unos 15 minutos en completarse y aparecerá en la lista Copias de seguridad mientras se crea.
¡Felicitaciones!
Ahora tienes conocimientos sólidos sobre varias formas de cargar datos en una instancia de Cloud Spanner y cómo crear copias de seguridad.
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: 16 de septiembre de 2025
Prueba más reciente del lab: 16 de septiembre 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.