Exportando dados BigQuery
O processo de exportação de dados do BigQuery permite exportar os dados nos formatos CSV, Json, Avro e Parquet.
Antes de iniciar, confira detalhes quanto limitações neste link: https://cloud.google.com/bigquery/docs/exporting-data#export_formats_and_compression_types
Este processo de exportação é compativel apenas com tabelas. Caso você queira exportar o resultado de uma consulta, você pode gerar uma tabela temporária e exportar a tabela temporária, limitando assim os dados que estão sendo exportados, ou até exportando uma visão sumarizada (agregada) ao invés de dados muito granular.
Para facilitar o processo de exportação, disponibilizamos um arquivo Jupyter com os passos necessários aqui: https://github.com/totvslabs/carolapp-samples/tree/master/mastering-carol/export-data-bigquery
O código está dividido em:
- Importação de Libs necessárias.
- Função para gerar URL assinada, permitindo o download do arquivo exportado.
- Carga da configuração contida no arquivo
.env
, para maiores detalhes, veja no arquivo README.md detalhes em como construir o arquivo.env
. - Inicialização da instância Carol.
- Geração da Service Account através da Carol para fazer o export dos dados e carga dos dados no CDS (Carol Data Storage).
- Configuração do formato dos dados a serem exportados. Maiores detalhes e opções podem ser consultadas aqui: https://cloud.google.com/bigquery/docs/exporting-data#export_formats_and_compression_types
- Diretório de destino no CDS (GCS) para os dados exportados. Você deve obrigatoriamente utilizar esse diretório, sendo que ele é o único permitido para excrita. Diretório: gs://{BUCKET_NAME}/user_space. Aonde BUCKET_NAME é o ID do projeto na Carol, por exemplo: carol-00b66d7bb91a4e43ae8e
- Criação do Job de exportação dos dados.
- Chamada da função para gerar a URL assinada permitindo o download do arquivo recém exportado.
Com esses passos você efetuou a exportação de dados da Carol.
Ajustes deverão ser necessários no aplicativo acima para exportar uma quantidade maior de arquivos, sendo que o BigQuery vai dividir em vários arquivos no diretório user_space
informado acima.