Questo documento mostra come configurare ed eseguire query su un database Spanner Graph per modellare, archiviare e analizzare relazioni di dati complesse utilizzando la console Google Cloud e le librerie client.
I seguenti argomenti ti aiutano a scoprire come:
Per informazioni dettagliate sui prezzi di Spanner, consulta la pagina Prezzi di Spanner.
Per provare un codelab, consulta la Guida introduttiva a Spanner Graph.
Prima di iniziare
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
- Abilita l'API Spanner:
Vai ad Abilita l'API Spanner -
Per ottenere le autorizzazioni necessarie per creare istanze e database, chiedi all'amministratore di concederti il ruolo IAM Cloud Spanner Admin (
roles/spanner.admin
) nel progetto. -
Per ottenere le autorizzazioni necessarie per eseguire query sui grafici Spanner se non ti è stato concesso il ruolo Amministratore Cloud Spanner, chiedi all'amministratore di concederti il ruolo IAM Lettore database Cloud Spanner (
roles/spanner.databaseReader
) sul tuo progetto. Nella console Google Cloud , vai alla pagina Spanner.
Seleziona o crea un progetto Google Cloud , se non l'hai ancora fatto.
Esegui una di queste operazioni:
Se non hai mai creato un'istanza Spanner, nella pagina Benvenuto in Spanner, fai clic su Crea un'istanza di cui è stato eseguito il provisioning.
Se hai creato un'istanza Spanner, nella pagina Istanze, fai clic su Crea istanza.
Nella pagina Seleziona una versione, seleziona Enterprise Plus o Enterprise.
Spanner Graph è disponibile solo nella versione Enterprise o Enterprise Plus. Per confrontare le diverse versioni, fai clic su Confronta le versioni. Per saperne di più, consulta la panoramica delle versioni di Spanner.
Fai clic su Continua.
In Nome istanza, inserisci un nome per l'istanza, ad esempio
test-instance
.In ID istanza, mantieni o modifica l'ID istanza. L'ID istanza corrisponde per impostazione predefinita al nome dell'istanza, ma puoi modificarlo. Il nome dell'istanza e l'ID istanza possono essere uguali o diversi.
Fai clic su Continua.
In Scegli una configurazione, segui questi passaggi:
Mantieni selezionata l'opzione A livello di regione.
In Seleziona una configurazione, seleziona una regione. Spanner memorizza e replica le istanze nella regione selezionata.
Fai clic su Continua.
In Configura capacità di calcolo, segui questi passaggi:
In Seleziona unità, seleziona Unità di elaborazione (PU).
In Scegli una modalità di scalabilità, mantieni selezionata l'opzione Allocazione manuale e in Quantità, mantieni 1000 unità di elaborazione.
Fai clic su Crea. La console Google Cloud mostra la pagina Panoramica dell'istanza che hai creato.
Nella console Google Cloud , vai alla pagina Istanze Spanner.
Fai clic sull'istanza che hai creato, ad esempio
Test Instance
.In Panoramica, fai clic su Crea database sotto il nome dell'istanza.
In Nome database, inserisci un nome per il database. Ad esempio,
example-db
.In Seleziona dialetto database, scegli Google Standard SQL. Spanner Graph non è disponibile nel dialetto PostgreSQL.
Inserisci il seguente schema nella scheda dell'editor Modelli DDL. Lo schema contiene due definizioni di tabelle dei nodi,
Person
eAccount
, e due definizioni di tabelle degli archi,PersonOwnAccount
eAccountTransferAccount
. Spanner Graph utilizza tabelle relazionali per definire i grafi, quindi nello schema vengono visualizzate sia le tabelle relazionali sia le istruzioni del grafo. Per scoprire di più sullo schema di Spanner Graph, consulta la panoramica dello schema di Spanner Graph:CREATE TABLE Person ( id INT64 NOT NULL, name STRING(MAX), birthday TIMESTAMP, country STRING(MAX), city STRING(MAX), ) PRIMARY KEY (id); CREATE TABLE Account ( id INT64 NOT NULL, create_time TIMESTAMP, is_blocked BOOL, nick_name STRING(MAX), ) PRIMARY KEY (id); CREATE TABLE PersonOwnAccount ( id INT64 NOT NULL, account_id INT64 NOT NULL, create_time TIMESTAMP, FOREIGN KEY (account_id) REFERENCES Account (id) ) PRIMARY KEY (id, account_id), INTERLEAVE IN PARENT Person ON DELETE CASCADE; CREATE TABLE AccountTransferAccount ( id INT64 NOT NULL, to_id INT64 NOT NULL, amount FLOAT64, create_time TIMESTAMP NOT NULL, order_number STRING(MAX), FOREIGN KEY (to_id) REFERENCES Account (id) ) PRIMARY KEY (id, to_id, create_time), INTERLEAVE IN PARENT Account ON DELETE CASCADE; CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES (Account, Person) EDGE TABLES ( PersonOwnAccount SOURCE KEY (id) REFERENCES Person (id) DESTINATION KEY (account_id) REFERENCES Account (id) LABEL Owns, AccountTransferAccount SOURCE KEY (id) REFERENCES Account (id) DESTINATION KEY (to_id) REFERENCES Account (id) LABEL Transfers );
Mantieni le impostazioni predefinite in Mostra opzioni di crittografia.
Fai clic su Crea. Google Cloud La console mostra la pagina Panoramica per il database che hai creato.
Nella pagina Spanner Studio, fai clic su
Nuova scheda o utilizza la scheda dell'editor.Copia e incolla le seguenti istruzioni di inserimento dei dati del grafico nei nodi e nei bordi.
INSERT INTO Account (id, create_time, is_blocked, nick_name) VALUES (7,"2020-01-10 06:22:20.222",false,"Vacation Fund"), (16,"2020-01-27 17:55:09.206",true,"Vacation Fund"), (20,"2020-02-18 05:44:20.655",false,"Rainy Day Fund"); INSERT INTO Person (id, name, birthday, country, city) VALUES (1,"Alex","1991-12-21 00:00:00","Australia","Adelaide"), (2,"Dana","1980-10-31 00:00:00","Czech_Republic","Moravia"), (3,"Lee","1986-12-07 00:00:00","India","Kollam"); INSERT INTO AccountTransferAccount (id, to_id, amount, create_time, order_number) VALUES (7,16,300,"2020-08-29 15:28:58.647","304330008004315"), (7,16,100,"2020-10-04 16:55:05.342","304120005529714"), (16,20,300,"2020-09-25 02:36:14.926","103650009791820"), (20,7,500,"2020-10-04 16:55:05.342","304120005529714"), (20,16,200,"2020-10-17 03:59:40.247","302290001255747"); INSERT INTO PersonOwnAccount (id, account_id, create_time) VALUES (1,7,"2020-01-10 06:22:20.222"), (2,20,"2020-01-27 17:55:09.206"), (3,16,"2020-02-18 05:44:20.655");
Fai clic su Esegui. Al termine dell'esecuzione, la scheda Risultati mostra che sono state inserite 3 righe.
Nella pagina Panoramica del database, fai clic su Spanner Studio nel menu di navigazione.
Nella pagina Spanner Studio, fai clic su
Nuova scheda o utilizza la scheda dell'editor.Inserisci la seguente query nell'editor di query. La query trova tutte le persone a cui Dana ha trasferito denaro e l'importo di questi trasferimenti.
GRAPH FinGraph MATCH (from_person:Person {name: "Dana"})-[:Owns]-> (from_account:Account)-[transfer:Transfers]-> (to_account:Account)<-[:Owns]-(to_person:Person) RETURN from_person.name AS from_account_owner, from_account.id AS from_account_id, to_person.name AS to_account_owner, to_account.id AS to_account_id, transfer.amount AS amount
Fai clic su Esegui.
La scheda Risultati mostra i seguenti percorsi di Dana, proprietaria dell'account numero 20:
- A
Account {id:7}
di proprietà di Alex. A
Account {id:16}
di proprietà di Lee.
- A
Nella console Google Cloud , vai a Istanze Spanner.
Fai clic sul nome dell'istanza, ad esempio Test Instance.
Fai clic sul nome del database, ad esempio example-db.
Nella pagina Dettagli database, fai clic su Elimina database.
Conferma di voler eliminare il database inserendone il nome e facendo clic su Elimina.
Nella console Google Cloud , vai alla pagina Istanze Spanner.
Fai clic sul nome dell'istanza che vuoi eliminare, ad esempio Test Instance.
Fai clic su Elimina istanza.
Conferma di voler eliminare l'istanza inserendo il nome dell'istanza e facendo clic su Elimina.
- Scopri di più su Spanner Graph utilizzando un codelab.
- Scopri di più sullo schema di Spanner Graph.
- Crea, aggiorna o elimina uno schema Spanner Graph.
- Inserisci, aggiorna o elimina i dati di Spanner Graph.
- Panoramica delle query Spanner Graph.
- Esegui la migrazione a Spanner Graph.
Creazione di un'istanza di Spanner
Quando utilizzi Spanner per la prima volta, devi creare un'istanza, che alloca risorse per i database Spanner. Questa sezione mostra come creare un'istanza utilizzando la console Google Cloud .
Crea un database a grafo utilizzando uno schema
Questa sezione mostra come creare un database Spanner Graph utilizzando uno schema Spanner Graph. Puoi utilizzare la console Google Cloud o le librerie client.
Console
Librerie client
Python
Java
Go
C++
Inserire i dati del grafico
Dopo aver creato il database, puoi aggiungervi i dati. Questa sezione mostra come inserire i dati nel grafico utilizzando la console Google Cloud per un'interfaccia grafica o utilizzando le librerie client in modo programmatico.
Console
Librerie client
Python
Java
Go
C++
Il seguente grafico mostra le persone, gli account, la proprietà degli account e i trasferimenti di account dagli inserti:
Eseguire una query sul grafico
Dopo aver inserito i dati nel grafico, puoi eseguire query per trovare pattern e relazioni. Questa sezione mostra come eseguire query utilizzando la consoleGoogle Cloud per un'interfaccia grafica o in modo programmatico con le librerie client.
Console
Librerie client
Python
Java
Go
C++
Esegui la pulizia
Questa sezione mostra come pulire le risorse che hai creato per evitare addebiti sul tuo account di fatturazione Cloud. Se prevedi di esplorare altri esempi di grafici Spanner nella sezione Che cosa fare dopo, non eseguire ancora questi passaggi. L'eliminazione di un'istanza Spanner comporta anche l'eliminazione di tutti i database all'interno dell'istanza.