Questa pagina descrive come gestire un database Spanner, inclusa la creazione, la modifica e l'eliminazione di un database. Per scoprire come aggiornare lo schema di un database, consulta Eseguire aggiornamenti dello schema.
Per esercitarti a creare un database e caricarlo con dati di esempio, consulta il codelab Il tuo primo database.
Crea un database
Gli esempi riportati di seguito mostrano come creare un database in un'istanza esistente.
Per i database in dialetto GoogleSQL, puoi definire lo schema del database al momento della creazione o dopo la creazione. Per i database in dialetto PostgreSQL, devi definire lo schema dopo la creazione.
Gli schemi vengono definiti utilizzando il linguaggio di definizione del database, la cui documentazione è disponibile per GoogleSQL e PostgreSQL. Per maggiori informazioni sulla creazione e sull'aggiornamento degli schemi, consulta i seguenti link:
- Schema e modello dei dati
- Best practice per la progettazione dello schema
- Aggiornamenti dello schema
Dopo aver creato il database, puoi salvaguardare i database importanti per le tue applicazioni e i tuoi servizi attivando la protezione dell'eliminazione dei database. Per maggiori informazioni, consulta Impedire l'eliminazione accidentale dei database.
Console
Nella console Google Cloud , vai alla pagina Istanze Spanner.
Seleziona l'istanza in cui creare il database.
Fai clic su Crea database.
Inserisci i seguenti valori:
- Un nome del database da visualizzare nella console Google Cloud .
- Il dialetto da utilizzare per questo database.
- Per i database in dialetto GoogleSQL, fornisci facoltativamente un insieme di istruzioni DDL che definiscono lo schema. Utilizza i modelli DDL per precompilare gli elementi comuni. Se sono presenti errori nelle tue istruzioni DDL, la console Google Cloud restituisce un errore quando provi a creare il database.
- Se vuoi, seleziona una chiave di crittografia gestita dal cliente da utilizzare per questo database.
Fai clic su Crea per creare il database.
gcloud
Utilizza il 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 …]
Sono richieste le seguenti opzioni:
DATABASE
- ID del database o identificatore completo per il database. Se specifichi l'identificatore completo, il flag
--instance
può essere omesso. --instance=INSTANCE
- L'istanza Spanner per il database.
Le seguenti opzioni sono facoltative:
--async
- Torna immediatamente senza attendere il completamento dell'operazione in corso.
--database-dialect=DATABASE_DIALECT
- Il dialetto SQL del database Spanner. Deve essere uno tra:
POSTGRESQL
,GOOGLE_STANDARD_SQL
. --ddl=DDL
- Istruzioni DDL (Data Definition Language) separate da punto e virgola da eseguire
all'interno del database appena creato. Se è presente un errore in qualsiasi
istruzione, il database non viene creato. Questo flag viene ignorato se è impostato
--ddl_file
. Non supportato dai database in dialetto PostgreSQL. --ddl-file=DDL_FILE
- Percorso di un file contenente istruzioni DDL (Data Definition Language) separate da punto e virgola da eseguire all'interno del database appena creato. Se è presente un errore in un'istruzione, il database non viene creato. Se
--ddl_file
è impostato,--ddl
viene ignorato. Non supportato dai database in dialetto PostgreSQL.
Se specifichi una chiave Cloud Key Management Service da utilizzare quando crei il database, includi le seguenti opzioni:
--kms-key=KMS_KEY
- ID della chiave o identificatore completo della chiave.
Questo flag deve essere specificato se sono specificati uno o più degli altri argomenti di questo gruppo. Gli altri argomenti possono essere omessi se viene fornito l'identificatore completo.
--kms-keyring=KMS_KEYRING
- ID della raccolta di chiavi Cloud KMS della chiave.
--kms-location=KMS_LOCATION
La posizione della chiave in - Google Cloud .
--kms-project=KMS_PROJECT
L'ID progetto - Google Cloud per la chiave.
Client (GoogleSQL)
C++
Per scoprire come installare e utilizzare la libreria client per Spanner, consulta Librerie client Spanner.
Per autenticarti a Spanner, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Vai
Per scoprire come installare e utilizzare la libreria client per Spanner, consulta Librerie client Spanner.
Per autenticarti a Spanner, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Spanner, consulta Librerie client Spanner.
Per autenticarti a Spanner, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Spanner, consulta Librerie client Spanner.
Per autenticarti a Spanner, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Spanner, consulta Librerie client Spanner.
Per autenticarti a Spanner, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Spanner, consulta Librerie client Spanner.
Per autenticarti a Spanner, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Spanner, consulta Librerie client Spanner.
Per autenticarti a Spanner, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Aggiorna lo schema o le opzioni del database
Puoi aggiornare lo schema e le opzioni del database utilizzando le istruzioni DDL.
Ad esempio, per aggiungere una colonna a una tabella, utilizza la seguente istruzione DDL:
GoogleSQL
ALTER TABLE Songwriters ADD COLUMN Publisher STRING(10);
PostgreSQL
ALTER TABLE Songwriters ADD COLUMN Publisher VARCHAR(10);
Per aggiornare la versione dello strumento di ottimizzazione delle query, utilizza la seguente istruzione DDL:
GoogleSQL
ALTER DATABASE Music SET OPTIONS(optimizer_version=null);
PostgreSQL
ALTER DATABASE DB-NAME SET spanner.optimizer_version TO DEFAULT;
Per ulteriori informazioni sulle opzioni supportate, consulta la documentazione di riferimento ALTER DATABASE
DDL per GoogleSQL o PostgreSQL.
Per informazioni sugli aggiornamenti dello schema, consulta Eseguire aggiornamenti dello schema.
Console
Vai alla pagina Istanze nella console Google Cloud .
Seleziona l'istanza contenente il database da modificare.
Seleziona il database.
Fai clic su Spanner Studio.
Fai clic su
Nuova scheda o utilizza la scheda editor vuota. Quindi, inserisci le istruzioni DDL da applicare.Fai clic su Esegui per applicare gli aggiornamenti. Se sono presenti errori nel DDL, la console Google Cloud restituisce un errore e il database non viene alterado.
gcloud
Per modificare un database con lo strumento a riga di comando gcloud
, utilizza
gcloud spanner databases ddl update
.
gcloud spanner databases ddl update \ (DATABASE : --instance=INSTANCE) \ [--async] \ [--ddl=DDL] \ [--ddl-file=DDL_FILE] \
Per dettagli sulle opzioni disponibili, consulta la documentazione di riferimento di gcloud
.
Passa gli aggiornamenti del database al comando con il flag --ddl
o con il
--ddl-file
. Se viene specificato un file DDL, il flag --ddl
viene ignorato.
Consulta la ALTER DATABASE
documentazione di riferimento DDL
per GoogleSQL o
PostgreSQL per conoscere gli statement DDL da includere.
DDL
Per maggiori dettagli, consulta la documentazione di riferimento ALTER DATABASE
DDL per GoogleSQL o PostgreSQL.
Controllare l'avanzamento delle operazioni di aggiornamento dello schema
Console
Nel menu di navigazione di Spanner, seleziona la scheda Operazioni. La pagina Operazioni mostra un elenco delle operazioni in esecuzione.
Trova l'operazione dello schema nell'elenco. Se è ancora in esecuzione, la barra di avanzamento nella colonna Ora di fine mostra la percentuale dell'operazione completata, come mostrato nell'immagine seguente:
gcloud
Utilizza gcloud spanner operations describe
per controllare l'avanzamento di un'operazione.
Recupera l'ID operazione:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Sostituisci quanto segue:
- INSTANCE-NAME con il nome dell'istanza Spanner.
- DATABASE-NAME con il nome del database.
Esegui
gcloud spanner operations describe
:gcloud spanner operations describe OPERATION_ID\ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
Sostituisci quanto segue:
- OPERATION-ID: l'ID operazione dell'operazione da controllare.
- INSTANCE-NAME: il nome dell'istanza Spanner.
- DATABASE-NAME: il nome del database Spanner.
La sezione
progress
nell'output mostra la percentuale dell'operazione completata. L'output è simile al seguente: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
Recupera l'ID operazione:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Sostituisci quanto segue:
- INSTANCE-NAME con il nome dell'istanza Spanner.
- DATABASE-NAME con il nome del database.
Controlla l'avanzamento dell'operazione.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT-ID: l'ID progetto.
- INSTANCE-ID: l'ID istanza.
- DATABASE-ID: l'ID database.
- OPERATION-ID: l'ID operazione.
Metodo HTTP e URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ ... "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" } }
Se l'operazione richiede troppo tempo, puoi annullarla. Per ulteriori informazioni, consulta Annullare un'operazione di database di lunga durata.
Eliminare un database
L'eliminazione di un database determina la rimozione permanente di tale database e di tutti i suoi dati. L'eliminazione del database non può essere annullata. Se la protezione dall'eliminazione del database è abilitata su un database, non puoi eliminarlo finché non disattivi la protezione dall'eliminazione.
I backup esistenti non vengono eliminati quando viene eliminato un database. Per ulteriori informazioni, consulta Eseguire il backup e il ripristino.
Console
Vai alla pagina Istanze nella console Google Cloud .
Seleziona l'istanza contenente il database da eliminare.
Seleziona il database.
Fai clic su Elimina database. Viene visualizzata una conferma.
Digita il nome del database e fai clic su Elimina.
gcloud
Per eliminare un database con lo strumento a riga di comando gcloud
, utilizza
gcloud spanner databases delete
.
gcloud spanner databases delete \ (DATABASE : --instance=INSTANCE)
Sono richieste le seguenti opzioni:
DATABASE
- ID del database o identificatore completo del database. Se viene fornito l'identificatore completo, il flag
--instance
deve essere omesso. --instance=INSTANCE
- L'istanza Spanner per il database.
Per ulteriori dettagli, consulta il
riferimento gcloud
.
DDL
DDL non supporta la sintassi di eliminazione del database.
Passaggi successivi
- Crea un database e caricalo con dati di esempio.
- Scopri di più sul riferimento DDL di GoogleSQL.
- Scopri di più sulla documentazione di riferimento DDL di PostgreSQL.
- Scopri come eseguire il backup e il ripristino di un database.
- Scopri come evitare l'eliminazione accidentale del database.
- Scopri come eseguire aggiornamenti dello schema.