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 di 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 serviziGoogle Cloud , 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. (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:
Batch Job Editor (
roles/batch.jobsEditor
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere al account di servizio le autorizzazioni richieste tramite 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:
Editor di Workflows (
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'export-to-bigquery
esempio di codice.
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 workflow. 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, apportate 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
,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 dataset 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 flusso di lavoro, 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 workflow
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 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 workflow.
Esegui il flusso di lavoro
Nella pagina Dettagli workflow, fai clic su
Esegui. Si apre 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 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. 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 workflow export-jobs. Ad esempio, il nome della tabella
predefinito è