Pianifica una migrazione con la derivazione della migrazione

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

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

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

Il servizio di derivazione della migrazione supporta i seguenti dialetti SQL:

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

Limitazioni

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

Località supportate

Il servizio di derivazione della migrazione è disponibile in alcune località. Per saperne di più, consulta Località del traduttore SQL e del servizio di derivazione di BigQuery.

Autorizzazioni obbligatorie

Per ottenere le autorizzazioni necessarie per utilizzare il servizio di derivazione 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 derivazione della migrazione. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per utilizzare il servizio di derivazione 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ù sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni IAM di BigQuery.

Trace la derivazione di una migrazione

Per tracciare un'origine 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 tracciare la derivazione della migrazione con la console Cloud de Confiance o l'API BigQuery Migration.

Esegui lo strumento dwh-migration-dumper

Seleziona una delle seguenti opzioni:

Amazon Redshift

Per tracciare e visualizzare la derivazione della migrazione su un database Amazon Redshift, segui questi passaggi:

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

Snowflake

Per tracciare e visualizzare una derivazione della migrazione su un database Snowflake, segui questi passaggi:

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

Teradata

Per tracciare e visualizzare la derivazione di una migrazione su un database Teradata, segui questi passaggi:

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

BigQuery

Per tracciare e visualizzare un'origine della migrazione su un database BigQuery, segui questi passaggi:

  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 metadati e log delle 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 su Cloud Storage, consulta Crea un bucket e Carica oggetti da un file system.

Traccia tracciabilità

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

Console

  1. Vai alla pagina I tuoi servizi di migrazione.

    Vai a I tuoi servizi di migrazione

  2. In Traccia derivazione, fai clic su Traduci traccia.

  3. In Configurazione della derivazione, 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. In Località di elaborazione, seleziona la località in cui vuoi eseguire il job di derivazione.
  4. In Modifica posizione 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.

    Puoi aggiungere altri file di input facendo clic su Aggiungi una posizione della directory di input.

  5. Fai clic su Trace.

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

API

Per tracciare un job di derivazione, 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 questo job di derivazione.
  • BUCKET_PATH: il percorso del bucket Cloud Storage che contiene i file ZIP di input.
  • PROJECT_ID: l'ID progetto del tuo progettoCloud de Confiance .
  • 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 completamento del job può richiedere diverse ore, a seconda delle dimensioni dell'input. Per controllare lo stato del job di derivazione, 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 tracciata.

Apri la derivazione della migrazione

Dopo aver tracciato un'origine 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 Traccia derivazione, fai clic su Visualizza recenti.

  3. Nella pagina Lineage della migrazione, fai clic sul nome del job per selezionare il job di lineage completo.

  4. Nella pagina Dettagli traduzione, fai clic su Derivazione dei dati.

API

Per aprire un lineage di migrazione completato, 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 progettoCloud de Confiance .
  • LOCATION: una località di elaborazione. Questo valore deve essere eu o us.
  • WORKFLOW_ID: l'ID workflow della derivazione tracciata.

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

Utilizza la derivazione della migrazione

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

Informazioni sui termini relativi alla derivazione della migrazione

I seguenti termini vengono utilizzati in una derivazione della migrazione:

Termini Descrizione
Script Script SQL e altri programmi visibili nei log del database importati durante la creazione della derivazione. Gli script sono composti da istruzioni, che nella maggior parte dei casi sono singole istruzioni SQL.
Nodi I vertici del grafico di derivazione. Questi sono costituiti da tabelle e colonne.
Tabelle Chiamate anche relazioni, includono tabelle ordinarie, viste, file strutturati e altre risorse simili a tabelle.
Colonne Chiamate anche attributi, tra cui colonne di tabelle, proiezioni di viste, pseudocolonne, campi simili a colonne in file e altre risorse e sottocolonne come i campi struct.
Bordi Connessioni tra i nodi di derivazione che indicano interazioni dovute a una pipeline che esegue uno script che ha letto o scritto i nodi. Gli archi sono annotati con timestamp, predicati e altri metadati relativi al 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 derivazione, ma vengono utilizzati per raggruppare gli script in base all'origine.

Le sezioni seguenti descrivono le diverse pagine di una derivazione della migrazione.

Esamina la pagina di destinazione

