Landing e Bronze
Esta página descreve a extração, a zona de landing e a materialização na camada Bronze (dados brutos ou minimamente transformados) no Delta Lake.
Fluxo desta camada
flowchart LR
subgraph ext["Extração"]
DB[(BibliotecaDb)]
end
subgraph land["Landing"]
CSV[CSV no Volume]
end
subgraph br["Bronze"]
DL[Delta Lake BRONZE]
end
DB --> CSV --> DL
No pipeline completo: Extração → Landing → Bronze → Silver → Gold, esta página cobre os estágios até Bronze. As transformações de qualidade e o modelo dimensional estão em Silver e Gold.
Camada Landing
A camada LANDING armazena arquivos CSV extraídos diretamente do banco relacional BibliotecaDb em um Volume do Databricks.
Estrutura
/Volumes/{catalog}/landing/csv_files/
├── categoria/
├── autor/
├── livro/
├── membro/
├── emprestimo/
└── multa/
Notebook de extração: 01_extracao_to_landing.py
Este notebook:
- Descobre automaticamente o catálogo ativo no workspace
- Cria o schema LANDING e Volume csv_files
- Itera sobre as 6 tabelas do schema bibliotecadb
- Extrai cada tabela como CSV para o Volume
- Valida contagem de registros (Landing vs Origem)
Saída: 6 arquivos CSV prontos para ingestão
Camada Bronze
A camada BRONZE materializa os dados em Delta Lake com metadados de auditoria, aplicando schema enforcement na leitura.
Características
Schema tipado: IntegerType, StringType, DateType, DecimalType, BooleanType
Metadados de auditoria: _bronze_loaded_at, _bronze_source_table
Histórico completo: Preserva todas as linhas da origem
Formato Delta: Transações ACID, versionamento, time travel
Notebook de ingestão: notebooks/01_landing_to_bronze/landing_to_bronze_delta.py
Este notebook:
- Define schemas tipados para cada tabela
- Lê CSVs do Volume LANDING com schema enforcement
- Adiciona colunas de auditoria (
_bronze_loaded_at,_bronze_source_table) - Grava cada tabela em Delta Lake no schema BRONZE
- Valida integridade (contagem Landing vs Bronze)
- Exibe amostra e schema de cada tabela
Tabelas Bronze
categoria
id_categoria INT (PK)
nome STRING
descricao STRING
_bronze_loaded_at TIMESTAMP
_bronze_source_table STRING
autor
id_autor INT (PK)
nome STRING
nacionalidade STRING
data_nascimento DATE
_bronze_loaded_at TIMESTAMP
_bronze_source_table STRING
livro
id_livro INT (PK)
titulo STRING
isbn STRING
ano_publicacao INT
id_categoria INT (FK)
id_autor INT (FK)
_bronze_loaded_at TIMESTAMP
_bronze_source_table STRING
membro
id_membro INT (PK)
nome STRING
email STRING
telefone STRING
data_cadastro DATE
_bronze_loaded_at TIMESTAMP
_bronze_source_table STRING
emprestimo
id_emprestimo INT (PK)
id_livro INT (FK)
id_membro INT (FK)
data_emprestimo DATE
data_devolucao_prevista DATE
data_devolucao_real DATE (nullable)
status STRING
_bronze_loaded_at TIMESTAMP
_bronze_source_table STRING
multa
id_multa INT (PK)
id_emprestimo INT (FK)
valor DECIMAL(10, 2)
pago BOOLEAN
data_geracao DATE
_bronze_loaded_at TIMESTAMP
_bronze_source_table STRING
Validação
O notebook executa as seguintes validações:
Contagem de registros: Landing (CSV) = Bronze (Delta)
Schema compliance: Tipos de dados conforme definido
Nenhum registro perdido na ingestão
Como executar
- Certifique-se que
00_setup_database.pyfoi executado - Execute
01_extracao_to_landing.py - Execute
notebooks/01_landing_to_bronze/landing_to_bronze_delta.py - Verifique as tabelas no schema BRONZE no Data Explorer do Databricks