Obiettivi
Questo tutorial illustra i seguenti passaggi utilizzando lo strumento a riga di comando gcloud.
- Crea un'istanza, un database e uno schema di Spanner
- Scrivi i dati nel database ed esegui le query SQL per questi dati
- Esegui la pulizia eliminando il database e l'istanza
Per il riferimento gcloud spanner
completo, consulta
gcloud spanner.
Prezzi
Questo tutorial utilizza Spanner, che è un componente fatturabile di Google Cloud. Per informazioni sul costo dell'utilizzo di Spanner, consulta i prezzi.
Prima di iniziare
- Completa i passaggi descritti in Configurare, che riguardano la creazione e la configurazione di un progetto Google Cloud predefinito, dell'attivazione della fatturazione, dell'attivazione dell'API Cloud Spanner e della configurazione di OAuth 2.0 per ottenere le credenziali di autenticazione per utilizzare l'API Cloud Spanner.
In particolare, assicurati di eseguiregcloud auth application-default login
per configurare l'ambiente di sviluppo locale con le credenziali di autenticazione.
Imposta un progetto predefinito
Se non lo hai già fatto, imposta l'ID di un progetto Google Cloud Platform come progetto predefinito per Google Cloud CLI:
gcloud config set project PROJECT_ID
Se non imposti il progetto predefinito, devi passare --project
PROJECT_ID
a ciascuno dei comandi riportati di seguito come primo argomento a gcloud spanner
. Ad esempio:
gcloud spanner --project=PROJECT_ID instance-configs list
Istanze
Quando utilizzi Spanner per la prima volta, devi creare un'istanza, ovvero un'allocazione di risorse utilizzate dai database Spanner. Quando crei un'istanza, scegli dove archiviare i dati e la quantità di calcolo disponibile.
Istanze e configurazioni di istanze
Per creare un'istanza, devi selezionare una configurazione di istanza, simile a un progetto base per l'istanza che definisce il posizionamento geografico e la replica dei dati Spanner.
Elencare le configurazioni delle istanze
Quando crei un'istanza, devi specificare una configurazione di istanza, che definisce il posizionamento geografico e la replica dei tuoi database in quell'istanza. Puoi scegliere una configurazione a livello di regione, che archivia i dati in un'area geografica, o una configurazione a più aree geografiche, che distribuisce i dati tra più aree geografiche. Scopri di più in Istanze.
Per vedere l'insieme di configurazioni di istanze disponibili per il tuo progetto:
gcloud spanner instance-configs list
Dovresti visualizzare un elenco di configurazioni a livello di una o più aree geografiche.
Le configurazioni regionali distribuiscono i dati in un'unica area geografica, mentre quelle multiregionali lo fanno in più aree geografiche. Scopri di più in merito in istanze.
Crea un'istanza
Per creare un'istanza denominata test-instance
con il nome visualizzato My Instance
utilizzando la configurazione dell'istanza a livello di regione regional-us-central1
con 1 nodo:
gcloud spanner instances create test-instance --config=regional-us-central1 \ --description="My Instance" --nodes=1
Nel comando precedente, il nome dell'istanza è impostato su test-instance
e
--description
imposta il nome visualizzato dell'istanza. Entrambi i valori devono essere univoci all'interno di un progetto Google Cloud Platform.
Imposta l'istanza predefinita
Puoi impostare l'istanza predefinita utilizzata da Cloud Spanner quando non hai specificato un'istanza nel comando. Per impostare l'istanza predefinita:
gcloud config set spanner/instance test-instance
Crea un database
Crea un database denominato example-db
. Il dialetto del database è GoogleSQL per impostazione predefinita.
gcloud spanner databases create example-db
Crea uno schema
Utilizzare il linguaggio di definizione dei dati (DDL) di Spanner per creare, modificare o eliminare le tabelle e per creare o eliminare gli indici.
Creiamo due tabelle
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'
Scrittura di dati
Aggiungiamo alcuni dati di esempio al nostro database
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"
Per impostazione predefinita, la virgola viene utilizzata per separare gli elementi dall'elenco. Nel comando ultimo inserimento, abbiamo specificato i due punti (^:^
) come delimitatore in modo da poter utilizzare la virgola nel titolo dell'album.
Esegui query sui dati tramite SQL
Esegui una query dalla riga di comando:
gcloud spanner databases execute-sql example-db \ --sql='SELECT SingerId, AlbumId, AlbumTitle FROM Albums'
Per il riferimento SQL di Spanner, consulta la sintassi delle query.
Per visualizzare un elenco di flag che puoi utilizzare con il comando execute-sql
, consulta la pagina gcloud spanner database run-sql.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi aggiuntivi per le risorse utilizzate in questo tutorial, elimina il database ed elimina l'istanza che hai creato.
Trascina un database
Per eliminare un'istanza esistente:
gcloud spanner databases delete example-db
Elimina un'istanza
Per eliminare un'istanza esistente:
gcloud spanner instances delete test-instance
Tieni presente che con l'eliminazione di un'istanza tutti i database al suo interno vengono eliminati. L'eliminazione di un'istanza è irreversibile.