Como extrair dados do BigQuery para o Cloud Storage pelo Dataflow

Nesta postagem, falaremos como realizar a exportação de uma tabela que esteja no BigQuery para um bucket do Cloud Storage utilizando o Dataflow.

O que é BigQuery?

É um data warehouse totalmente gerenciado que permite realizar análises em um grande conjunto de dados, no patamar de petabytes.

Suporta consultas no formato ANSI SQL e criação de modelos de Machine Learning (ML) em uma sintaxe semelhante ao SQL.

O que é Cloud Storage?

Fornece, a nível mundial, um armazenamento de objetos altamente durável que escalona para exabytes de dados. É possível acessar dados instantaneamente de qualquer classe de armazenamento, integrar o armazenamento aos seus aplicativos com uma API exclusiva unificada e otimizar o preço e desempenho de forma fácil.

O que é Dataflow?

É um serviço totalmente gerenciado que permite processamento em lote(batch) ou streaming. Minimiza a latência, o tempo e o custo de processamento por meio de escalonamento automático e gerenciamento de recursos.

Passo a Passo

1. O primeiro passo a fazer é o login em sua conta do GCP, para este tutorial você vai precisar de uma conta que possua um projeto.

2. Vá até o console do BigQuery e crie um novo conjunto de dados:

3. Insira um nome para o conjunto de dados e clique em criar:

4. Crie a tabela "clientes" a partir da query abaixo, vamos usar esses dados para fazer a exportação:

create table dataset_teste.clientes as
SELECT cliente_id, nome
FROM (
  SELECT 1 AS cliente_id,'José' Nome UNION ALL
  SELECT 2 AS cliente_id,'Maria' Nome UNION ALL
  SELECT 3 AS cliente_id,'João' Nome UNION ALL
  SELECT 4 AS cliente_id,'Pedro' Nome UNION ALL
  SELECT 5 AS cliente_id,'Ana' Nome 
  ) AS Clientes;

5. Vá até a barra superior e clique no ícone do Cloud Shell, igual a imagem abaixo.

6. Criaremos o bucket do Cloud Storage em que iremos exportar nossa tabela:

gsutil mb -l us-central1 gs://[PROJECT_ID]-tabelas

7. Pelo console, no menu do Dataflow, selecione "Jobs":

8. Preencha as informações conforme abaixo e clique em executar Job:

Observação: Neste passo vamos criar o job do Dataflow a partir de um modelo criado pelo Google.

No campo "BigQuery table to export" e "Output GCS file(s)" o valor "fsdfsdffd" seria o meu projeto, substitua pelo seu Project_Id.

9.Aguarde o termino execução e verifique se seu Job terminou com sucesso:

Referências

  • Exporting table data

https://cloud.google.com/bigquery/docs/exporting-data#console

  • Google BigQuery I/O connector

https://beam.apache.org/documentation/io/built-in/google-bigquery/