Derivazione dei dati con Dataplex

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Informazioni sull'integrazione della derivazione dei dati

La derivazione dei dati è una funzionalità di Dataplex che consente di monitorare il modo in cui i dati vengono spostati nei sistemi: da dove provengono, dove vengono inviati e a quali trasformazioni sono sottoposti. La derivazione dei dati è disponibile per:

Una volta attivata la funzionalità nell'ambiente Cloud Composer, l'esecuzione di DAG che utilizzano uno degli operatori supportati fa sì che Cloud Composer registri le informazioni sulla cronologia all'API Data Lineage.

Potrai quindi accedere a queste informazioni utilizzando:

Operatori supportati

I seguenti operatori supportano i report automatici sulla provenienza in Cloud Composer:

  • airflow.providers.google.cloud.operators.bigquery.BigQueryExecuteQueryOperator
  • airflow.providers.google.cloud.operators.bigquery.BigQueryInsertJobOperator
  • airflow.providers.google.cloud.transfers.bigquery_to_bigquery.BigQueryToBigQueryOperator
  • airflow.contrib.operators.bigquery_to_gcs.BigQueryToCloudStorageOperator
  • airflow.providers.google.cloud.transfers.bigquery_to_gcs.BigQueryToGCSOperator
  • airflow.providers.google.cloud.transfers.gcs_to_bigquery.GCSToBigQueryOperator
  • airflow.contrib.operators.gcs_to_bq.GoogleCloudStorageToBigQueryOperator
  • airflow.providers.google.cloud.operators.dataproc.DataprocSubmitJobOperator

Ad esempio, esegui la seguente attività:

task = BigQueryInsertJobOperator(
    task_id='snapshot_task',
    dag=dag,
    location='<dataset-location>',
    configuration={
        'query': {
            'query': 'SELECT * FROM dataset.tableA',
            'useLegacySql': False,
            'destinationTable': {
                'project_id': GCP_PROJECT,
                'dataset_id': 'dataset',
                'table_id': 'tableB',
            },
        }
    },
)

Viene creato il seguente grafico della struttura nella UI di Dataplex:

Esempio di grafico della struttura in Dataplex UI.
Figura 1. Grafo di eredità di esempio per una tabella BigQuery nell'interfaccia utente di Dataplex.

Considerazioni sulle funzionalità per Cloud Composer

Ogni esecuzione dell'attività Airflow che genera il report sulla provenienza dei dati esegue:

  • Una richiesta RPC di creazione o aggiornamento per un processo di albero genealogico
  • Una richiesta RPC di creazione o aggiornamento per un'esecuzione della cronologia
  • Una o più richieste RPC per creare eventi di albero genealogico (nella maggior parte dei casi 0 o 1)

Per informazioni dettagliate su queste entità, consulta il modello di informazioni sulla derivazione e il riferimento all'API Lineage nella documentazione di Dataplex.

Il traffico di origine emesso è soggetto alle quote nell'API Data Lineage. Cloud Composer consuma la quota di scrittura.

I prezzi associati alla gestione dei dati sulla struttura sono soggetti ai prezzi della struttura. Consulta le considerazioni sulla concatenazione dei dati.

Implicazioni sul rendimento

La derivazione dei dati viene registrata al termine dell'esecuzione dell'attività Airflow. In media, i report sulla tracciabilità dei dati richiedono circa 1-2 secondi.

Ciò non influisce sul rendimento dell'attività stessa: le attività Airflow non si arrestano se la sequenza non viene registrata correttamente nell'API Lineage. La logica dell'operatore principale non è interessata, ma l'intera istanza dell'attività impiega un po' più di tempo per tenere conto dei dati sulla struttura report.

Un ambiente che registra la derivazione dei dati avrà un aumento minore dei costi associati, a causa del tempo aggiuntivo necessario per registrare la derivazione dei dati.

Conformità

La consistenza dei dati offre diversi livelli di assistenza per funzionalità come i Controlli di servizio VPC. Esamina le considerazioni sulla consistenza dei dati per assicurarti che i livelli di assistenza corrispondano ai requisiti del tuo ambiente.

Utilizzare l'integrazione della derivazione dei dati

L'integrazione della derivazione dei dati per Cloud Composer viene gestita su base per ambiente. Ciò significa che l'attivazione della funzionalità richiede due passaggi:

  1. Abilita l'API Data Lineage nel tuo progetto.
  2. Abilita l'integrazione della derivazione dei dati in un ambiente Cloud Composer specifico.

Prima di iniziare

Quando crei un ambiente, l'integrazione della cronologia dei dati viene attivata automaticamente se sono soddisfatte le seguenti condizioni:

  • L'API Data Lineage è abilitata nel progetto. Per ulteriori informazioni, consulta Abilitazione dell'API Data Lineage nella documentazione di Dataplex.

  • Un backend della struttura personalizzato non è configurato in Airflow.

Per un ambiente esistente, puoi abilitare o disattivare l'integrazione della derivazione dei dati in qualsiasi momento.

Ruoli obbligatori

L'integrazione con la cronologia dei dati richiede l'aggiunta delle seguenti autorizzazioni per l'account di servizio dell'ambiente Cloud Composer:

  • Per gli account di servizio predefiniti: non sono necessarie modifiche. Gli account di servizio predefiniti includono le autorizzazioni richieste.
  • Per gli account di servizio gestiti dall'utente: concedi al tuo account di servizio il ruolo Composer Worker (roles/composer.worker). Questo ruolo include tutte le autorizzazioni necessarie per la concatenazione dei dati.

