Iniziare a utilizzare Spanner tramite REST


Obiettivi

Questo tutorial illustra i seguenti passaggi per utilizzare l'API Cloud Spanner con REST:

  • Crea un'istanza e un database Spanner.
  • Scrivi, leggi ed esegui query SQL sui dati nel database.
  • Aggiorna lo schema del database.
  • Aggiungi un indice secondario al database.
  • Utilizza l'indice per leggere ed eseguire query SQL sui dati.
  • Recupera i dati utilizzando una transazione di sola lettura.

Se vuoi utilizzare le librerie client Spanner anziché l'API REST, consulta i tutorial.

Costi

Questo tutorial utilizza Spanner, un componente fatturabile diGoogle Cloud. Per informazioni sul costo dell'utilizzo di Spanner, consulta Prezzi.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Metodi per effettuare chiamate REST

Puoi effettuare chiamate REST di Spanner utilizzando:

Convenzioni utilizzate in questa pagina

  • Gli esempi utilizzano [PROJECT_ID] come ID progetto Google Cloud . Sostituisci il tuo ID progettoGoogle Cloud con [PROJECT_ID]. Non includere [ e ] nell'ID progetto.

  • Gli esempi creano e utilizzano un ID istanza di test-instance. Sostituisci il tuo ID istanza se non utilizzi test-instance.

  • Gli esempi creano e utilizzano un ID database di example-db. Sostituisci il tuo ID database se non utilizzi example-db.

  • Gli esempi utilizzano [SESSION] come parte del nome di una sessione. Sostituisci il valore ricevuto quando crei una sessione con [SESSION]. (Non includere [ e ] nel nome della sessione.)

  • Gli esempi utilizzano un ID transazione [TRANSACTION_ID]. Sostituisci il valore ricevuto quando crei una transazione con [TRANSACTION_ID]. (Non includere [ e ] nell'ID transazione.)

  • La funzionalità Prova supporta l'aggiunta interattiva di singoli campi della richiesta HTTP. La maggior parte degli esempi in questo argomento fornisce l'intera richiesta anziché descrivere come aggiungere in modo interattivo singoli campi alla richiesta.

Istanze

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

Elenca le configurazioni delle istanze

Quando crei un'istanza, specifichi una configurazione dell'istanza, che definisce il posizionamento geografico e la replica dei tuoi database nell'istanza. Puoi scegliere una configurazione regionale, che archivia i dati in una regione, o una configurazione multiregionale, che distribuisce i dati in più regioni. Scopri di più in Istanze.

Utilizza projects.instanceConfigs.list per determinare quali configurazioni sono disponibili per il tuo progetto Google Cloud .

  1. Fai clic su projects.instanceConfigs.list.
  2. In parent, inserisci:

    projects/[PROJECT_ID]
    
  3. Fai clic su Execute (Esegui). Le configurazioni delle istanze disponibili sono mostrate nella risposta. Ecco un esempio di risposta (il progetto potrebbe avere configurazioni di istanze diverse):

    {
      "instanceConfigs": [
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-asia-south1",
          "displayName": "asia-south1"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-asia-east1",
          "displayName": "asia-east1"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-asia-northeast1",
          "displayName": "asia-northeast1"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-europe-west1",
          "displayName": "europe-west1"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-us-east4",
          "displayName": "us-east4"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-us-central1",
          "displayName": "us-central1"
        }
      ]
    }
    

Utilizza il valore name per una delle configurazioni dell'istanza quando crei la tua istanza.

Crea un'istanza

  1. Fai clic su projects.instances.create.
  2. In parent, inserisci:

    projects/[PROJECT_ID]
    
  3. Fai clic su Aggiungi parametri del corpo della richiesta e seleziona instance.

  4. Fai clic sulla bolla di suggerimento per instance per visualizzare i possibili campi. Aggiungi valori per i seguenti campi:

    1. nodeCount: premi 1.
    2. config: inserisci il valore name di una delle configurazioni delle istanze regionali restituite quando elenchi le configurazioni delle istanze.
    3. displayName: premi Test Instance.
  5. Fai clic sulla bolla di suggerimento che segue la parentesi chiusa di instance e seleziona instanceId.

  6. Per instanceId, inserisci test-instance.
    La pagina di creazione dell'istanza Prova dovrebbe avere il seguente aspetto:

    Screenshot della creazione dell'istanza

  7. Fai clic su Execute (Esegui). La risposta restituisce un'operazione a lunga esecuzione su cui puoi eseguire query per verificarne lo stato.

