Crea ed esegui query su un database utilizzando l'interfaccia a riga di comando gcloud

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Obiettivi

Questo tutorial illustra i seguenti passaggi utilizzando lo strumento a riga di comando gcloud.

  • Crea un'istanza, un database e uno schema Spanner
  • Scrivere dati nel database ed eseguire query SQL sui dati
  • Esegui la pulizia eliminando database e 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

  1. Completa i passaggi descritti nella sezione Configurare , che spiega come creare e impostare un progetto Google Cloud predefinito, abilitare la fatturazione, attivare l'API Cloud Spanner e configurare OAuth 2.0 per ottenere le credenziali di autenticazione per utilizzare l'API Cloud Spanner.
    In particolare, assicurati di eseguire gcloud 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 ognuno dei comandi seguenti come primo argomento in gcloud spanner. Ad esempio:

gcloud spanner --project=PROJECT_ID instance-configs list

Istanze

La prima volta che utilizzi Spanner, devi creare un'istanza, ovvero un'allocazione di risorse utilizzate dai database Spanner. Quando crei un'istanza, scegli dove archiviare i dati e la capacità di calcolo dell'istanza.

Istanze e configurazioni delle istanze

Per creare un'istanza, devi selezionare una configurazione dell'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 tale istanza. Puoi scegliere una configurazione a livello di regione, che archivia i dati in un'area geografica, oppure una configurazione a più aree geografiche, che distribuisce i dati in più aree geografiche. Scopri di più in Istanze.

Per visualizzare 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ù su questo argomento 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 nodi:

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

Nel comando riportato di seguito, 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 di nome example-db. Il dialetto del database viene impostato in modo predefinito su Google SQL standard.

gcloud spanner databases create example-db

Crea uno schema

Utilizza il DDL (Data Definition Language) 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, vengono utilizzate le virgole per delimitare gli articoli negli elenchi. Nell'ultimo comando di inserimento, abbiamo specificato i due punti (^:^) come delimitatore in modo da poter utilizzare la virgola nel titolo dell'album.

Esegui query sui dati utilizzando 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 Spanner SQL, 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 execution-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.

Eliminazione di 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 l'eliminazione di un'istanza elimina anche tutti i database al suo interno. L'eliminazione di un'istanza è irreversibile.