En esta página, se describe cómo administrar una base de datos de Spanner, incluido cómo crear una base de datos, modificar las opciones de la base de datos y borrarla. Si quieres aprender a actualizar un esquema de base de datos, consulta Realiza actualizaciones de esquema.
Para practicar cómo crear una base de datos y cargarla con datos de muestra, consulta el codelab Tu primera base de datos.
Crea una base de datos
En los siguientes ejemplos, se muestra cómo crear una base de datos en una instancia existente.
Para las bases de datos del dialecto de GoogleSQL, puedes definir el esquema de la base de datos al momento de la creación de la base de datos o después de crearla. Para las bases de datos de dialectos de PostgreSQL, debes definir el esquema después de su creación.
Los esquemas se definen con el lenguaje de definición de la base de datos, que está documentado para GoogleSQL y PostgreSQL. Consulta los siguientes vínculos para obtener más información sobre la creación y actualización de esquemas:
- Esquema y modelo de datos
- Prácticas recomendadas sobre el diseño del esquema
- Actualizaciones del esquema
Después de crear la base de datos, puedes proteger las bases de datos que son importantes para tus aplicaciones y servicios si habilitas la protección contra la eliminación de bases de datos. Para obtener más información, consulta Cómo evitar la eliminación accidental de la base de datos.
Console
Ve a la página Instancias en la consola de Google Cloud.
Selecciona la instancia en la que deseas crear la base de datos.
Haz clic en Crear base de datos.
Ingrese los siguientes valores:
- Un nombre de base de datos para mostrar en la consola de Google Cloud.
- El dialecto que se usará para esta base de datos.
- Para las bases de datos del dialecto GoogleSQL, puedes proporcionar un conjunto de declaraciones DDL que definan tu esquema. Usa las plantillas de DDL para completar previamente los elementos comunes. Si hay errores en tus instrucciones de DDL, la consola de Google Cloud muestra un error cuando intentas crear la base de datos.
- De manera opcional, selecciona una clave de encriptación administrada por el cliente para usar en esta base de datos.
Haz clic en Crear para crear la base de datos.
gcloud
Usa el comando gcloud spanner databases create
.
gcloud spanner databases create DATABASE \
--instance=INSTANCE \
[--async] \
[--database-dialect=DATABASE_DIALECT] \
[--ddl=DDL] \
[--ddl-file=DDL_FILE] \
[--kms-key=KMS_KEY : --kms-keyring=KMS_KEYRING --kms-location=KMS_LOCATION --kms-project=KMS_PROJECT] \
[GCLOUD_WIDE_FLAG …]
Se requieren las siguientes opciones:
DATABASE
- Es el ID de la base de datos o el identificador completamente calificado de la base de datos. Si se especifica el identificador completamente calificado, se puede omitir la marca
--instance
. --instance=INSTANCE
- La instancia de Spanner para la base de datos.
Las siguientes configuraciones son opcionales:
--async
- Regresa de inmediato, sin esperar a que se complete la operación en curso.
--database-dialect=DATABASE_DIALECT
- Es el dialecto de SQL de la base de datos de Spanner. Debe ser uno de los siguientes:
POSTGRESQL
oGOOGLE_STANDARD_SQL
. --ddl=DDL
- Declaraciones DDL (lenguaje de definición de datos) separadas por punto y coma para ejecutarse dentro de la base de datos recién creada. Si hay un error en alguna declaración, la base de datos no se crea. Esta marca se ignora si se configura
--ddl_file
. No es compatible con las bases de datos de dialectos de PostgreSQL. --ddl-file=DDL_FILE
- : Es la ruta de acceso de un archivo que contiene declaraciones DDL (lenguaje de definición de datos) separadas por punto y coma para ejecutarse dentro de la base de datos recién creada. Si hay un error en alguna declaración, la base de datos no se crea. Si se configura
--ddl_file
, se ignora--ddl
. No es compatible con las bases de datos de dialectos de PostgreSQL.
Si especificas una clave de Cloud Key Management Service para usar cuando creas la base de datos, incluye las siguientes opciones:
--kms-key=KMS_KEY
- Es el ID de la clave o el identificador completamente calificado de la clave.
Esta marca debe especificarse si se especifica alguno de los otros argumentos de este grupo. Los otros argumentos se pueden omitir si se proporciona el identificador completamente calificado.
--kms-keyring=KMS_KEYRING
- Es el ID del llavero de claves de Cloud KMS de la clave.
--kms-location=KMS_LOCATION
- Ubicación de Google Cloud de la clave.
--kms-project=KMS_PROJECT
- ID del proyecto de Google Cloud para la clave.
Cliente (GoogleSQL)
C++
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.
Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.
Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.
Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.
Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.
Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.
Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Rita
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta Bibliotecas cliente de Spanner.
Para autenticarte en Spanner, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Actualiza el esquema o las opciones de la base de datos
Puedes actualizar el esquema y las opciones de tu base de datos mediante declaraciones DDL.
Por ejemplo, para agregar una columna a una tabla, usa la siguiente declaración DDL:
GoogleSQL
ALTER TABLE Songwriters ADD COLUMN Publisher STRING(10);
PostgreSQL
ALTER TABLE Songwriters ADD COLUMN Publisher VARCHAR(10);
Para actualizar la versión del optimizador de consultas, usa la siguiente declaración DDL:
GoogleSQL
ALTER DATABASE Music SET OPTIONS(optimizer_version=null);
PostgreSQL
ALTER DATABASE DB-NAME SET spanner.optimizer_version TO DEFAULT;
Si deseas obtener más información sobre las opciones compatibles, consulta la referencia de DDL ALTER DATABASE
para GoogleSQL o PostgreSQL.
Para obtener información sobre las actualizaciones de esquema, consulta Realiza actualizaciones de esquema.
Console
Ve a la página Instancias en la consola de Google Cloud.
Selecciona la instancia que contiene la base de datos que deseas modificar.
Selecciona la base de datos.
Haz clic en Spanner Studio.
Haz clic en
Nueva pestaña o usa la pestaña del editor vacía. Luego, ingresa las instrucciones de DDL que deseas aplicar.Haz clic en Ejecutar para aplicar las actualizaciones. Si hay errores en tu DDL, la consola de Google Cloud muestra un error y la base de datos no se modifica.
gcloud
Para modificar una base de datos con la herramienta de línea de comandos de gcloud
, usa gcloud spanner databases ddl update
.
gcloud spanner databases ddl update \ (DATABASE : --instance=INSTANCE) \ [--async] \ [--ddl=DDL] \ [--ddl-file=DDL_FILE] \
Consulta la referencia de gcloud
para obtener detalles sobre las opciones disponibles.
Pasa las actualizaciones de la base de datos al comando con las marcas --ddl
o --ddl-file
. Si se especifica un archivo DDL, se ignora la marca --ddl
.
Consulta la referencia de DDL de ALTER DATABASE
para GoogleSQL o PostgreSQL a fin de incluir las instrucciones DDL que se incluirán.
DDL
Consulta la referencia de DDL de ALTER DATABASE
para GoogleSQL o PostgreSQL si quieres obtener más detalles.
Comprueba el progreso de las operaciones de actualización del esquema
Console
En el menú de navegación de Spanner, selecciona la pestaña Operaciones. En la página Operaciones, se muestra una lista de las operaciones en ejecución.
Busca la operación del esquema en la lista. Si aún está en ejecución, la barra de progreso de la columna Hora de finalización muestra el porcentaje de finalización de la operación, como se observa en la siguiente imagen:
gcloud
Usa gcloud spanner operations describe
para verificar el progreso de una operación.
Obtén el ID de operación:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Reemplaza lo siguiente:
- INSTANCE-NAME por el nombre de la instancia de Spanner
- DATABASE-NAME por el nombre de la base de datos
Ejecuta
gcloud spanner operations describe
:gcloud spanner operations describe OPERATION_ID\ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
Reemplaza lo siguiente:
- OPERATION-ID: Es el ID de la operación que deseas verificar.
- INSTANCE-NAME: Es el nombre de la instancia de Spanner.
- DATABASE-NAME: Es el nombre de la base de datos de Spanner.
En la sección
progress
del resultado, se muestra el porcentaje de la operación que se completó. El resultado es similar al siguiente:done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
REST v1
Obtén el ID de operación:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Reemplaza lo siguiente:
- INSTANCE-NAME por el nombre de la instancia de Spanner
- DATABASE-NAME por el nombre de la base de datos
Verifica el progreso de la operación.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT-ID: El ID del proyecto.
- INSTANCE-ID: El ID de la instancia.
- DATABASE-ID: Es el ID de la base de datos.
- OPERATION-ID: Es el ID de la operación.
Método HTTP y URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Si la operación tarda demasiado, puedes cancelarla. Para obtener más información, consulta Cancela una operación de base de datos de larga duración.
Borrar una base de datos
Si borras una base de datos, esta y todos sus datos se quitarán de forma permanente. La eliminación de la base de datos no se puede deshacer. Si la protección contra la eliminación de bases de datos está habilitada en una base de datos, no podrás borrar esa base de datos hasta que inhabilites su protección contra la eliminación.
Las copias de seguridad existentes no se borran cuando se borra una base de datos. Para obtener más información, consulta Copia de seguridad y restablecimiento.
Console
Ve a la página Instancias en la consola de Google Cloud.
Selecciona la instancia que contiene la base de datos que deseas borrar.
Selecciona la base de datos.
Haz clic en Borrar base de datos. Aparecerá una confirmación.
Escribe el nombre de la base de datos y haz clic en Borrar.
gcloud
Para borrar una base de datos con la herramienta de línea de comandos de gcloud
, usa gcloud spanner databases delete
.
gcloud spanner databases delete \ (DATABASE : --instance=INSTANCE)
Se requieren las siguientes opciones:
DATABASE
- Es el ID de la base de datos o el identificador completamente calificado de la base de datos. Si se proporciona un identificador completamente calificado, se debe omitir la marca
--instance
. --instance=INSTANCE
- La instancia de Spanner para la base de datos.
Para obtener más detalles, consulta la referencia de gcloud
.
DDL
DDL no admite la sintaxis de eliminación de bases de datos.
¿Qué sigue?
- Crea una base de datos y cárgala con datos de muestra.
- Obtén más información sobre la referencia de DDL de GoogleSQL.
- Obtén más información sobre la referencia de DDL de PostgreSQL.
- Obtén información sobre cómo crear una copia de seguridad y restablecer una base de datos.
- Obtén más información para evitar la eliminación accidental de la base de datos.
- Aprende a realizar actualizaciones del esquema.