A Ambev Data Platform foi desenvolvida para transformar dados brutos de vendas e canais em informações analíticas rápidas, consistentes e confiáveis.
O projeto utiliza Infraestrutura como Código (IaC) com Terraform para provisionar recursos no Google Cloud Platform (GCP), orquestrando pipelines ETL containerizados em Cloud Run Jobs e armazenando resultados em BigQuery.
![Arquitetura GCP]
[Terraform]
↓ provisiona
[Cloud Storage] → [Cloud Run Jobs] → [BigQuery] → [Looker Studio]
↑
(Dockerfiles Bronze/Silver/Gold + Python ETLs + Catálogos YAML)
| Camada | Descrição | Script Principal |
|---|---|---|
| Bronze | Ingestão e padronização dos dados brutos. | bronze.py |
| Silver | Limpeza, enriquecimento e junção das tabelas. | silver.py |
| Gold | Agregações analíticas, KPIs e métricas de negócio. | gold.py |
infra/
├── deploy.ps1
├── Dockerfile
├── Dockerfile.bronze
├── Dockerfile.silver
├── Dockerfile.gold
├── src/
│ ├── bronze.py
│ ├── silver.py
│ ├── gold.py
│ ├── catalog_silver.yml
│ ├── catalog_gold.yml
│ └── requirements.txt
├── datasets/
│ ├── abi_bus_case1_beverage_channel_group_20210726.csv
│ └── abi_bus_case1_beverage_sales_20210726.csv
└── terraform/
├── bigquery.tf
├── cloudrun.tf
├── iam.tf
├── providers.tf
├── run.tf
├── storage.tf
├── variables.tf
├── terraform.tfstate
├── terraform.tfstate.backup
├── .terraform.lock.hcl
└── .terraform/Os catálogos YAML descrevem de forma padronizada as estruturas e definições das tabelas nas camadas Silver e Gold.
| Arquivo | Descrição |
|---|---|
catalog_silver.yml |
Define dimensões e fatos da camada Silver, incluindo chaves e relacionamentos. |
catalog_gold.yml |
Lista as tabelas analíticas e KPIs da camada Gold, utilizadas no Looker Studio. |
Esses arquivos servem como documentação técnica e de negócio, permitindo integração com ferramentas de governança de dados (como Data Catalog, Alation, Collibra, etc).
| Recurso | Descrição |
|---|---|
| IAM | Criação de service accounts e permissões granulares. |
| Cloud Storage | Buckets de ingestão e staging para datasets. |
| BigQuery | Datasets abi_bronze, abi_silver, abi_gold. |
| Cloud Run Jobs | Execução automatizada dos containers ETL. |
Cada camada do pipeline possui um Dockerfile e um script dedicado:
| Container | Dockerfile | Script | Output |
|---|---|---|---|
| Bronze | Dockerfile.bronze |
bronze.py |
Dados padronizados |
| Silver | Dockerfile.silver |
silver.py |
Dados limpos e enriquecidos |
| Gold | Dockerfile.gold |
gold.py |
KPIs e métricas de negócio |
Os catálogos YAML são armazenados na mesma pasta (src/) para versionamento junto aos scripts Python e garantir consistência entre código e documentação.
export GOOGLE_CLOUD_PROJECT="ambev-data"
export GOOGLE_APPLICATION_CREDENTIALS="key.json"cd terraform
terraform init
terraform apply -auto-approveApós o Terraform criar o bucket (ambev-beverage-mvp), envie os arquivos para o GCS:
cd ../datasets
gsutil cp abi_bus_case1_beverage_channel_group_20210726.csv gs://ambev-beverage-mvp/raw/
gsutil cp abi_bus_case1_beverage_sales_20210726.csv gs://ambev-beverage-mvp/raw/gcloud builds submit --tag gcr.io/ambev-data/etl-bronze .
gcloud builds submit --tag gcr.io/ambev-data/etl-silver .
gcloud builds submit --tag gcr.io/ambev-data/etl-gold .gcloud run jobs execute etl-bronze
gcloud run jobs execute etl-silver
gcloud run jobs execute etl-gold- Integração com Cloud Composer (Airflow) para agendamento centralizado.
- Camada de Data Quality (Great Expectations / dbt tests).
- Deploy automatizado via GitHub Actions.
- Versionamento de dados com BigQuery Time Travel.
- Integração dos catálogos YAML com o GCP Data Catalog.
Marcus Vinicius Mendes
Data Engineer Manager – Ambev (Projeto Educacional)
📧 mvmendes96@gmail.com
📍 Curitiba – PR, Brasil