Pianificare una migrazione con la tracciabilità della migrazione

Puoi utilizzare il servizio di lineage della migrazione per visualizzare il flusso di dati e le connessioni nel tuo database di origine quando pianifichi una migrazione del data warehouse BigQuery.

Quando crei una tracciabilità della migrazione, il servizio di tracciabilità fornisce un grafico che visualizza il modo in cui i dati si spostano nel sistema di origine e come sono collegate ogni tabella o vista nel sistema di origine, come mostrato nel seguente diagramma:

Una tracciabilità della migrazione che mostra un grafico del flusso di dati.

Il servizio di tracciabilità della migrazione supporta i seguenti dialetti SQL:

  • Amazon Redshift SQL
  • Snowflake SQL
  • SQL Teradata
  • GoogleSQL (BigQuery)

Limitazioni

Il servizio di lineage elabora i primi 5 GB dei log meno recenti del database di origine.

Località supportate

Il servizio di tracciabilità della migrazione è disponibile in alcune località. Per ulteriori informazioni, consulta Località del servizio di traduzione e lineage SQL di BigQuery.

Autorizzazioni obbligatorie

Per ottenere le autorizzazioni necessarie per utilizzare il servizio di lineage della migrazione, chiedi all'amministratore di concederti il ruolo IAM MigrationWorkflow Editor (roles/bigquerymigration.editor) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per utilizzare il servizio di lineage della migrazione. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per utilizzare il servizio di tracciabilità della migrazione sono necessarie le seguenti autorizzazioni:

  • bigquerymigration.workflows.create
  • bigquerymigration.workflows.get
  • bigquerymigration.lineageDbs.query

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Per saperne di più su ruoli e autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni IAM di BigQuery.

Crea una genealogia della migrazione

Per creare una tracciabilità della migrazione, devi prima eseguire lo strumento dwh-migration-dumper per generare i file di log SQL di input di origine che carichi in Cloud Storage. Dopo aver caricato i file di input su Cloud Storage, puoi generare la lineage della migrazione con la console Google Cloud o l'API BigQuery Migration.

Esegui lo strumento dwh-migration-dumper

Seleziona una delle seguenti opzioni:

Amazon Redshift

Per creare e visualizzare la tracciabilità di una migrazione in un database Amazon Redshift:

  1. Esegui lo strumento dwh-migration-dumper per generare un dump dei file del sistema di origine.
  2. Carica i log delle query in Cloud Storage.

Snowflake

Per creare e visualizzare la tracciabilità di una migrazione in un database Snowflake:

  1. Esegui lo strumento dwh-migration-dumper per generare un dump dei file del sistema di origine.
  2. Carica i log delle query in Cloud Storage.

Teradata

Per creare e visualizzare la tracciabilità della migrazione in un database Teradata:

  1. Esegui lo strumento dwh-migration-dumper per generare un dump dei file del sistema di origine.
  2. Carica i log delle query in Cloud Storage.

BigQuery

Per creare e visualizzare la tracciabilità della migrazione in un database BigQuery, procedi nel seguente modo:

  1. Concedi all'account o al account di servizio i seguenti ruoli:
  2. Installa lo strumento dwh-migration-dumper.
  3. Per generare metadati e log delle query, esegui lo strumento dwh-migration-dumper. Questi log di metadati e query sono contenuti in uno o più file ZIP.

    dwh-migration-dumper --connector bigquery
    
    dwh-migration-dumper --connector bigquery-logs
  4. Carica i file ZIP in un bucket Cloud Storage. Per ulteriori informazioni sulla creazione di bucket e sul caricamento di file in Cloud Storage, consulta Creare un bucket e Caricare oggetti da un file system.

Genera la tracciabilità della migrazione

Dopo aver caricato su Cloud Storage i file ZIP contenenti i metadati e i log delle query, puoi generare la derivazione della migrazione. Seleziona una delle seguenti opzioni:

Console

  1. Vai alla pagina I tuoi servizi di migrazione.

    Vai a I tuoi servizi di migrazione

  2. In Traduci SQL, fai clic su Traduci > Traduzione batch.

  3. In Configurazione della traduzione, inserisci quanto segue:

    1. In Nome visualizzato, specifica un nome per il job di derivazione. Il nome può contenere lettere, numeri o trattini bassi.
    2. Per Località di elaborazione, seleziona la località in cui vuoi eseguire il job di tracciabilità.
    3. In Dialetto di origine, seleziona il dialetto SQL di origine.
    4. Per Dialetto di destinazione, seleziona GoogleSQL.
  4. Fai clic su Avanti.

  5. Nella sezione Dettagli posizione file:

    1. Per Posizione della directory di output, specifica il percorso di un bucket Cloud Storage in cui salvare i file di output della traduzione. Puoi digitare il percorso nel formato bucket_name/folder_name/ o fare clic su Sfoglia.
    2. Per Percorso della directory di input, specifica il percorso della cartella Cloud Storage contenente i file ZIP dei log che hai caricato in precedenza. Puoi digitare il percorso nel formato bucket_name/folder_name/ o fare clic su Sfoglia. Puoi anche assegnare un nome alla sottodirectory dei file di output nel campo Nome sottodirectory di output.
    3. Puoi aggiungere altri file di input facendo clic su Aggiungi un percorso della directory di input.
  6. Fai clic su Avanti.

  7. Seleziona la casella di controllo Tracciabilità dai log delle query.

  8. Fai clic su Crea.