Per maggiori dettagli, consulta la sezione Ruoli e autorizzazioni della derivazione nella documentazione di Dataplex.

Attivare la derivazione dei dati in Cloud Composer

Console

  1. Nella console Google Cloud, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli dell'ambiente.

  3. Seleziona la scheda Configurazione dell'ambiente.

  4. Nella sezione Integrazione della derivazione dei dati Dataplex, fai clic su Modifica.

  5. Nel riquadro Integrazione della derivazione dei dati Dataplex, seleziona Abilita l'integrazione con la derivazione dei dati Dataplex e fai clic su Salva.

gcloud

Utilizza l'argomento --enable-cloud-data-lineage-integration.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-cloud-data-lineage-integration

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.

    Il nome deve iniziare con una lettera minuscola seguita da un massimo di 62 lettere minuscole, numeri o trattini e non può terminare con un trattino. Il nome dell'ambiente viene utilizzato per creare sottocomponenti per l'ambiente, quindi devi fornire un nome valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco delle limitazioni.

  • LOCATION con la regione per l'ambiente.

    Una località è la regione in cui si trova il cluster GKE dell'ambiente.

Esempio:

gcloud composer environments update example-environment \
    --location us-central1 \
    --enable-cloud-data-lineage-integration

Inviare eventi di derivazione personalizzati

Puoi inviare eventi di appartenenza alla struttura personalizzati se vuoi registrare la struttura per un operatore che non è supportato per i report automatici sulla struttura.

Ad esempio, per inviare eventi personalizzati con:

  • BashOperator, modifica il parametro inlets o outlets nella definizione della tarefa.
  • PythonOperator, modifica il parametro task.inlets o task.outlets nella definizione dell'attività. L'utilizzo di AUTO per il parametro inlets imposta il suo valore su outlets dell'attività a monte.

Ad esempio, esegui questa attività:


from airflow.composer.data_lineage.entities import BigQueryTable
from airflow.lineage import AUTO



bash_task = BashOperator(
   task_id='bash_task',
   dag=dag,
   bash_command='sleep 0',
   inlets=[BigQueryTable(
       project_id=GCP_PROJECT,
       dataset_id='dataset',
       table_id='table1',
   )],
   outlets=[BigQueryTable(
       project_id=GCP_PROJECT,
       dataset_id='dataset',
       table_id='table2',
   )]
)


def _python_task(task):
   task.inlets.append(BigQueryTable(
       project_id=GCP_PROJECT,
       dataset_id='dataset',
       table_id='table3',
   ))

   task.outlets.append(BigQueryTable(
       project_id=GCP_PROJECT,
       dataset_id='dataset',
       table_id='table4',
   ))


python_task = PythonOperator(
   task_id='python_task',
   dag=dag,
   python_callable=_python_task,
   inlets=[AUTO],
)

bash_task >> python_task

Viene creato il seguente grafico della struttura nella UI di Dataplex:

Esempio di grafico della struttura per gli eventi personalizzati nell&#39;interfaccia utente di Dataplex.
Figura 2. Grafo di eredità di esempio per più tabelle BigQuery nell'interfaccia utente di Dataplex.

Disattivare la derivazione dei dati in Cloud Composer

La disattivazione dell'integrazione della struttura in un ambiente Cloud Composer non disattiva l'API Data Lineage. Se vuoi disattivare completamente i report sulla derivazione per il tuo progetto, disattiva anche l'API Data Lineage. Consulta la sezione Disattivare i servizi.

Console

  1. Nella console Google Cloud, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli dell'ambiente.

  3. Seleziona la scheda Configurazione dell'ambiente.

  4. Nella sezione Integrazione della derivazione dei dati Dataplex, fai clic su Modifica.

  5. Nel riquadro Integrazione della derivazione dei dati Dataplex, seleziona Disabilita l'integrazione con la derivazione dei dati Dataplex e fai clic su Salva.

gcloud

Utilizza l'argomento --disable-cloud-data-lineage-integration.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-cloud-data-lineage-integration

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.

    Il nome deve iniziare con una lettera minuscola seguita da un massimo di 62 lettere minuscole, numeri o trattini e non può terminare con un trattino. Il nome dell'ambiente viene utilizzato per creare sottocomponenti per l'ambiente, quindi devi fornire un nome valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco delle limitazioni.

  • LOCATION con la regione per l'ambiente.

    Una località è la regione in cui si trova il cluster GKE dell'ambiente.

Esempio:

gcloud composer environments update example-environment \
    --location us-central1 \
    --disable-cloud-data-lineage-integration

Visualizzare i log della cronologia in Cloud Composer

Puoi esaminare i log relativi alla derivazione dei dati utilizzando il link nella pagina Configurazione dell'ambiente nella sezione Integrazione della derivazione dei dati Dataplex.

Risoluzione dei problemi

Se i dati sulla cronologia non vengono registrati nell'API Lineage o non riesci a visualizzarli in Dataplex, prova i seguenti passaggi per la risoluzione dei problemi:

  • Assicurati che l'API Data Lineage sia attivata nel progetto del tuo ambiente Cloud Composer.
  • Verifica se l'integrazione della derivazione dei dati è attiva nell'ambiente Cloud Composer.
  • Verifica se l'operatore che utilizzi è incluso nel supporto per i report sulla provenienza automatica. Consulta Operatori di Airflow supportati.
  • Controlla i log della cronologia in Cloud Composer per individuare eventuali problemi.