Pular para conteúdo

lakehouse writer

destino

o nó mais importante da plataforma: grava o resultado do pipeline em qualquer lakehouse cadastrado no workspace, na camada escolhida (bronze, silver ou gold), com o modo de persistência e a compressão que fizerem sentido para o caso de uso. é o único ponto de escrita de dado da datablixt — e é isso que fecha o ciclo de governança descrito em destinos.


quando usar

  • ao final de todo pipeline — é o nó que efetivamente grava o resultado processado
  • para materializar cada etapa da arquitetura medallion (bronze → silver → gold), com um lakehouse writer ao final de cada uma
  • para sincronizar incrementalmente uma tabela por chave (upsert), quando o volume não permite reprocessar tudo a cada execução

configuração

campo tipo obrigatório descrição
table_name string sim nome da tabela no lakehouse de destino
layer string sim slug do lakehouse de destino (ex: lh_01_bronze)
lakehouse_id uuid não força um lakehouse específico do workspace, em vez de resolver por nome/slug
format enum não parquet (padrão) ou iceberg — iceberg é exigido para persist_mode: merge e para time travel
persist_mode enum sim replace, insert ou merge — ver abaixo · padrão: replace
merge_keys lista condicional colunas-chave para identificar cada registro · obrigatório quando persist_mode = merge
compression enum sim snappy, zstd ou gzip · padrão: snappy
iceberg_namespace string não namespace iceberg, quando diferente do padrão do workspace · só aplicável a format: iceberg

modos de persistência

modo comportamento quando usar
replace sobrescreve a tabela inteira a cada execução snapshots completos — a fonte sempre entrega o dataset completo e atual
insert acrescenta ao histórico, sem apagar o que já existe (append-only, particionado por mês) séries históricas — cada execução representa um novo período (ex: vendas do dia)
merge faz upsert por merge_keys: atualiza registros existentes e insere os novos sincronização incremental — a fonte só entrega registros novos/alterados, mas a tabela de destino deve refletir o estado mais atual de cada chave

merge exige format: iceberg, porque upsert por chave depende do controle de versão do formato de tabela iceberg.


camadas (bronze / silver / gold)

o layer aponta para qual lakehouse do workspace o resultado será gravado — normalmente correspondente a uma camada da arquitetura medallion:

camada papel típico
bronze dado bruto, o mais próximo possível da fonte original, já tipificado (ver schema cast)
silver dado limpo, deduplicado e validado — pronto para ser cruzado com outras entidades
gold métricas e agregações de negócio, prontas para consumo direto por bi e relatórios

exemplos

snapshot completo na camada bronze

{
  "table_name": "clientes",
  "layer": "lh_01_bronze",
  "format": "parquet",
  "persist_mode": "replace",
  "compression": "snappy"
}

histórico acumulativo (append-only)

{
  "table_name": "vendas_diarias",
  "layer": "lh_01_bronze",
  "format": "parquet",
  "persist_mode": "insert",
  "compression": "zstd"
}

cada execução adiciona um novo arquivo ao histórico da tabela, particionado por mês — nada é sobrescrito.

upsert incremental por chave (iceberg)

{
  "table_name": "clientes",
  "layer": "lh_01_silver",
  "format": "iceberg",
  "persist_mode": "merge",
  "merge_keys": ["cliente_id"],
  "compression": "zstd"
}

registros com cliente_id já existente são atualizados; registros novos são inseridos — sem duplicar e sem precisar reprocessar a tabela inteira.


por que isso é uma vantagem de governança

concentrar toda escrita de dado neste único nó — em vez de permitir dezenas de destinos externos diferentes — significa que:

  • qualquer tabela do workspace tem uma origem rastreável: o pipeline e o nó exatos que a produziram
  • o formato, a compressão e o modo de persistência seguem sempre a mesma mecânica, então não há surpresas de schema entre tabelas diferentes
  • tabelas em formato iceberg ganham automaticamente snapshots versionados, habilitando time travel no lakehouse reader — você pode consultar exatamente como uma tabela estava em qualquer instante do passado
  • não existe caminho para um pipeline sobrescrever acidentalmente um sistema de terceiros — o único destino possível é o lakehouse que a sua própria organização controla

veja o racional completo dessa decisão em destinos.

encadeando camadas

depois de um lakehouse writer gravar a camada bronze, o próximo pipeline (camada silver) começa com um lakehouse reader apontando para essa mesma tabela — não é preciso conhecer caminhos de arquivo, apenas o nome da tabela e a camada.