Comienza a usar Cloud Spanner mediante gcloud

Objetivos

En este instructivo, se explican los siguientes pasos mediante la herramienta de línea de comandos de gcloud.

  • Crea una instancia, una base de datos y un esquema de Cloud Spanner
  • Escribe datos en la base de datos y ejecutar consultas de SQL
  • Limpia la base de datos y la instancia

Para obtener la referencia gcloud spanner completa, consulta gcloud spanner.

Costos

En este instructivo, se usa Cloud Spanner, que es un componente facturable de Google Cloud. Para obtener información sobre el costo de usar Cloud Spanner, consulta Precios.

Antes de comenzar

  1. Completa los pasos que se describen en la página de configuración, que incluye cómo crear y configurar un proyecto predeterminado de Google Cloud, habilitar la facturación, habilitar la API de Cloud Spanner y configurar OAuth 2.0 a fin de obtener credenciales de autenticación para usar la API de Cloud Spanner.
    En particular, asegúrate de ejecutar gcloud auth application-default login para configurar tu entorno de desarrollo local con credenciales de autenticación.

Configura un proyecto predeterminado

Si aún no lo hiciste, establece el ID de un proyecto de Google Cloud Platform como proyecto predeterminado para la herramienta de línea de comandos de gcloud:

gcloud config set project PROJECT_ID

Si no configuras el proyecto predeterminado, debes pasar --project PROJECT_ID a cada uno de los siguientes comandos como el primer argumento para gcloud spanner. Por ejemplo:

gcloud spanner --project=PROJECT_ID instance-configs list

Instancias

Cuando usas Cloud Spanner por primera vez, debes crear una instancia, que es una asignación de recursos que usan las bases de datos de Cloud Spanner. Cuando creas una instancia, eliges dónde se almacenan los datos y cuánta capacidad de procesamiento tiene la instancia.

Instancias y configuraciones de instancias

A fin de crear una instancia, debes seleccionar una configuración de instancia, que es como un modelo para tu instancia que define la ubicación geográfica y la replicación de tus datos de Cloud Spanner.

Muestra configuraciones de instancias

Cuando creas una instancia, especificas una configuración de instancia, que define la ubicación geográfica y la replicación de las bases de datos en esa instancia. Puedes elegir una configuración regional, que almacena datos en una región, o una configuración de varias regiones, que distribuye los datos en varias regiones. Consulta Instancias para obtener más información.

A fin de ver el conjunto de configuraciones de instancias disponibles para tu proyecto, sigue estos pasos:

gcloud spanner instance-configs list

Deberías ver una lista de configuraciones regionales y multirregionales.

Las configuraciones regionales distribuyen datos en una sola región, mientras que las configuraciones multirregionales distribuyen los datos geográficamente en varias regiones. Obtén más información sobre estas opciones en Instancias.

Cree una instancia

Para crear una instancia llamada test-instance con el nombre comercial My Instance mediante la configuración de instancia regional regional-us-central1 con 1 nodo, sigue estos pasos:

gcloud spanner instances create test-instance --config=regional-us-central1 \
    --description="My Instance" --nodes=1

En el comando anterior, el nombre de la instancia se configura como test-instance y --description establece el nombre comercial de la instancia. Ambos valores deben ser únicos dentro de un proyecto de Google Cloud Platform.

Establece la instancia predeterminada

Puedes establecer la instancia predeterminada que usará Cloud Spanner cuando no hayas especificado una instancia en tu comando. Para configurar la instancia predeterminada, sigue estos pasos:

gcloud config set spanner/instance test-instance

Crea una base de datos

Crea una base de datos con el nombre example-db.

gcloud spanner databases create example-db

Crea un esquema

Usa el lenguaje de definición de datos (DDL) de Cloud Spanner para crear, modificar o quitar tablas, y crear o quitar índices.

Crea dos tablas

gcloud spanner databases ddl update example-db \
  --ddl='CREATE TABLE Singers ( SingerId INT64 NOT NULL, FirstName STRING(1024), LastName STRING(1024), SingerInfo BYTES(MAX) ) PRIMARY KEY (SingerId)'
gcloud spanner databases ddl update example-db \
  --ddl='CREATE TABLE Albums ( SingerId INT64 NOT NULL, AlbumId INT64 NOT NULL, AlbumTitle STRING(MAX)) PRIMARY KEY (SingerId, AlbumId), INTERLEAVE IN PARENT Singers ON DELETE CASCADE'

Escribir datos

Agrega algunos datos de muestra a la base de datos

gcloud spanner rows insert --database=example-db \
      --table=Singers \
      --data=SingerId=1,FirstName=Marc,LastName=Richards

gcloud spanner rows insert --database=example-db \
      --table=Singers \
      --data=SingerId=2,FirstName=Catalina,LastName=Smith

gcloud spanner rows insert --database=example-db \
      --table=Singers \
      --data=SingerId=3,FirstName=Alice,LastName=Trentor

gcloud spanner rows insert --database=example-db \
      --table=Albums \
      --data=SingerId=1,AlbumId=1,AlbumTitle="Total Junk"

gcloud spanner rows insert --database=example-db \
      --table=Albums \
      --data=SingerId=2,AlbumId=1,AlbumTitle="Green"

gcloud spanner rows insert --database=example-db \
      --table=Albums \
      --data=^:^SingerId=2:AlbumId=2:AlbumTitle="Go, Go, Go"

De forma predeterminada, se usa la coma para delimitar los elementos de las listas. En el último comando de inserción, especificamos dos puntos (^:^) como delimitador para que podamos usar comas en el título del álbum.

Consulta datos mediante SQL

Ejecuta una consulta en la línea de comandos:

gcloud spanner databases execute-sql example-db \
    --sql='SELECT SingerId, AlbumId, AlbumTitle FROM Albums'

Para consultar la referencia de SQL de Cloud Spanner, consulta Sintaxis de consulta.

Para ver una lista de marcas que puedes usar con el comando execute-sql, consulta gcloud spanner databases execute-sql.

Limpieza

Para evitar que se apliquen cargos adicionales a tu cuenta de Google Cloud por los recursos que se usaron en este instructivo, descarta la base de datos y borra la instancia que creaste.

Desconectar una base de datos

Para borrar una instancia existente, sigue estos pasos:

gcloud spanner databases delete example-db

Borra una instancia

Para borrar una instancia existente, sigue estos pasos:

gcloud spanner instances delete test-instance

Ten en cuenta que la eliminación de una instancia también descarta todas las bases de datos de esa instancia. La eliminación de una instancia no es reversible.