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 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.enablepermission. 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 eseguendo le seguenti operazioni:
- 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 i seguenti ruoli IAM al account di servizio sul progetto:
-
Scrittura dei log:
Logs Writer (
roles/logging.logWriter) -
Crea e modifica set di dati e tabelle BigQuery:
Amministratore BigQuery (
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 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 sul 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 il ruolo IAM Visualizzatore dati BigQuery (
roles/bigquery.dataViewer) a un utente della tabella, del set di dati o del 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:
- 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.yamlda GitHub.Apri il file
export-to-bigquery-delete-batch-jobs.yamlin un editor di testo. Quindi, apportare 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 il timestamp2023-05-01T00:00:00ZRFC 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 della tabella che vuoi che il workflow export-jobs utilizzi o crei.Se non vuoi che i job esportati vengano eliminati dal flusso di lavoro, 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 workflow
Nella console Google Cloud , vai alla pagina Workflow:
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. Poi, 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 è