Skip to content

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:

  1. Descobre automaticamente o catálogo ativo no workspace
  2. Cria o schema LANDING e Volume csv_files
  3. Itera sobre as 6 tabelas do schema bibliotecadb
  4. Extrai cada tabela como CSV para o Volume
  5. 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:

  1. Define schemas tipados para cada tabela
  2. Lê CSVs do Volume LANDING com schema enforcement
  3. Adiciona colunas de auditoria (_bronze_loaded_at, _bronze_source_table)
  4. Grava cada tabela em Delta Lake no schema BRONZE
  5. Valida integridade (contagem Landing vs Bronze)
  6. 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

  1. Certifique-se que 00_setup_database.py foi executado
  2. Execute 01_extracao_to_landing.py
  3. Execute notebooks/01_landing_to_bronze/landing_to_bronze_delta.py
  4. Verifique as tabelas no schema BRONZE no Data Explorer do Databricks