Eseguire la migrazione dei dati in Spanner Graph

Questo documento descrive la procedura di migrazione dei dati e dell'applicazione a Spanner Graph. Descriviamo le fasi di migrazione e gli strumenti consigliati per ogni fase, a seconda del database di origine e di altri fattori.

La migrazione del grafo a Spanner Graph prevede le seguenti fasi principali:

  1. Raccogliere i requisiti dell'applicazione.
  2. Progetta lo schema di Spanner Graph.
  3. Esegui la migrazione dell'applicazione a Spanner Graph.
  4. Testa e ottimizza Spanner Graph.
  5. Esegui la migrazione dei dati in Spanner Graph.
  6. Convalida la migrazione dei dati.
  7. Configura il meccanismo di passaggio e failover.

Per ottimizzare lo schema e l'applicazione in termini di prestazioni, potresti dover progettare in modo iterativo lo schema, creare l'applicazione, testare e ottimizzare Spanner Graph.

Raccogliere i requisiti dell'applicazione

Per progettare uno schema che soddisfi le esigenze della tua applicazione, raccogli i seguenti requisiti:

  • Modellazione dei dati
  • Pattern di query comuni
  • Requisiti di latenza e velocità effettiva

Progettare lo schema di Spanner Graph

Per scoprire come progettare uno schema di Spanner Graph, consulta Panoramica dello schema di Spanner Graph per approfondire i concetti di base e consulta Creare, aggiornare o eliminare uno schema di Spanner Graph per altri esempi. Per ottimizzare lo schema per pattern di query comuni, consulta Best practice per la progettazione di uno schema di grafo Spanner.

Esegui la migrazione dell'applicazione a Spanner Graph

Innanzitutto, leggi le linee guida generali di Spanner sulla migrazione dell'applicazione, quindi leggi le linee guida in questa sezione per conoscere le linee guida per la migrazione delle applicazioni di Spanner Graph.

Connettersi a Spanner Graph

Per scoprire come connetterti in modo programmatico a Spanner Graph, consulta Creare, aggiornare o eliminare uno schema Spanner Graph e la Panoramica delle query di Spanner Graph.

Esegui la migrazione delle query

L'interfaccia di query di Spanner Graph è compatibile con ISO GQL e include un supporto aggiuntivo per la sintassi di openCypher. Per ulteriori informazioni, consulta Documentazione di riferimento di Spanner Graph per gli utenti di openCypher.

Esegui la migrazione delle mutazioni

Per eseguire la migrazione della logica di mutazione dell'applicazione, puoi utilizzare i meccanismi di mutazione delle tabelle Spanner. Per ulteriori informazioni, vedi Inserire, aggiornare o eliminare i dati di Spanner Graph.

Testare e ottimizzare Spanner Graph

Le indicazioni di Spanner su come testare e ottimizzare le prestazioni dello schema e dell'applicazione si applicano a Spanner Graph. Per conoscere le best practice per l'ottimizzazione delle prestazioni di Spanner Graph, consulta le best practice per la progettazione di uno schema di Spanner Graph e le best practice per l'ottimizzazione delle query di Spanner Graph.

Eseguire la migrazione dei dati in Spanner Graph

Per spostare i dati da un database relazionale, vedi Eseguire la migrazione dei dati.

Per spostare i dati da un database grafico o non relazionale, puoi conservare i dati del database di origine in file, caricarli su Cloud Storage e poi importarli utilizzando Dataflow. I formati file consigliati includono AVRO e CSV. Per ulteriori informazioni, consulta Formati consigliati per la migrazione collettiva.

Gestire i vincoli

Se lo schema contiene vincoli definiti nelle tabelle di input, assicurati che questi vincoli non vengano violati durante l'importazione dei dati. I vincoli includono quanto segue:

  • Chiavi esterne: un vincolo di chiave esterna può essere definito per il riferimento di un bordo a un nodo.
  • Interlacciamento: una tabella di input di edge potrebbe essere interlacciata in una tabella di input di nodi. Questo interlacciamento definisce una relazione principale-secondario, con il vincolo implicito che l'elemento principale deve esistere prima della creazione dell'elemento secondario.

L'entità principale in un'organizzazione interlacciata e l'entità a cui si fa riferimento nel vincolo di chiave esterna devono essere caricate per prime. Ciò significa che devi prima caricare i nodi nel grafo e poi le tracce. Se carichi gli archi prima di caricare i nodi a cui si connettono, durante il processo di caricamento potresti riscontrare errori che indicano che alcune chiavi non esistono.

Per ottenere l'ordine di importazione corretto, utilizza i modelli forniti da Google per definire job Dataflow separati per ogni fase ed eseguili in sequenza. Ad esempio, puoi eseguire un job Dataflow per importare i nodi e un altro job Dataflow per importare gli archi. In alternativa, puoi scrivere un job Dataflow personalizzato che gestisce la sequenza di importazione.

Per ulteriori informazioni sui modelli forniti da Google, consulta le seguenti risorse:

Se esegui l'importazione nell'ordine sbagliato, il job potrebbe non riuscire o la migrazione potrebbe essere eseguita solo su parte dei dati. Se viene eseguita la migrazione solo di una parte dei dati, esegui nuovamente la migrazione.

Migliorare l'efficienza del caricamento dei dati

Per migliorare l'efficienza del caricamento dei dati, crea indici secondari e definisci le chiavi esterne dopo aver importato i dati in Spanner. Questo approccio è possibile solo per il caricamento collettivo iniziale o durante la migrazione con tempo di riposo.

Convalidare la migrazione dei dati

Dopo aver eseguito la migrazione dei dati, esegui query di base per verificare la loro correttezza. Esegui le seguenti query sui database di origine e di destinazione per verificare la corrispondenza dei risultati:

  • Conta il numero di nodi e spigoli.
  • Conta il numero di nodi ed archi per etichetta.
  • Calcola le statistiche (conteggio, somma, media, min, max) su ogni proprietà di nodo ed edge.

Configura il meccanismo di passaggio e failover

Configura i meccanismi di transizione e failover.

Passaggi successivi