Il job di derivazione è ora in esecuzione. Il job può richiedere diverse ore per essere completato, a seconda delle dimensioni dell'input. Al termine del job, lo strumento fornisce un link alla tracciabilità della migrazione generata.

API

Per creare un job di tracciabilità, esegui questo comando curl:

  curl -d "{
    \"tasks\": {
      \"TASK_NAME\": {
        \"type\": \"Experimental_Lineage\",
        \"translation_details\": {
          \"target_base_uri\": \"BUCKET_PATH\",
          \"source_target_mapping\": {
            \"source_spec\": {
              \"base_uri\": \"BUCKET_PATH\"
            }
          },
          \"target_types\": \"LINEAGE\"
        }
      }
    }
  }
  " \
    -H "Content-Type:application/json" \
    -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows

Sostituisci quanto segue:

  • TASK_NAME: un nome per identificare questa tracciabilità.
  • BUCKET_PATH: il percorso del bucket Cloud Storage che contiene i file ZIP di input.
  • PROJECT_ID: l'ID progetto del tuo progettoGoogle Cloud .
  • LOCATION: una località di elaborazione. Questo valore deve essere eu o us.

Questa chiamata restituisce un messaggio simile al seguente:

  {
    "name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID",
    "tasks": {
      "task_name": { /*...*/ }
    },
    "state": "RUNNING"
  }

Il job di derivazione è ora in esecuzione. Il job può richiedere diverse ore per essere completato, a seconda delle dimensioni dell'input. Per controllare lo stato del job di tracciabilità, esegui il seguente comando curl con l'ID workflow:

  curl \
  -H "Content-Type:application/json" \
  -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID

Al termine del job, lo strumento fornisce un link alla visualizzazione della derivazione generata.

Apri la tracciabilità della migrazione

Dopo aver generato una genealogia della migrazione, puoi aprirla utilizzando una delle seguenti opzioni:

Console

  1. Vai alla pagina I tuoi servizi di migrazione.

    Vai a I tuoi servizi di migrazione

  2. In Traduci SQL, fai clic su Visualizza recenti.

  3. Nella pagina Traduzioni SQL, fai clic sul nome del job per selezionare il job di tracciabilità completo. I job di derivazione hanno il valore di output Lineage.

  4. Nella pagina Dettagli traduzione, fai clic su Data lineage.

API

Per aprire la derivazione di una migrazione completata, esegui il seguente comando curl con l'API BigQuery Migration:

  curl \
  -H "Content-Type:application/json" \
  -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto del tuo progettoGoogle Cloud .
  • LOCATION: una località di elaborazione. Questo valore deve essere eu o us.
  • WORKFLOW_ID: l'ID workflow della tracciabilità generata.

Vai al link incluso nel campo taskResult.translationTaskResult.consoleUri del messaggio di output.

Utilizzare la tracciabilità della migrazione

Le sezioni seguenti descrivono i modi in cui puoi utilizzare la tracciabilità della migrazione per lavorare con i dati e il database di origine.

Informazioni sui termini di derivazione della migrazione

Nella tracciabilità di una migrazione vengono utilizzati i seguenti termini:

Termini Descrizione
Script Script SQL e altri programmi visibili nei log del database acquisiti durante la creazione della tracciabilità. Gli script sono composti da istruzioni, che più comunemente sono singole istruzioni SQL.
Nodi I vertici del grafico della derivazione. Sono costituiti da tabelle e colonne.
Tabelle Chiamate anche relazioni, tra cui tabelle ordinarie, viste, file strutturati e altre risorse simili a tabelle.
Colonne Chiamati anche attributi, tra cui colonne della tabella, proiezioni delle visualizzazioni, pseudocolonne, campi simili a colonne in file e altre risorse e sottocolonne come i campi struct.
Bordi Connessioni tra i nodi di tracciabilità che indicano interazioni dovute a una pipeline che esegue uno script che legge o scrive questi nodi. I bordi sono annotati con timestamp, predicati e altri metadati dal momento in cui sono stati derivati. Un nodo adiacente a un altro nodo con un arco è chiamato connessione diretta; un percorso di archi tra due nodi è chiamato connessione indiretta.
Archi di derivazione Archi direzionali che indicano che il nodo di origine è stato incluso in una clausola come FROM, WHERE o GROUP BY che ha influenzato i dati del nodo di destinazione.
Utenti e pipeline Etichette dei metadati fornite dal database di origine su chi e cosa ha eseguito gli script. Non hanno un significato intrinseco per il motore di tracciabilità, ma vengono utilizzati per raggruppare gli script in base all'origine.