Puoi elencare le tue istanze utilizzando projects.instances.list.

Crea un database

Crea un database denominato example-db.

  1. Fai clic su projects.instances.databases.create.
  2. In parent, inserisci:

    projects/[PROJECT_ID]/instances/test-instance
    
  3. Fai clic su Aggiungi parametri del corpo della richiesta e seleziona createStatement.

  4. Per createStatement, inserisci:

    CREATE DATABASE `example-db`
    

    Il nome del database, example-db, contiene un trattino, quindi deve essere racchiuso tra apici inversi (`).

  5. Fai clic su Execute (Esegui). La risposta restituisce un'operazione a lunga esecuzione su cui puoi eseguire query per verificarne lo stato.

Puoi elencare i tuoi database utilizzando projects.instances.databases.list.

Crea uno schema

Utilizza il Data Definition Language (DDL) di Spanner per creare, modificare o eliminare tabelle e per creare o eliminare indici.

  1. Fai clic su projects.instances.databases.updateDdl.
  2. In database, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "statements": [
        "CREATE TABLE Singers ( SingerId INT64 NOT NULL, FirstName STRING(1024), LastName STRING(1024), SingerInfo BYTES(MAX) ) PRIMARY KEY (SingerId)",
        "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"
      ]
    }
    

    L'array statements contiene le istruzioni DDL che definiscono lo schema.

  4. Fai clic su Execute (Esegui). La risposta restituisce un'operazione a lunga esecuzione su cui puoi eseguire query per verificarne lo stato.

Lo schema definisce due tabelle, Singers e Albums, per un'applicazione di musica di base. Queste tabelle vengono utilizzate in tutta la pagina. Dai un'occhiata allo schema di esempio, se non lo hai già fatto.

Puoi recuperare lo schema utilizzando projects.instances.databases.getDdl.

Creare una sessione

Prima di poter aggiungere, aggiornare, eliminare o eseguire query sui dati, devi creare una sessione, che rappresenta un canale di comunicazione con il servizio di database Spanner. Non utilizzi direttamente una sessione se utilizzi una libreria client Spanner, perché la libreria client gestisce le sessioni per tuo conto.

  1. Fai clic su projects.instances.databases.sessions.create.
  2. In database, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Fai clic su Execute (Esegui).

  4. La risposta mostra la sessione che hai creato, nel formato

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Utilizzerai questa sessione quando leggi o scrivi nel database.

Le sessioni sono progettate per durare a lungo. Il servizio di database Spanner può eliminare una sessione quando è inattiva per più di un'ora. I tentativi di utilizzare una sessione eliminata generano NOT_FOUND. Se si verifica questo errore, crea e utilizza una nuova sessione. Puoi vedere se una sessione è ancora attiva utilizzando projects.instances.databases.sessions.get. Per informazioni correlate, vedi Mantenere attiva una sessione inattiva.

Il passaggio successivo consiste nello scrivere i dati nel database.

Scrivi dati

Scrivi i dati utilizzando il tipo Mutation. Un Mutation è un contenitore per le operazioni di mutazione. Un Mutation rappresenta una sequenza di inserimenti, aggiornamenti, eliminazioni e altre azioni che possono essere applicate in modo atomico a righe e tabelle diverse in un database Spanner.

  1. Fai clic su projects.instances.databases.sessions.commit.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "singleUseTransaction": {
        "readWrite": {}
      },
      "mutations": [
        {
          "insertOrUpdate": {
            "table": "Singers",
            "columns": [
              "SingerId",
              "FirstName",
              "LastName"
            ],
            "values": [
              [
                "1",
                "Marc",
                "Richards"
              ],
              [
                "2",
                "Catalina",
                "Smith"
              ],
              [
                "3",
                "Alice",
                "Trentor"
              ],
              [
                "4",
                "Lea",
                "Martin"
              ],
              [
                "5",
                "David",
                "Lomond"
              ]
            ]
          }
        },
        {
          "insertOrUpdate": {
            "table": "Albums",
            "columns": [
              "SingerId",
              "AlbumId",
              "AlbumTitle"
            ],
            "values": [
              [
                "1",
                "1",
                "Total Junk"
              ],
              [
                "1",
                "2",
                "Go, Go, Go"
              ],
              [
                "2",
                "1",
                "Green"
              ],
              [
                "2",
                "2",
                "Forever Hold Your Peace"
              ],
              [
                "2",
                "3",
                "Terrified"
              ]
            ]
          }
        }
      ]
    }
    
  4. Fai clic su Execute (Esegui). La risposta mostra il timestamp del commit.

In questo esempio è stato utilizzato insertOrUpdate. Altre operazioni per Mutations sono insert, update, replace e delete.

Per informazioni su come codificare i tipi di dati, consulta TypeCode.

Esegui query sui dati utilizzando SQL

  1. Fai clic su projects.instances.databases.sessions.executeSql.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "sql": "SELECT SingerId, AlbumId, AlbumTitle FROM Albums"
    }
    
  4. Fai clic su Execute (Esegui). La risposta mostra i risultati della query.

Leggere i dati utilizzando l'API di lettura

  1. Fai clic su projects.instances.databases.sessions.read.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "table": "Albums",
      "columns": [
        "SingerId",
        "AlbumId",
        "AlbumTitle"
      ],
      "keySet": {
        "all": true
      }
    }
    
  4. Fai clic su Execute (Esegui). La risposta mostra i risultati della lettura.

Aggiorna lo schema del database

Supponiamo che tu debba aggiungere una nuova colonna denominata MarketingBudget alla tabella Albums, il che richiede un aggiornamento dello schema del database. Spanner supporta gli aggiornamenti dello schema di un database mentre il database continua a gestire il traffico. Gli aggiornamenti dello schema non richiedono il disattivazione del database e non bloccano intere tabelle o colonne. Puoi continuare a scrivere dati nel database durante l'aggiornamento dello schema.

Aggiungere una colonna

  1. Fai clic su projects.instances.databases.updateDdl.
  2. In database, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "statements": [
        "ALTER TABLE Albums ADD COLUMN MarketingBudget INT64"
      ]
    }
    

    L'array statements contiene le istruzioni DDL che definiscono lo schema.

  4. Fai clic su Execute (Esegui). Il completamento dell'operazione potrebbe richiedere alcuni minuti, anche dopo che la chiamata REST ha restituito una risposta. La risposta restituisce un'operazione a lunga esecuzione su cui puoi eseguire query per verificarne lo stato.

Scrivere i dati nella nuova colonna

Il codice seguente scrive i dati nella nuova colonna. Imposta MarketingBudget su 100000 per la riga con chiave Albums(1, 1) e su 500000 per la riga con chiave Albums(2, 2).

  1. Fai clic su projects.instances.databases.sessions.commit.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "singleUseTransaction": {
        "readWrite": {}
      },
      "mutations": [
        {
          "update": {
            "table": "Albums",
            "columns": [
              "SingerId",
              "AlbumId",
              "MarketingBudget"
            ],
            "values": [
              [
                "1",
                "1",
                "100000"
              ],
              [
                "2",
                "2",
                "500000"
              ]
            ]
          }
        }
      ]
    }
    
  4. Fai clic su Execute (Esegui). La risposta mostra il timestamp del commit.

Puoi anche eseguire una query SQL o una chiamata di lettura per recuperare i valori appena scritti.

Ecco come eseguire la query:

  1. Fai clic su projects.instances.databases.sessions.executeSql.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "sql": "SELECT SingerId, AlbumId, MarketingBudget FROM Albums"
    }
    
  4. Fai clic su Execute (Esegui). Nell'ambito della risposta dovresti vedere due righe che contengono i valori aggiornati di MarketingBudget:

    "rows": [
      [
        "1",
        "1",
        "100000"
      ],
      [
        "1",
        "2",
        null
      ],
      [
        "2",
        "1",
        null
      ],
      [
        "2",
        "2",
        "500000"
      ],
      [
        "2",
        "3",
        null
      ]
    ]
    

Utilizzare un indice secondario

Supponiamo che tu voglia recuperare tutte le righe di Albums con valori AlbumTitle in un determinato intervallo. Potresti leggere tutti i valori della colonna AlbumTitle utilizzando un'istruzione SQL o una chiamata di lettura, quindi ignorare le righe che non soddisfano i criteri, ma questa scansione completa della tabella è costosa, soprattutto per le tabelle con molte righe. In alternativa, puoi velocizzare il recupero delle righe quando effettui ricerche in base a colonne di chiavi non principali creando un indice secondario nella tabella.

L'aggiunta di un indice secondario a una tabella esistente richiede un aggiornamento dello schema. Come per gli altri aggiornamenti dello schema, Spanner supporta l'aggiunta di un indice mentre il database continua a gestire il traffico. Spanner esegue automaticamente il backfill dell' indice con i dati esistenti. Il completamento dei backfill potrebbe richiedere alcuni minuti, ma non è necessario mettere offline il database o evitare di scrivere in determinate tabelle o colonne durante questa procedura. Per ulteriori dettagli, consulta backfill dell'indice.

Dopo aver aggiunto un indice secondario, Spanner lo utilizza automaticamente per le query SQL che potrebbero essere eseguite più velocemente con l'indice. Se utilizzi l'interfaccia read, devi specificare l'indice che vuoi utilizzare.

Aggiungere un indice secondario

Puoi aggiungere un indice utilizzando updateDdl.

  1. Fai clic su projects.instances.databases.updateDdl.
  2. In database, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "statements": [
        "CREATE INDEX AlbumsByAlbumTitle ON Albums(AlbumTitle)"
      ]
    }
    
  4. Fai clic su Execute (Esegui). Il completamento dell'operazione potrebbe richiedere alcuni minuti, anche dopo che la chiamata REST ha restituito una risposta. La risposta restituisce un'operazione a lunga esecuzione su cui puoi eseguire query per verificarne lo stato.

Esegui query utilizzando l'indice

  1. Fai clic su projects.instances.databases.sessions.executeSql.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "sql": "SELECT AlbumId, AlbumTitle, MarketingBudget FROM Albums WHERE AlbumTitle >= 'Aardvark' AND AlbumTitle < 'Goo'"
    }
    
  4. Fai clic su Execute (Esegui). Nell'ambito della risposta dovresti vedere le seguenti righe:

    "rows": [
      [
        "2",
        "Go, Go, Go",
        null
      ],
      [
        "2",
        "Forever Hold Your Peace",
        "500000"
      ]
    ]
    

Lettura utilizzando l'indice

  1. Fai clic su projects.instances.databases.sessions.read.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "table": "Albums",
      "columns": [
        "AlbumId",
        "AlbumTitle"
      ],
      "keySet": {
        "all": true
      },
      "index": "AlbumsByAlbumTitle"
    }
    
  4. Fai clic su Execute (Esegui). Nell'ambito della risposta dovresti vedere le seguenti righe:

    "rows": [
      [
        "2",
        "Forever Hold Your Peace"
      ],
      [
        "2",
        "Go, Go, Go"
      ],
      [
        "1",
        "Green"
      ],
      [
        "3",
        "Terrified"
      ],
      [
        "1",
        "Total Junk"
      ]
    ]
    

Aggiungere un indice con la clausola STORING

Potresti aver notato che l'esempio di lettura riportato sopra non includeva la lettura della colonna MarketingBudget. Questo perché l'interfaccia di lettura di Spanner non supporta la possibilità di unire un indice a una tabella di dati per cercare valori che non sono archiviati nell'indice.

Crea una definizione alternativa di AlbumsByAlbumTitle che memorizzi una copia di MarketingBudget nell'indice.

Puoi aggiungere un indice STORING utilizzando updateDdl.

  1. Fai clic su projects.instances.databases.updateDdl.
  2. In database, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "statements": [
        "CREATE INDEX AlbumsByAlbumTitle2 ON Albums(AlbumTitle) STORING (MarketingBudget)"
      ]
    }
    
  4. Fai clic su Execute (Esegui). Il completamento dell'operazione potrebbe richiedere alcuni minuti, anche dopo che la chiamata REST ha restituito una risposta. La risposta restituisce un'operazione a lunga esecuzione su cui puoi eseguire query per verificarne lo stato.

Ora puoi eseguire una lettura che recupera tutte le colonne AlbumId, AlbumTitle e MarketingBudget dall'indice AlbumsByAlbumTitle2:

  1. Fai clic su projects.instances.databases.sessions.read.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "table": "Albums",
      "columns": [
        "AlbumId",
        "AlbumTitle",
        "MarketingBudget"
      ],
      "keySet": {
        "all": true
      },
      "index": "AlbumsByAlbumTitle2"
    }
    
  4. Fai clic su Execute (Esegui). Nell'ambito della risposta dovresti vedere le seguenti righe:

    "rows": [
      [
        "2",
        "Forever Hold Your Peace",
        "500000"
      ],
      [
        "2",
        "Go, Go, Go",
        null
      ],
      [
        "1",
        "Green",
        null
      ],
      [
        "3",
        "Terrified",
        null
      ],
      [
        "1",
        "Total Junk",
        "100000"
      ]
    ]
    

Recuperare i dati utilizzando le transazioni di sola lettura

Supponiamo che tu voglia eseguire più letture con lo stesso timestamp. Le transazioni di sola lettura osservano un prefisso coerente della cronologia dei commit delle transazioni, in modo che l'applicazione riceva sempre dati coerenti.

Creare una transazione di sola lettura

  1. Fai clic su projects.instances.databases.sessions.beginTransaction.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    
  3. Per Request Body, utilizza quanto segue:

    {
      "options": {
        "readOnly": {}
      }
    }
    
  4. Fai clic su Execute (Esegui).

  5. La risposta mostra l'ID della transazione che hai creato.

Ora puoi utilizzare la transazione di sola lettura per recuperare i dati con un timestamp coerente, anche se i dati sono cambiati da quando hai creato la transazione di sola lettura.

Esegui una query utilizzando la transazione di sola lettura

  1. Fai clic su projects.instances.databases.sessions.executeSql.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "sql": "SELECT SingerId, AlbumId, AlbumTitle FROM Albums",
      "transaction": {
        "id": "[TRANSACTION_ID]"
      }
    }
    
  4. Fai clic su Execute (Esegui). Nella risposta dovresti vedere righe simili alle seguenti:

    "rows": [
      [
        "2",
        "2",
        "Forever Hold Your Peace"
      ],
      [
        "1",
        "2",
        "Go, Go, Go"
      ],
      [
        "2",
        "1",
        "Green"
      ],
      [
        "2",
        "3",
        "Terrified"
      ],
      [
        "1",
        "1",
        "Total Junk"
      ]
    ]
    

Lettura utilizzando la transazione di sola lettura

  1. Fai clic su projects.instances.databases.sessions.read.
  2. In session, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Riceverai questo valore quando crei una sessione.

  3. Per Request body (Corpo della richiesta), utilizza quanto segue:

    {
      "table": "Albums",
      "columns": [
        "SingerId",
        "AlbumId",
        "AlbumTitle"
      ],
      "keySet": {
        "all": true
      },
      "transaction": {
        "id": "[TRANSACTION_ID]"
      }
    }
    
  4. Fai clic su Execute (Esegui). Nella risposta dovresti vedere righe simili alle seguenti:

    "rows": [
      [
        "1",
        "1",
        "Total Junk"
      ],
      [
        "1",
        "2",
        "Go, Go, Go"
      ],
      [
        "2",
        "1",
        "Green"
      ],
      [
        "2",
        "2",
        "Forever Hold Your Peace"
      ],
      [
        "2",
        "3",
        "Terrified"
      ]
    ]
    

Spanner supporta anche le transazioni di lettura/scrittura, che eseguono un insieme di letture e scritture in modo atomico in un singolo punto temporale logico. Per ulteriori informazioni, consulta la sezione Transazioni di lettura/scrittura. La funzionalità Prova non è adatta per dimostrare una transazione di lettura/scrittura.

Esegui la pulizia

Per evitare di incorrere in addebiti aggiuntivi sul tuo account Google Cloud per le risorse utilizzate in questo tutorial, elimina il database ed elimina l'istanza che hai creato.

Eliminare un database

  1. Fai clic su projects.instances.databases.dropDatabase.
  2. In nome, inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Fai clic su Execute (Esegui).

Elimina un'istanza

  1. Fai clic su projects.instances.delete.
  2. In nome, inserisci:

    projects/[PROJECT_ID]/instances/test-instance
    
  3. Fai clic su Execute (Esegui).

Passaggi successivi