Esegui trasformazioni in BigQuery

Questa pagina descrive come eseguire le trasformazioni in BigQuery anziché in Spark in Cloud Data Fusion.

Per ulteriori informazioni, consulta la Panoramica del pushdown della trasformazione.

Prima di iniziare

La trasformazione Pushdown è disponibile nella versione 6.5.0 e successive. Se la pipeline viene eseguita in un ambiente precedente, puoi eseguire l'upgrade dell'istanza alla versione più recente.

Abilita il pushdown della trasformazione sulla pipeline

Console

Per abilitare il pushdown della trasformazione su una pipeline di cui è stato eseguito il deployment, segui questi passaggi:

  1. Vai all'istanza:

    1. Nella console Google Cloud, vai alla pagina di Cloud Data Fusion.

    2. Per aprire l'istanza in Cloud Data Fusion Studio, fai clic su Istanze e poi su Visualizza istanza.

      Vai a Istanze

  2. Fai clic su Menu > Elenco.

    Si apre la scheda della pipeline di cui è stato eseguito il deployment.

  3. Fai clic sulla pipeline di cui hai eseguito il deployment per aprirla in Pipeline Studio.

  4. Fai clic su Configura > Pushdown trasformazione.

    Abilita pushdown della trasformazione.

  5. Fai clic su Abilita pushdown della trasformazione.

  6. Nel campo Set di dati, inserisci il nome di un set di dati BigQuery.

    (Facoltativo) Per utilizzare una macro, fai clic su M. Per ulteriori informazioni, consulta Set di dati.

  7. (Facoltativo) Configura le opzioni, se necessario.

  8. Fai clic su Salva.

Configurazioni facoltative

.
Proprietà Supporta le macro Versioni di Cloud Data Fusion supportate Descrizione
Usa connessione No 6.7.0 e versioni successive Indica se utilizzare una connessione esistente.
Connection 6.7.0 e versioni successive Il nome della connessione. Questa connessione fornisce informazioni sul progetto e sull'account di servizio.
Facoltativo: utilizza la macro la funzione ${conn(connection_name)}.
ID progetto set di dati 6.5.0 Se il set di dati si trova in un progetto diverso da quello in cui viene eseguito il job BigQuery, inserisci l'ID progetto del set di dati. Se non viene fornito alcun valore, per impostazione predefinita viene utilizzato l'ID progetto in cui viene eseguito il job.
ID progetto 6.5.0 L'ID progetto Google Cloud.
Tipo di account di servizio 6.5.0 Seleziona una delle seguenti opzioni:
  • File Path (Percorso file): il percorso del file per l'account di servizio.
  • JSON: i contenuti JSON dell'account di servizio.
Il valore predefinito è JSON.
Percorso file dell'account di servizio 6.5.0 Il percorso nel file system locale alla chiave dell'account di servizio utilizzata per l'autorizzazione. È impostato su auto-detect quando viene eseguito su un cluster Dataproc. Quando viene eseguito su altri cluster, il file deve essere presente su ogni nodo del cluster. Il valore predefinito è auto-detect.
JSON dell'account di servizio 6.5.0 I contenuti del file JSON dell'account di servizio.
Nome bucket temporaneo 6.5.0 Il bucket Cloud Storage in cui sono archiviati i dati temporanei. Viene creata automaticamente se non esiste, ma non viene eliminata automaticamente. I dati di Cloud Storage vengono eliminati dopo essere stati caricati in BigQuery. Se questo valore non viene fornito, viene creato un bucket univoco che viene quindi eliminato al termine dell'esecuzione della pipeline. L'account di servizio deve avere l'autorizzazione per creare bucket nel progetto configurato.
Località 6.5.0 La località in cui viene creato il set di dati BigQuery. Questo valore viene ignorato se il set di dati o il bucket temporaneo esiste già. Il valore predefinito è US in più regioni.
Nome chiave di crittografia 6.5.1/0.18.1 La chiave di crittografia gestita dal cliente (CMEK) che cripta i dati scritti in qualsiasi bucket, set di dati o tabella creati dal plug-in. Se il bucket, il set di dati o la tabella esiste già, questo valore viene ignorato.
Conserva le tabelle BigQuery dopo il completamento 6.5.0 Indica se conservare tutte le tabelle temporanee BigQuery create durante l'esecuzione della pipeline a scopo di debug e convalida. Il valore predefinito è No.
TTL tabella temporanea (in ore) 6.5.0 Imposta il TTL della tabella per le tabelle temporanee BigQuery in ore. Questa funzionalità è utile come sicurezza in caso di annullamento della pipeline e di interruzione del processo di pulizia (ad esempio, se il cluster di esecuzione viene arrestato improvvisamente). Se questo valore viene impostato su 0, il TTL della tabella viene disabilitato. Il valore predefinito è 72 (3 giorni).
Priorità job 6.5.0 La priorità utilizzata per eseguire i job BigQuery. Seleziona una delle seguenti opzioni:
  1. Batch: un job batch viene messo in coda e avviato non appena sono disponibili risorse inattive, solitamente entro pochi minuti. Se il job non viene avviato entro tre ore, la sua priorità viene impostata su interattivo.
  2. Interattivo: un job interattivo viene eseguito il prima possibile e viene conteggiato ai fini del limite di frequenza e del limite di frequenza giornaliero in parallelo.