Le seguenti sezioni descrivono le diverse pagine di una tracciabilità di migrazione.

Esamina la pagina di destinazione

La pagina di destinazione della tracciabilità della migrazione mostra l'ID del job di tracciabilità, un campo di ricerca per individuare gli oggetti di tracciabilità per nome e un elenco di suggerimenti che evidenzia alcuni oggetti di tracciabilità che potrebbero essere di interesse. La pagina include anche i conteggi totali di tabelle, pipeline e utenti nella genealogia della migrazione.

Per passare a una determinata tabella, visualizzazione o colonna, cerca l'oggetto nel campo di ricerca oppure fai clic su uno degli oggetti suggeriti nella pagina di destinazione.

Esaminare la pagina del nodo

Per esaminare i nodi nella tracciabilità della migrazione, fai clic su una delle seguenti schede.

Scheda Flusso di dati

La scheda Flusso di dati mostra una rappresentazione visiva di una parte del grafico della derivazione. È la pagina predefinita quando visualizzi una tabella o una colonna per la prima volta nel servizio di lineage. Il grafico mostra visivamente il modo in cui i dati si spostano nel sistema di origine. I nodi di questo grafico rappresentano tabelle o viste, mentre i bordi tra i nodi rappresentano i dati che fluiscono dai nodi a sinistra verso i nodi a destra.

Ogni tabella nel grafico Flusso di dati mostra il nome non qualificato. Per visualizzare il nome completo di una tabella con il prefisso del database e dello schema, tieni il puntatore sopra il nodo per visualizzare la relativa descrizione comando. Ogni tabella indica il proprio schema come indicato dalla barra verticale sul nodo. Tutti gli schemi nella tracciabilità sono ordinati in ordine alfabetico e viene assegnato un colore, in modo che le tabelle nello stesso schema abbiano le stesse barre colorate e le tabelle negli schemi con nomi simili abbiano barre colorate in modo simile.

Ogni nodo mostra un'icona che indica le proprietà del nodo:

  • monitor: una visualizzazione, non una tabella.
  • memorizzata nella cache: una tabella che viene sempre aggiornata completamente (troncata e poi riscritta). Fai clic sull'icona per visualizzare gli script adiacenti a questa tabella.
  • cached: una tabella che non viene sempre aggiornata completamente (troncata e poi riscritta). Fai clic sull'icona per visualizzare gli script adiacenti a questa tabella.
  • timer: una tabella di breve durata. Tieni premuto il puntatore sopra l'icona per visualizzare la durata di esistenza della tabella.
  • snowflake: una tabella in cui è stata eseguita l'ultima scrittura più di sette giorni fa, il che suggerisce una tabella con dati statici o scritti di rado.

Per esaminare gli oggetti nel grafico Flusso di dati:

  • Per visualizzare un elenco di colonne della tabella, fai clic su una tabella. Questa visualizzazione include il nome di ogni colonna, nonché il relativo tipo di dati, come determinato da un dump dei metadati fornito o dedotto dall'SQL visualizzato nei log delle query.
  • Per visualizzare il grafico della derivazione a livello di colonna, fai clic su una colonna. Nel grafico della derivazione a livello di colonna, gli archi rappresentano i flussi di dati che interessano la colonna di destinazione.
  • Per visualizzare i dettagli di un arco, fai clic su un arco nel grafico. Questa visualizzazione include link agli script SQL che hanno indotto il limite.

    Viene generato un arco da un nodo di origine a un nodo di destinazione quando un'istruzione SQL fa riferimento al nodo di origine durante il calcolo dei dati che vengono inseriti nel nodo di destinazione. In genere, ciò comporta il trasferimento di dati dall'origine alla destinazione, ma la scheda Flusso di dati mostra anche un bordo quando il nodo di origine viene utilizzato in una clausola WHERE o GROUP BY che influisce sulla destinazione. Per filtrare solo i trasferimenti di dati, attiva/disattiva il pulsante Mostra archi non di dati nella barra degli strumenti.

Scheda Connessioni

