En esta página, se describe cómo crear y administrar bases de datos de Spanner:
- Varios métodos para crear una base de datos
- Cómo modificar las opciones de la base de datos
- Borrar una base de datos
En esta página, se incluye información para las bases de datos con dialecto de GoogleSQL y las bases de datos con dialecto de PostgreSQL. Para obtener información sobre cómo actualizar un esquema de base de datos, consulta Realizar actualizaciones de esquema. Para obtener más información sobre cómo crear una instancia, consulta Crea y administra instancias. Puedes crear una base de datos en una instancia existente de cualquiera de las siguientes maneras:
- Crear una base de datos: Puedes crear una base de datos nueva seleccionando el dialecto de SQL y definiendo tu esquema.
- Importa tus propios datos: Puedes importar un archivo CSV, un volcado de MySQL o un volcado de PostgreSQL en una base de datos nueva o existente.
- Crea una base de datos con datos de muestra: Puedes completar una base de datos con uno de los conjuntos de datos de muestra disponibles para probar las capacidades de Spanner.
Crea una base de datos
Puedes crear una base de datos nueva en una instancia existente. En el caso de las bases de datos con dialecto de GoogleSQL, puedes definir el esquema de la base de datos en el momento de la creación o después de que se haya creado. En el caso de las bases de datos con dialecto de PostgreSQL, debes definir el esquema después de la creación.
Los esquemas se definen con el lenguaje de definición de bases de datos, que se documenta para GoogleSQL y PostgreSQL. Consulta los siguientes vínculos para obtener más información sobre cómo crear y actualizar esquemas:
- Esquema y modelo de datos
- Prácticas recomendadas sobre el diseño del esquema
- Actualizaciones del esquema
Después de crear tu base de datos, puedes proteger las bases de datos que son importantes para tus aplicaciones y servicios habilitando 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 bases de datos.
Consola de Google Cloud
En la consola de Google Cloud , ve a la página Instancias de Spanner.
Selecciona la instancia en la que se creará la base de datos.
Haz clic en Crear base de datos.
Ingresa 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 con dialecto de GoogleSQL, proporciona de forma opcional un conjunto de instrucciones DDL que definan tu esquema. Usa las plantillas de DDL para completar previamente los elementos comunes. Si hay errores en tus instrucciones 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
.
```sh
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 especificas el identificador completamente calificado, se puede omitir la marca
--instance
. --instance=INSTANCE
- Instancia de Spanner para la base de datos.
Las siguientes configuraciones son opcionales:
--async
- Se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
--database-dialect=DATABASE_DIALECT
- Dialecto SQL de la base de datos de Spanner. Debe ser uno de los siguientes:
POSTGRESQL
,GOOGLE_STANDARD_SQL
. --ddl=DDL
- Sentencias DDL (lenguaje de definición de datos) separadas por punto y coma para ejecutar dentro de la base de datos recién creada. Si hay un error en alguna instrucción, no se creará la base de datos. Esta marca se ignora si se configura
--ddl_file
. No es compatible con las bases de datos de dialecto PostgreSQL. --ddl-file=DDL_FILE
- Es la ruta de acceso a un archivo que contiene instrucciones DDL (lenguaje de definición de datos) separadas por punto y coma para ejecutar dentro de la base de datos recién creada. Si hay un error en alguna instrucción, no se crea la base de datos. Si se establece
--ddl_file
, se ignora--ddl
. No es compatible con las bases de datos de dialecto PostgreSQL.
Si especificas una clave de Cloud Key Management Service para usar cuando crees la base de datos, incluye las siguientes opciones:
--kms-key=KMS_KEY
- ID de la clave o identificador completamente calificado de la clave.
Esta marca se debe especificar 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
- ID del llavero de claves de Cloud KMS de la clave.
--kms-location=KMS_LOCATION
- Google Cloud ubicación de la llave.
--kms-project=KMS_PROJECT
- Google Cloud ID del proyecto de la clave.
Cliente (GoogleSQL)
C++
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta las 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 las 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 las 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 las 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 las 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 las 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.
Ruby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Spanner, consulta las 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.
Importación de tus propios datos
Puedes importar tus propios datos a una base de datos de Spanner con un archivo CSV, un archivo de volcado de MySQL o un archivo de volcado de PostgreSQL. Puedes subir un archivo local con Cloud Storage o directamente desde un bucket de Cloud Storage. Es posible que se apliquen cargos por subir un archivo local con Cloud Storage.
Si eliges usar un archivo CSV, también deberás subir un archivo JSON independiente que contenga el esquema de la base de datos.
Consola de Google Cloud
En la consola de Google Cloud , ve a la página Instancias de Spanner.
Selecciona la instancia en la que se creará la base de datos.
Haz clic en Importar mis propios datos.
Ingresa los siguientes valores:
Selecciona el Tipo de archivo.
Sube el archivo desde tu computadora o selecciona una ruta de acceso al archivo en un bucket de Cloud Storage.
(Opcional) Si eliges usar un archivo CSV, también debes subir un archivo JSON independiente que contenga el esquema de la base de datos. El archivo JSON debe usar la siguiente estructura para definir el esquema:
{ "name": "COLUMN_NAME", "type": "TYPE", "notNull": NOT_NULL_VALUE, "primaryKeyOrder": PRIMARY_KEY_ORDER }
Reemplaza lo siguiente:
COLUMN_NAME: Es el nombre de la columna en la tabla.
TYPE: Es el tipo de datos de la columna.
NOT_NULL_VALUE (opcional): Indica si la columna puede almacenar valores nulos o no. Las entradas válidas son
true
ofalse
. La configuración predeterminada esfalse
.(Opcional): PRIMARY_KEY_ORDER: Determina el orden de la clave primaria. El valor se establece en
0
para una columna de clave no principal. Establece el valor en un número entero, por ejemplo,1
para una columna de clave primaria. Las columnas con números más bajos aparecen antes en una clave primaria compuesta.
De forma predeterminada, el archivo CSV espera una coma como delimitador de campo y una línea nueva como delimitador de línea. Para obtener más información sobre el uso de delimitadores personalizados, consulta la referencia de
gcloud alpha spanner databases import
.Selecciona una base de datos nueva o existente como destino.
Haz clic en Importar.
Spanner abre Cloud Shell y completa un comando que instala la herramienta de migración de Spanner y ejecuta el comando
gcloud alpha spanner databases import
. Presiona la teclaENTER
para importar datos a tu base de datos.
Usa un conjunto de datos de muestra
Puedes completar bases de datos nuevas en una instancia existente a partir de conjuntos de datos de muestra que te ayudan a explorar las capacidades de Spanner, como su modelo relacional, la búsqueda de texto completo o la búsqueda de vectores.
Consola de Google Cloud
En la consola de Google Cloud , ve a la página Instancias de Spanner.
Selecciona la instancia en la que se creará la base de datos.
Haz clic en Explorar conjuntos de datos.
Selecciona uno de los siguientes conjuntos de datos:
- Gráfico de finanzas: Usa este conjunto de datos para explorar las funciones de gráficos de Spanner.
- Banca en línea: Usa este conjunto de datos para explorar las funciones de búsqueda en el texto completo de Spanner.
- Juegos en línea: Usa este conjunto de datos para explorar las funciones de la base de datos relacional de Spanner.
- Venta minorista: Usa este conjunto de datos para explorar las funciones de gráficos y de búsqueda en el texto completo de Spanner.
Haz clic en Crear base de datos.
Actualiza el esquema o las opciones de la base de datos
Puedes actualizar el esquema y las opciones de tu base de datos con instrucciones DDL.
Por ejemplo, para agregar una columna a una tabla, usa la siguiente instrucció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 instrucción DDL:
GoogleSQL
ALTER DATABASE Music SET OPTIONS(optimizer_version=null);
PostgreSQL
ALTER DATABASE DB-NAME SET spanner.optimizer_version TO DEFAULT;
Para obtener más información sobre las opciones admitidas, consulta la referencia de DDL de ALTER DATABASE
para GoogleSQL o PostgreSQL.
Para obtener información sobre las actualizaciones del esquema, consulta Realiza actualizaciones de esquema.
Consola de Google Cloud
En la consola de Google Cloud , ve a la página Instancias de Spanner.
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
Pestaña nueva o usa la pestaña del editor vacía. Luego, ingresa las instrucciones DDL que se aplicarán.Haz clic en Ejecutar para aplicar las actualizaciones. Si hay errores en tu DDL, la consola Google Cloud devuelve un error y no se altera la base de datos.
gcloud
Para modificar una base de datos con la herramienta de línea de comandos 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 la marca --ddl
o la marca --ddl-file
. Si se especifica un archivo DDL, se ignora la marca --ddl
.
Consulta la ALTER DATABASE
referencia de DDL para GoogleSQL o PostgreSQL para conocer las instrucciones DDL que se deben incluir.
DDL
Consulta la referencia de DDL de ALTER DATABASE
para obtener detalles sobre GoogleSQL o PostgreSQL.
Cómo verificar el progreso de las operaciones de actualización del esquema
Consola de Google Cloud
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 activas.
Busca la operación de esquema en la lista. Si aún se está ejecutando, la barra de progreso de la columna Hora de finalización muestra el porcentaje de la operación que se completó, como se muestra 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.
La sección
progress
del resultado 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 es irreversible. Si la protección contra la eliminación de bases de datos está habilitada en una base de datos, no podrás borrarla 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.
Consola de Google Cloud
En la consola de Google Cloud , ve a la página Instancias de Spanner.
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 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 el identificador completamente calificado, se debe omitir la marca
--instance
. --instance=INSTANCE
- Instancia de Spanner para la base de datos.
Para obtener más detalles, consulta la referencia de gcloud
.
DDL
El 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 más información para crear una copia de seguridad y restablecer una base de datos.
- Obtén más información para evitar la eliminación accidental de bases de datos.
- Obtén información para realizar actualizaciones de esquema.