Il valore predefinito è Batch.
Fasi per forzare il push-down 6.7.0 Fasi supportate per l'esecuzione sempre in BigQuery. Ogni nome di fase deve essere su una riga separata.
Fasi per saltare il push-down 6.7.0 Fasi supportate per non eseguire mai in BigQuery. Ogni nome della fase deve essere su una riga separata.
Utilizza l'API BigQuery Storage Read 6.7.0 Indica se utilizzare l'API BigQuery Storage Read durante l'estrazione di record da BigQuery durante l'esecuzione della pipeline. Questa opzione può migliorare le prestazioni del pushdown della trasformazione, ma comporta costi aggiuntivi. Ciò richiede che Scala 2.12 sia installato nell'ambiente di esecuzione.

Monitorare le variazioni delle prestazioni nei log

I log di runtime della pipeline includono messaggi che mostrano le query SQL eseguite in BigQuery. Puoi monitorare le fasi della pipeline che vengono inviate a BigQuery.

L'esempio seguente mostra le voci di log all'inizio dell'esecuzione della pipeline. I log indicano che le operazioni JOIN nella tua pipeline sono state sottoposte a push-down in BigQuery per l'esecuzione:

  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'Users' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserProfile'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserDetails'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'Users'
  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'UserPurchases' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'Purchases'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'UserPurchases'
  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'MostPopularNames' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'FirstNameCounts'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'MostPopularNames'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@193] - Starting pull for dataset 'MostPopularNames'

L'esempio seguente mostra i nomi delle tabelle che verranno assegnati a ciascun set di dati coinvolto nell'esecuzione del push-down:

  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset Purchases stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserDetails stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset FirstNameCounts stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserProfile stored in table <TABLE_ID>

Mentre l'esecuzione prosegue, i log mostrano il completamento delle fasi di push e, alla fine, l'esecuzione delle operazioni JOIN. Ad esempio:

  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserProfile'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserDetails'
  DEBUG [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@235] - Executing join operation for dataset Users
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@118] - Creating table `<TABLE_ID>` using job: <JOB_ID> with SQL statement: SELECT `UserDetails`.id AS `id` , `UserDetails`.first_name AS `first_name` , `UserDetails`.last_name AS `last_name` , `UserDetails`.email AS `email` , `UserProfile`.phone AS `phone` , `UserProfile`.profession AS `profession` , `UserProfile`.age AS `age` , `UserProfile`.address AS `address` , `UserProfile`.score AS `score` FROM `your_project.your_dataset.<DATASET_ID>` AS `UserProfile` LEFT JOIN `your_project.your_dataset.<DATASET_ID>` AS `UserDetails` ON `UserProfile`.id = `UserDetails`.id
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@151] - Created BigQuery table `<TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@245] - Executed join operation for dataset Users

Una volta completate tutte le fasi, un messaggio indica che l'operazione Pull è stata completata. Questo indica che il processo di esportazione BigQuery è stato attivato e che i record inizieranno a essere letti nella pipeline dopo l'avvio di questo job. Ad esempio:

DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@196] - Completed pull for dataset 'MostPopularNames'

Se si verificano errori durante l'esecuzione della pipeline, questi vengono descritti nei log.

Per informazioni dettagliate sull'esecuzione delle operazioni JOIN di BigQuery, come l'utilizzo delle risorse, il tempo di esecuzione e le cause degli errori, puoi visualizzare i dati del job BigQuery utilizzando l'ID job riportato nei log del job.

Esamina le metriche della pipeline

Per ulteriori informazioni sulle metriche fornite da Cloud Data Fusion per la parte della pipeline eseguita in BigQuery, consulta Metriche della pipeline push-down BigQuery.

Passaggi successivi