La scheda Connessioni di un nodo di tracciabilità mostra un elenco di nodi vicini nel grafo di tracciabilità. Per impostazione predefinita, i nodi connessi sono ordinati in base alla distanza del percorso più breve dal nodo corrente. I nodi che richiedono meno archi per essere raggiunti dal nodo corrente vengono elencati per primi. Puoi modificare l'ordinamento con l'opzione Ordina.

L'elenco delle connessioni include per impostazione predefinita sia i nodi upstream (producer) che downstream (consumer) del nodo corrente. Puoi modificare questo filtro con il controllo Tipo. Nella colonna Distanza, i nodi a monte del nodo corrente vengono mostrati con una freccia rivolta verso l'alto con la distanza del percorso all'indietro più breve fino a quel nodo dal nodo corrente; allo stesso modo, i nodi a valle del nodo corrente vengono mostrati con una freccia rivolta verso il basso con la distanza del percorso in avanti più breve fino a quel nodo dal nodo corrente. Un nodo può essere sia a monte che a valle del nodo corrente se fa parte di un ciclo.

Per scaricare un file contenente tutti i nodi visualizzati, fai clic su Scarica CSV

Scheda utenti

La scheda Utenti di un nodo mostra gli utenti che hanno eseguito script che leggono o scrivono il nodo o i nodi a monte o a valle. Per impostazione predefinita, l'utente che ha eseguito il maggior numero di azioni separate viene visualizzato per primo. Puoi modificare l'ordinamento con l'opzione Ordina.

Per scaricare un file contenente tutti gli utenti visualizzati, fai clic su Scarica CSV.

Scheda Pipeline

La scheda Pipeline di un nodo mostra le pipeline che hanno eseguito script che leggono o scrivono il nodo o i nodi upstream o downstream. Per impostazione predefinita, la pipeline che ha eseguito il maggior numero di azioni separate viene elencata per prima. Puoi modificare l'ordinamento con l'opzione Ordina.

Per scaricare un file contenente tutte le pipeline visualizzate, fai clic su Scarica CSV.

Scheda Codice

La scheda Codice di un nodo mostra tutti gli script SQL visualizzati nei file di input che leggono o scrivono dati nel nodo. Le menzioni del nodo vengono evidenziate nel testo SQL. Fai clic su un copione per espandere il testo completo. Puoi modificare le impostazioni del filtro per filtrare l'elenco degli script visualizzati.

Per scaricare un file contenente tutti gli script visualizzati, fai clic su Scarica CSV.

Esamina la pagina Edge

Per esaminare gli archi dei nodi nel grafico di tracciabilità, fai clic su una delle seguenti schede.

Scheda Dettagli

La scheda Dettagli di un arco mostra i predicati e le categorie che descrivono le operazioni eseguite dagli script che hanno indotto l'arco.

I predicati sono indicati come codici in tre parti separati da trattini. La prima parte è r, che indica che l'origine del bordo è una relazione, oppure a, che indica che l'origine del bordo è un attributo. La seconda parte è una delle seguenti abbreviazioni che indica il modo in cui il nodo di origine ha influenzato i dati nel nodo di destinazione:

  • has: la relazione di origine contiene l'attributo target.
  • dat: l'origine copia o trasferisce i dati alla destinazione.
  • res: i filtri di origine limitano la cardinalità della destinazione in una clausola come WHERE, HAVING o JOIN ON.
  • grp: l'origine viene utilizzata in una clausola GROUP BY che influisce sulla destinazione.

La terza parte è r o a, a seconda che la destinazione del bordo sia una relazione o un attributo.

Le categorie limite possono includere:

  • Predicati dat:
    • AGGREGATE: l'origine è stata utilizzata in un calcolo aggregato che ha scritto la destinazione.
    • EXACT_COPY: i dati dell'origine sono stati copiati integralmente nella destinazione.
    • FUNCTION: la sorgente è stata utilizzata per calcolare il target.
    • IDENTITY_COPY: il target non è stato calcolato. La destinazione era una copia letterale della sorgente senza cast o conversioni.
    • PARTITION_PROMOTION: la destinazione contiene dati dall'origine a seguito della promozione di una partizione dell'origine alla destinazione.
    • WEAK_COPY: i dati dell'origine sono stati copiati almeno parzialmente nella destinazione.
  • Predicati res:
    • FILTER: l'origine è stata utilizzata in un confronto che ha scritto la destinazione.
    • KEY: i dati dell'origine sono stati utilizzati come chiave in un confronto di join che ha scritto la destinazione.
  • Predicati grp:
    • GROUP: i dati dell'origine sono stati utilizzati come chiave in una clausola GROUP BY che influisce sulla destinazione.

Scheda Codice

La scheda Codice di un arco mostra gli script SQL che hanno indotto l'arco. I nodi di origine e di destinazione del bordo vengono evidenziati quando vengono menzionati nel testo SQL.

Passaggi successivi