La pagina di destinazione della derivazione della migrazione mostra l'ID del job di derivazione, un campo di ricerca per individuare gli oggetti di derivazione per nome e un elenco di suggerimenti che evidenzia alcuni oggetti di derivazione che potrebbero essere di interesse. La pagina include anche il numero totale di tabelle, pipeline e utenti nella derivazione della migrazione.

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

Esamina la pagina del nodo

Per esaminare i nodi nella derivazione 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 di derivazione. È la pagina predefinita quando visualizzi una tabella o una colonna per la prima volta nel servizio di derivazione. Il grafico mostra come i dati si spostano nel sistema di origine. I nodi in 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 proprio nome non qualificato. Per visualizzare il nome completo di una tabella con il prefisso del database e dello schema, tieni il puntatore sul nodo per visualizzare il relativo tooltip. Ogni tabella indica il proprio schema, come indicato dalla barra verticale sul nodo. Tutti gli schemi nella derivazione sono ordinati in ordine alfabetico e viene assegnato loro un colore, quindi le tabelle nello stesso schema hanno barre dello stesso colore e le tabelle negli schemi con nomi simili hanno barre di colore simile.

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

  • monitor: una vista, non una tabella.
  • cached: 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 sull'icona per visualizzare la durata della tabella.
  • snowflake: una tabella in cui l'ultima scrittura è avvenuta 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, segui questi passaggi:

  • Per visualizzare un elenco di colonne della tabella, fai clic su una tabella. Questa visualizzazione include il nome di ogni colonna e il relativo tipo di dati, come determinato da un dump dei metadati fornito o dedotto dal codice SQL visualizzato nei log delle query.
  • Per visualizzare il grafico della derivazione a livello di colonna per una colonna, fai clic su una colonna. Nel grafico della derivazione a livello di colonna, i bordi rappresentano i flussi di dati che influiscono sulla 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 generato l'arco.

    Viene generato un arco da un nodo di origine a un nodo di destinazione quando un'istruzione SQL fa riferimento al nodo di origine mentre l'istruzione calcola i dati inseriti nel nodo di destinazione. In genere, questo comporta il trasferimento dei dati dall'origine alla destinazione, ma la scheda Flusso di dati mostra anche un arco 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 derivazione mostra un elenco di nodi vicini nel grafico di derivazione. 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.

Per impostazione predefinita, l'elenco delle connessioni include sia i nodi upstream (producer) che quelli downstream (consumer) del nodo corrente. Puoi modificare questo filtro con il controllo Tipo. Nella colonna Distanza, i nodi a monte del nodo corrente sono mostrati con una freccia rivolta verso l'alto con la distanza del percorso di ritorno più breve verso quel nodo dal nodo corrente; analogamente, i nodi a valle del nodo corrente sono mostrati con una freccia rivolta verso il basso con la distanza del percorso di andata più breve verso quel nodo dal nodo corrente. Un nodo può essere sia upstream che downstream 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 hanno letto o scritto il nodo o i nodi a monte o a valle. Per impostazione predefinita, l'utente che ha eseguito il maggior numero di azioni distinte viene elencato 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 hanno letto o scritto 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 in quel nodo. Le menzioni del nodo sono evidenziate nel testo SQL. Fai clic su uno script 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 derivazione, 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 generato l'arco.

I predicati sono indicati come codici di tre parti separati da trattini. La prima parte è r, che indica che l'origine dell'arco è una relazione, o a, che indica che l'origine dell'arco è 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 di destinazione.
  • dat: l'origine copia o trasferisce i dati alla destinazione.
  • res: l'origine filtra o limita 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.

Anche la terza parte è r o a, a indicare se la destinazione dell'edge è una relazione o un attributo.

Le categorie di archi 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 interamente nella destinazione.
    • FUNCTION: l'origine è stata utilizzata per calcolare la destinazione.
    • IDENTITY_COPY: il target non è stato calcolato. La destinazione era una copia letterale dell'origine senza cast o conversioni.
    • PARTITION_PROMOTION: la destinazione contiene i dati dell'origine come risultato 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 interessa la destinazione.

Scheda Codice

La scheda Codice di un arco mostra gli script SQL che hanno generato l'arco. I nodi di origine e di destinazione dell'arco sono evidenziati dove sono menzionati nel testo SQL.

Passaggi successivi