Questa pagina descrive come esportare le informazioni relative ai job memorizzate in Batch in una tabella BigQuery utilizzando i workflow. In particolare, scopri come eseguire il flusso di lavoro dei job di esportazione di esempio e come visualizzare le informazioni sui job risultanti in BigQuery.
L'esportazione delle informazioni di un job è utile quando vuoi conservarle dopo che un job è stato eliminato automaticamente o manualmente o analizzarle al di fuori di Batch. In alternativa, se vuoi esportare solo le informazioni relative alle modifiche dello stato di attività e job in BigQuery, consulta Monitorare i job utilizzando le notifiche.
Per scoprire come esportare le informazioni sui job archiviate in altri Google Cloud servizi, consulta la documentazione di esportazione del servizio in questione. Ad esempio, consulta le seguenti pagine:
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la guida introduttiva all'utilizzo di Batch e attivalo completando i prerequisiti per progetti e utenti.
-
Enable the BigQuery and Workflows APIs.
(Facoltativo) Identifica un set di dati o una tabella BigQuery esistente nel tuo progetto in cui vuoi memorizzare le informazioni sul job. Una tabella esistente deve avere uno schema corrispondente.
In caso contrario, puoi utilizzare il flusso di lavoro dei job di esportazione per creare un nuovo set di dati o una nuova tabella.
-
Prepara un account di servizio per il flusso di lavoro dei job di esportazione nel seguente modo:
- Crea un nuovo account di servizio o identifica un account di servizio esistente.
-
Per assicurarti che l'account di servizio disponga delle autorizzazioni necessarie per eseguire il flusso di lavoro dei job di esportazione, chiedi all'amministratore di concedere all'account di servizio i seguenti ruoli IAM nel progetto:
-
Scrivi log:
Logs Writer (
roles/logging.logWriter
) -
Crea e modifica set di dati e tabelle BigQuery:
BigQuery Admin (
roles/bigquery.admin
) -
Visualizza ed elimina i job batch:
Batch Job Editor (
roles/batch.jobsEditor
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere all'account di servizio le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
-
Scrivi log:
Logs Writer (
-
Per ottenere le autorizzazioni necessarie per creare, eseguire il deployment ed eseguire il workflow dei job di esportazione, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Visualizza i job:
Batch Job Viewer (
roles/batch.jobsViewer
) -
Visualizza gli account di servizio:
Visualizza account di servizio (
roles/iam.serviceAccountViewer
) -
Visualizza set di dati e tabelle BigQuery:
Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) -
Crea, esegui il deployment ed esegui i flussi di lavoro:
Workflows Editor (
roles/workflows.editor
)
-
Visualizza i job:
Batch Job Viewer (
-
Assicurati che gli utenti del progetto possano visualizzare le informazioni sui job esportati.
Per assicurarti che un utente disponga delle autorizzazioni necessarie per esportare le informazioni sui job, invita l'amministratore a concedere a un utente il ruolo IAM Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) per la tabella, il set di dati o il progetto.
Esportare le informazioni sul job
Questa sezione spiega come esportare le informazioni sui job utilizzando il
flusso di lavoro export-jobs, che proviene dall'export-to-bigquery
esempio di codice.
Il flusso di lavoro export-jobs esporta le informazioni relative ai job del progetto che si trovano nella regione specificata e soddisfano i criteri di filtro specificati.
Il flusso di lavoro export-jobs esporta le informazioni sui job in una tabella specificata in un set di dati specificato, che vengono creati automaticamente dal flusso di lavoro se non esistono già nel progetto. Per impostazione predefinita, il flusso di lavoro di esportazione dei job elimina anche i job esportati da Batch, ma facoltativamente puoi modificare il flusso di lavoro di esportazione dei job in modo che i job non vengano eliminati.
Per ogni flusso di lavoro di esportazione dei job che vuoi utilizzare:
- Configura la definizione del flusso di lavoro.
- Crea ed esegui il deployment del flusso di lavoro.
- Esegui il flusso di lavoro. Ripeti questo passaggio ogni volta che vuoi esportare i job specificati.
Configura la definizione del flusso di lavoro
Scarica il file
export-to-bigquery-delete-batch-jobs.yaml
da GitHub.Apri il file
export-to-bigquery-delete-batch-jobs.yaml
in un editor di testo. Poi, apporta le seguenti modifiche:Sostituisci
sys.get_env("GOOGLE_CLOUD_PROJECT_ID")
con l'ID del tuo progetto visualizzato come stringa, ad esempio"my-project-id"
.Sostituisci
sys.get_env("GOOGLE_CLOUD_LOCATION")
con la regione che contiene i job da esportare, formattata come stringa, ad esempio"us-central1"
.(Facoltativo) Modifica i criteri di filtro che specificano i job da esportare.
Per impostazione predefinita, il flusso di lavoro export-jobs specifica i criteri di filtro
"(status.state:SUCCEEDED OR status.state:FAILED) AND create_time<=\"2023-05-01T00:00:00Z\""
. Questi criteri di filtro predefiniti esportano le informazioni solo per i job nello statoSUCCEEDED
oFAILED
e che sono stati creati prima o entro il timestamp2023-05-01T00:00:00Z
RFC 3339.(Facoltativo) Sostituisci
default_dataset_id
con un nome diverso per il set di dati che vuoi che il flusso di lavoro dei job di esportazione utilizzi o crei.(Facoltativo) Sostituisci
default_table_id
con un nome diverso della tabella che vuoi che il flusso di lavoro dei job di esportazione utilizzi o crei.Se non vuoi che i job esportati vengano eliminati dal workflow, procedi nel seguente modo:
Rimuovi le seguenti righe:
- log_delete_step: call: sys.log args: text: ${"Deleting Batch job " + j.name} severity: NOTICE - delete_job: call: googleapis.batch.v1.projects.locations.jobs.delete args: name: ${j.name}
Rimuovi
+ " and deleted"
.
Salva il file. Tieni aperto il file.
Crea ed esegui il deployment del flusso di lavoro
Nella console Google Cloud, vai alla pagina Flussi di lavoro:
Nella pagina Flussi di lavoro, fai clic su
Crea.Nel campo Nome workflow, inserisci un nome per il workflow, ad esempio
export-batch-jobs-us-central1
.Nell'elenco Account di servizio, seleziona l'account di servizio che hai preparato.
Fai clic su Avanti.
Nell'editor del flusso di lavoro, sostituisci il flusso di lavoro di esempio con i contenuti del file
export-to-bigquery-delete-batch-jobs.yaml
. Dopodiché puoi chiudere il file.Fai clic su Esegui il deployment. Viene visualizzata la pagina Dettagli del workflow.
Esegui il flusso di lavoro
Nella pagina Dettagli flusso di lavoro, fai clic su
Esegui. Si apre la pagina Esegui flusso di lavoro.Nella pagina Esegui flusso di lavoro che si apre, fai clic su Esegui.
Nella pagina Dettagli esecuzione che si apre, attendi il completamento dell'esecuzione del flusso di lavoro. Ad esempio, il tempo di esecuzione per esportare ed eliminare alcuni job è in genere di pochi secondi, ma l'esecuzione potrebbe richiedere più tempo se stai esportando ed eliminando molti job.
Al termine dell'esecuzione del flusso di lavoro, il riquadro Output mostra i risultati.
Visualizzare le informazioni sul job esportato
Questa sezione illustra come visualizzare i dati della tabella creati dal flusso di lavoro export-jobs. Ad esempio, puoi utilizzare i seguenti passaggi per verificare che il flusso di lavoro sia stato eseguito correttamente e sfogliare i dati della tabella. Per ulteriori informazioni su come visualizzare e utilizzare le informazioni sui job esportati, ad esempio scrivere query, consulta Gestire i dati delle tabelle nella documentazione di BigQuery.
Nella console Google Cloud, vai alla pagina BigQuery:
Nel riquadro Explorer, apri la tabella per le informazioni sui job esportati:
- Nel campo Cerca risorse BigQuery, inserisci il nome della tabella del tuo workflow di job di esportazione. Ad esempio, il nome della tabella predefinito è
default_table_id
. - Fai clic sul nome della tabella. Viene visualizzata la pagina dei dettagli della tabella.
Nella pagina dei dettagli della tabella, fai clic sulla scheda Dettagli.
Nella scheda Dettagli, prendi nota del timestamp Ultima modifica e del Numero di righe.
Nella pagina dei dettagli della tabella, fai clic sulla scheda Anteprima.
- Nel campo Cerca risorse BigQuery, inserisci il nome della tabella del tuo workflow di job di esportazione. Ad esempio, il nome della tabella predefinito è