Questa pagina descrive come esportare le informazioni dei job archiviate in Batch in una tabella BigQuery utilizzando Workflows. In particolare, scopri come eseguire il workflow di esempio export-jobs 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 viene eliminato automaticamente o manualmente o analizzarle al di fuori di Batch. In alternativa, se vuoi esportare solo le informazioni sullo stato delle attività e dei 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 pagina Inizia a utilizzare Batch e abilita Batch completando i prerequisiti per progetti e utenti.
Abilita le API BigQuery e Workflows.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.(Facoltativo) Identifica un set di dati o una tabella BigQuery esistente nel progetto in cui vuoi archiviare le informazioni sui job. Una tabella esistente deve avere uno schema corrispondente.
In caso contrario, puoi utilizzare il workflow export-jobs per creare un nuovo set di dati o una nuova tabella.
-
Prepara un account di servizio per il workflow 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 workflow export-jobs, chiedi all'amministratore di concedere i seguenti ruoli IAM al account di servizio nel progetto:
-
Scrivere log:
Logs Writer (
roles/logging.logWriter) -
Creare e modificare set di dati e tabelle BigQuery:
BigQuery Admin (
roles/bigquery.admin) -
Visualizzare ed eliminare i job Batch:
Batch Job Editor (
roles/batch.jobsEditor)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche assegnare al account di servizio le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
-
Scrivere log:
Logs Writer (
-
Per ottenere le autorizzazioni necessarie per creare, eseguire il deployment ed eseguire il workflow export-jobs, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Visualizzare i job:
Batch Job Viewer (
roles/batch.jobsViewer) -
Visualizzare i service account:
View Service Accounts (
roles/iam.serviceAccountViewer) -
Visualizzare set di dati e tabelle BigQuery:
BigQuery Data Viewer (
roles/bigquery.dataViewer) -
Creare, eseguire il deployment ed eseguire i workflow:
Workflows Editor (
roles/workflows.editor)
-
Visualizzare i job:
Batch Job Viewer (
-
Assicurati che gli utenti del tuo progetto possano visualizzare le informazioni sui job esportate.
Per assicurarti che un utente disponga delle autorizzazioni necessarie per esportare le informazioni sui job, chiedi all'amministratore di concedere il ruolo IAM Visualizzatore dati BigQuery (
roles/bigquery.dataViewer) a un utente nella tabella, nel set di dati o nel progetto.
Esportare le informazioni sui job
Questa sezione spiega come esportare le informazioni sui job utilizzando il
workflow export-jobs, che fa parte dell'
export-to-bigquery esempio di codice.
Il workflow export-jobs esporta le informazioni sui job del tuo progetto che si trovano nella regione specificata e soddisfano i criteri di filtro specificati.
Il workflow export-jobs esporta le informazioni sui job in una tabella specificata in un set di dati specificato, che vengono creati automaticamente dal workflow se non esistono già nel progetto. Per impostazione predefinita, il workflow export-jobs elimina anche i job esportati da Batch, ma puoi modificare facoltativamente il workflow export-jobs in modo che non elimini i job.
Per ogni workflow export-jobs che vuoi utilizzare, procedi nel seguente modo:
- Configura la definizione del workflow.
- Crea ed esegui il deployment del workflow.
- Esegui il workflow. Ripeti questo passaggio ogni volta che vuoi esportare i job specificati.
Configurare la definizione del workflow
Scarica il
export-to-bigquery-delete-batch-jobs.yamlfile da GitHub.Apri il file
export-to-bigquery-delete-batch-jobs.yamlin 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 workflow 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,FAILEDoCANCELLEDe sono stati creati prima o entro il2023-05-01T00:00:00Ztimestamp RFC 3339.(Facoltativo) Sostituisci
default_dataset_idcon un nome diverso per il set di dati che vuoi che il workflow export-jobs utilizzi o crei.(Facoltativo) Sostituisci
default_table_idcon un nome diverso per la tabella che vuoi che il workflow export-jobs utilizzi o crei.Se non vuoi che i job esportati vengano eliminati dal workflow:
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. Lascia aperto il file.
Creare ed eseguire il deployment del workflow
Nella Google Cloud console, vai alla pagina Workflow:
Nella pagina Workflow, 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 workflow, sostituisci il workflow 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 workflow.
Eseguire il workflow
Nella pagina Dettagli workflow, fai clic su Esegui. Viene visualizzata la pagina Esegui workflow.
Nella pagina Esegui workflow che si apre, fai clic su Esegui.
Nella pagina Dettagli esecuzione che si apre, attendi il completamento dell'esecuzione del workflow. 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 workflow, il riquadro Output mostra i risultati.
Visualizzare le informazioni sui job esportate
Questa sezione introduce come visualizzare i dati della tabella creati dal workflow export-jobs. Ad esempio, puoi utilizzare i seguenti passaggi per verificare che il workflow sia stato eseguito correttamente e sfogliare i dati della tabella. Per ulteriori informazioni su come visualizzare e utilizzare le informazioni sui job esportate, ad esempio scrivere query, consulta Gestire i dati delle tabelle nella documentazione di BigQuery.
Nella Google Cloud console, vai alla pagina BigQuery:
Nel riquadro Explorer, apri la tabella per le informazioni sui job esportate:
- Nel campo Cerca risorse BigQuery, inserisci il nome della tabella dal workflow export-jobs. 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 dal workflow export-jobs. Ad esempio, il nome della tabella predefinito è