Esta página descreve como exportar as informações dos seus jobs armazenados em lote para uma tabela do BigQuery usando fluxos de trabalho. Especifique como executar o fluxo de trabalho de jobs de exportação de exemplo e como visualizar as informações de job resultantes no BigQuery.
Exportar as informações de um job é útil quando você quer manter as informações depois que um job é excluído automaticamente ou manualmente ou analisar as informações fora do Batch. Como alternativa, se você quiser exportar apenas informações de mudança de estado de tarefas e jobs para o BigQuery, consulte Monitorar jobs usando notificações.
Para saber como exportar informações de jobs armazenadas em outros serviços do Google Cloud, consulte a documentação de exportação desse serviço. Por exemplo, consulte as seguintes páginas:
Antes de começar
- Se você nunca usou o Batch antes, revise Introdução ao Batch e ativar o Batch. pré-requisitos para projetos e usuários.
-
Enable the BigQuery and Workflows APIs.
Opcional: identificar um conjunto de dados ou tabela do BigQuery no projeto armazenar as informações da tarefa. Uma tabela precisa ter um esquema correspondente.
Caso contrário, use o fluxo de trabalho de jobs de exportação para criar um novo conjunto de dados ou tabela.
-
Prepare uma conta de serviço para o fluxo de trabalho de jobs de exportação:
- Criar uma nova conta de serviço ou identificar uma conta de serviço atual.
-
Para garantir que a conta de serviço tenha as permissões necessárias para executar o fluxo de trabalho de trabalhos de exportação, peça ao administrador para conceder à conta de serviço os seguintes papéis do IAM no projeto:
-
Gravar registros:
Gravador de registros (
roles/logging.logWriter
) -
Criar e editar conjuntos de dados e tabelas do BigQuery:
Administrador do BigQuery (
roles/bigquery.admin
) -
Acessar e excluir jobs em lote:
Editor de jobs em lote (
roles/batch.jobsEditor
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
O administrador também pode conceder à conta de serviço as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
-
Gravar registros:
Gravador de registros (
-
Para receber as permissões necessárias para criar, implantar e executar o fluxo de trabalho de jobs de exportação, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Ver vagas:
Leitor de jobs em lote (
roles/batch.jobsViewer
) -
Acessar contas de serviço:
Acessar contas de serviço (
roles/iam.serviceAccountViewer
) -
Veja as tabelas e os conjuntos de dados do BigQuery:
Leitor de dados do BigQuery (
roles/bigquery.dataViewer
) -
Criar, implantar e executar fluxos de trabalho:
Editor do Workflows (
roles/workflows.editor
)
-
Ver vagas:
Leitor de jobs em lote (
-
Verifique se os usuários no projeto podem visualizar as informações do job exportadas.
Para garantir que um usuário tenha as permissões necessárias para exportar informações de jobs, peça ao administrador para conceder a um usuário o papel do IAM de Visualizador de dados do BigQuery (
roles/bigquery.dataViewer
) na tabela, no conjunto de dados ou no projeto.
Exportar informações do job
Esta seção explica como exportar informações de jobs usando o
fluxo de trabalho de exportação de jobs, que é do
exemplo de código export-to-bigquery
.
O fluxo de trabalho export-jobs exporta as informações dos jobs do projeto que
estão na região especificada e atendem aos critérios de filtro especificados.
O fluxo de trabalho "export-jobs" exporta informações do job para uma tabela especificada em um conjunto de dados especificado, que são criados automaticamente pelo fluxo de trabalho se não existem no seu projeto. Por padrão, o fluxo de trabalho de exportação de jobs também exclui os jobs exportados do Batch, mas é possível editar o fluxo de trabalho de exportação de jobs para não excluir os jobs;
Para cada fluxo de trabalho de jobs de exportação que você quer usar, faça o seguinte:
- Configurar a definição do fluxo de trabalho.
- Crie e implante o fluxo de trabalho.
- Execute o fluxo de trabalho. Repita essa etapa sempre que quiser exportar os trabalhos especificados.
Configurar a definição do fluxo de trabalho
Faça o download do arquivo
export-to-bigquery-delete-batch-jobs.yaml
no GitHub.Abra o arquivo
export-to-bigquery-delete-batch-jobs.yaml
em um editor de texto. Em seguida, faça as seguintes edições:Substitua
sys.get_env("GOOGLE_CLOUD_PROJECT_ID")
pelo ID do projeto formatado como uma string, por exemplo,"my-project-id"
.Substitua
sys.get_env("GOOGLE_CLOUD_LOCATION")
pela região que contém os jobs que você quer exportar, formatados como uma string. Por exemplo,"us-central1"
.Opcional: edite os critérios de filtro que especificam quais jobs serão exportados.
Por padrão, o fluxo de trabalho de jobs de exportação especifica os critérios de filtro
"(status.state:SUCCEEDED OR status.state:FAILED) AND create_time<=\"2023-05-01T00:00:00Z\""
. Este critério de filtro padrão exporta informações somente para vagas que estão no estadoSUCCEEDED
ouFAILED
e foram criadas antes ou pelo2023-05-01T00:00:00Z
RFC 3339 (em inglês) carimbo de data/hora.Opcional: substitua
default_dataset_id
por um nome diferente para o conjunto de dados que você quer que o fluxo de trabalho de exportação use ou crie.Opcional: substitua
default_table_id
por um nome diferente para a tabela que você quer que o fluxo de trabalho de exportação use ou crie.Se você não quiser que os jobs exportados sejam excluídos pelo fluxo de trabalho, faça o seguinte:
Remova as seguintes linhas:
- 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}
Remover
+ " and deleted"
.
Salve o arquivo. Mantenha o arquivo aberto.
Criar e implantar o fluxo de trabalho
No console do Google Cloud, acesse a página Fluxos de trabalho.
Na página Fluxos de trabalho, clique em
Criar.No campo Nome do fluxo de trabalho, digite um nome para o fluxo de trabalho: exemplo:
export-batch-jobs-us-central1
.Na lista Conta de serviço, selecione a conta de serviço que você preparados.
Clique em Próxima.
No editor de fluxo de trabalho, substitua o fluxo de trabalho de exemplo pelo conteúdo do arquivo
export-to-bigquery-delete-batch-jobs.yaml
. Depois, é possível feche o arquivo.Clique em Implantar. A página Detalhes do fluxo de trabalho é aberta.
Executar o fluxo de trabalho
Na página Detalhes do fluxo de trabalho, clique em
Executar. A página Executar fluxo de trabalho abre.Na página Executar fluxo de trabalho, clique em Executar.
Nos Detalhes da execução que a página abrir, aguarde o fluxo de trabalho ser termine de executar. Por exemplo, o tempo de execução para exportar e excluir alguns jobs geralmente é de alguns segundos, mas a execução pode levar mais tempo se você estiver exportando e excluindo muitos jobs.
Quando a execução do fluxo de trabalho for concluída, o painel Output vai mostrar os resultados.
Conferir as informações do job exportado
Esta seção mostra como conferir os dados da tabela criados pelo fluxo de trabalho de jobs de exportação. Por exemplo, siga as etapas abaixo para verificar se o fluxo de trabalho foi executado e navegue pelos dados da tabela. Para mais informações sobre como visualizar e usar as informações exportadas do job, como escrever consultas, consulte Gerenciar dados de tabela na documentação do BigQuery.
No console do Google Cloud, acesse a página do BigQuery:
No painel Explorer, abra a tabela com as informações do job exportado:
- No campo Pesquisar recursos do BigQuery, insira o nome da tabela do seu fluxo de trabalho de jobs de exportação. Por exemplo, o padrão
nome da tabela é
default_table_id
. - Clique no nome da tabela. A página de detalhes da tabela é aberta.
Na página de detalhes da tabela, clique na guia Detalhes.
Na guia Detalhes, observe o carimbo de data/hora Última modificação e os Número de linhas.
Na página de detalhes da tabela, clique na guia Visualizar.
- No campo Pesquisar recursos do BigQuery, insira o nome da tabela do seu fluxo de trabalho de jobs de exportação. Por exemplo, o padrão
nome da tabela é
A seguir
- Saiba mais sobre fluxos de trabalho.
- Saiba mais sobre o BigQuery.
- Saiba mais sobre o Batch: