Questa pagina descrive come esportare le informazioni relative ai tuoi job archiviate in Batch in una tabella BigQuery utilizzando Workflows. Nello specifico, scopri come eseguire il flusso di lavoro export-jobs di esempio e come visualizzare le informazioni sul job risultanti in BigQuery.
L'esportazione delle informazioni di un job è utile quando vuoi conservarle dopo l'eliminazione automatica o manuale di un job o analizzarle al di fuori di Batch. In alternativa, se vuoi esportare solo le informazioni sulle modifiche dello stato di attività e job in BigQuery, consulta Monitorare i job utilizzando le notifiche.
Per scoprire come esportare le informazioni sui lavori archiviate in altri Google Cloud servizi, consulta la documentazione sull'esportazione per quel servizio. Ad esempio, consulta le seguenti pagine:
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la sezione Guida introduttiva a Batch e attiva Batch 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 archiviare le informazioni sul job. Una tabella esistente deve avere uno schema corrispondente.
In caso contrario, puoi utilizzare il flusso di lavoro export-jobs per creare un nuovo set di dati o una nuova tabella.
-
Prepara un account di servizio per il flusso di lavoro export-jobs procedendo nel seguente modo:
- Crea un nuovo service account o identifica un service account esistente.
-
Per assicurarti che il account di servizio disponga delle autorizzazioni necessarie per eseguire il flusso di lavoro export-jobs, chiedi all'amministratore di concedere al account di servizio i seguenti ruoli IAM sul progetto:
-
Scrittura dei log:
Logs Writer (
roles/logging.logWriter
) -
Crea e modifica set di dati e tabelle BigQuery:
Amministratore BigQuery (
roles/bigquery.admin
) -
Visualizza ed elimina i job batch:
Editor di job batch (
roles/batch.jobsEditor
)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere all'account di servizio le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Scrittura dei log:
Logs Writer (
-
Per ottenere le autorizzazioni necessarie per creare, eseguire il deployment ed eseguire il flusso di lavoro export-jobs, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Visualizza i job:
Batch Job Viewer (
roles/batch.jobsViewer
) -
Visualizza service account:
Visualizza service account (
roles/iam.serviceAccountViewer
) -
Visualizza set di dati e tabelle BigQuery:
Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) -
Crea, esegui il deployment ed esegui i workflow:
Workflows Editor (
roles/workflows.editor
)
-
Visualizza i job:
Batch Job Viewer (
-
Assicurati che gli utenti del tuo progetto possano visualizzare le informazioni sul job esportato.
Per assicurarti che un utente disponga delle autorizzazioni necessarie per esportare le informazioni sui job, chiedi all'amministratore di concedere all'utente il ruolo IAM Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) nella tabella, nel set di dati o nel progetto.
Esportare le informazioni sui job
Questa sezione spiega come esportare le informazioni sui lavori utilizzando il
flusso di lavoro export-jobs, che fa parte dell'esempio di codice export-to-bigquery
.
Il flusso di lavoro export-jobs esporta le informazioni per i job del tuo 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 dataset specificato, che vengono creati automaticamente dal flusso di lavoro se non esistono già nel tuo progetto. Per impostazione predefinita, il flusso di lavoro export-jobs elimina anche i job esportati da Batch, ma puoi facoltativamente modificare il flusso di lavoro export-jobs per non eliminare i job.
Per ogni flusso di lavoro export-jobs che vuoi utilizzare, procedi nel seguente modo:
- Configura la definizione del workflow.
- Crea ed esegui il deployment del flusso di lavoro.
- Esegui il flusso di lavoro. Ripeti questo passaggio ogni volta che vuoi esportare i lavori specificati.
Configura la definizione del workflow
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. Quindi, apporta le seguenti modifiche:Sostituisci
sys.get_env("GOOGLE_CLOUD_PROJECT_ID")
con l'ID progetto formattato come stringa, ad esempio"my-project-id"
.Sostituisci
sys.get_env("GOOGLE_CLOUD_LOCATION")
con la regione che contiene i job che vuoi 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 OR status.state:CANCELLED) AND create_time<=\"2023-05-01T00:00:00Z\""
. Questi criteri di filtro predefiniti esportano le informazioni solo per i job che si trovano nello statoSUCCEEDED
,FAILED
oCANCELLED
e 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 export-jobs utilizzi o crei.(Facoltativo) Sostituisci
default_table_id
con un nome diverso della tabella che vuoi che il flusso di lavoro export-jobs utilizzi o crei.Se non vuoi che i job esportati vengano eliminati dal workflow, fai quanto segue:
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 Workflows:
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 Service account, seleziona il 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
. A questo punto, 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 esporti ed elimini molti job.
Al termine dell'esecuzione del flusso di lavoro, nel riquadro Output vengono visualizzati i risultati.
Visualizzare le informazioni sul job esportate
Questa sezione introduce 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 saperne di più su come visualizzare e utilizzare le informazioni sui job esportate, ad esempio come scrivere query, consulta Gestione dei dati delle tabelle nella documentazione di BigQuery.
Nella console Google Cloud , vai alla pagina BigQuery:
Nel riquadro Explorer, apri la tabella con le informazioni sul job esportato:
- Nel campo Cerca risorse BigQuery, inserisci il nome
della tabella del workflow export-jobs. Ad esempio, il nome della tabella
predefinito è
default_table_id
. - Fai clic sul nome della tabella. Si apre 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 workflow export-jobs. Ad esempio, il nome della tabella
predefinito è