Ingestão via BigQuery, transformação em arquitetura Medallion e consumo de dados do BigQuery com R/dbplyr
Este projeto implementa um pipeline completo em arquitetura Medallion (Bronze, Silver e Gold) para análise de lavouras temporárias no Brasil (soja, milho e arroz), utilizando dados oficiais do IBGE PAM, ingestão via BigQuery, processamento em R e consumo de dados do BigQuery com o pacote dbplyr.
Objetivos:
-
organização de dados em camadas;
-
eficiência no uso de memória local;
-
integração R <> BigQuery;
-
boas práticas de processamento e consumo de dados em ambiente cloud.
Acesse aqui.
Após a execução do script, há um relatório em Quarto que demonstra o consumo da camada Gold diretamente no BigQuery, utilizando dbplyr e coletando dados apenas no final.
Acesse o relatório no link configurado no projeto.
O pipeline é dividido em três camadas bem definidas:
- Bronze: ingestão e padronização mínima dos dados brutos;
- Silver: limpeza, enriquecimento, classificação e agregações intermediárias;
- Gold: métricas analíticas consolidadas para consumo e visualização.
Cada camada gera arquivos locais organizados por diretório e possui um dataset próprio no BigQuery.
├── bronze
│ └── bronze_lavouras_raw.csv
├── silver
│ ├── silver_lavouras_arroz.csv
│ ├── silver_lavouras_milho.csv
│ ├── silver_lavouras_soja.csv
│ ├── silver_municipio_arroz.csv
│ ├── silver_municipio_milho.csv
│ ├── silver_municipio_soja.csv
│ ├── silver_uf_arroz.csv
│ ├── silver_uf_milho.csv
│ └── silver_uf_soja.csv
├── gold
│ ├── gold_evolucao_temporal.csv
│ ├── gold_indicadores_sustentabilidade.csv
│ ├── gold_indice_concentracao.csv
│ ├── gold_municipios_emergentes.csv
│ ├── gold_perfil_regional.csv
│ ├── gold_ranking_estados.csv
│ └── gold_shift_share_analysis.csv
├── relatorio
│ ├── estilo.css
│ └── relatorio_medallion_bigquery_final.qmd
├── script
│ └── pipeline_pam_final.R
└── README.md
IBGE – Pesquisa Agrícola Municipal (PAM), acessada via Base dos Dados. São analisadas as culturas de soja, milho e arroz.
Para rodar este projeto, é necessário:
-
Um projeto ativo no Google Cloud Platform (GCP) Qualquer projeto válido funciona (não precisa ser o mesmo do autor).
-
BigQuery habilitado no projeto.
-
Credenciais de acesso configuradas Recomenda-se o uso de uma service account com permissões:
-
Variáveis de ambiente configuradas:
GOOGLE_APPLICATION_CREDENTIALS="/caminho/para/sua-chave.json"
GCP_PROJECT_ID="seu-projeto-gcp"
BQ_DATASET_ID="analise_lavouras"
BD_BILLING_ID="seu-projeto-gcp"
Essas variáveis permitem que o mesmo código seja executado em diferentes ambientes sem alterações no script.
Execute o script principal:
source("script/pipeline_pam_final.R")O pipeline irá:
-
Ingerir dados do IBGE PAM via BigQuery (Bronze);
-
Processar e gerar tabelas enriquecidas e agregadas (Silver);
-
Calcular métricas analíticas consolidadas (Gold);
-
Salvar os resultados localmente por camada;
-
Criar datasets separados no BigQuery e exportar todas as tabelas.
MIT.