Data Lake

O Data Lake é um espaço de armazenamento próprio do NEXUS Flow. Em vez de apenas processar a informação e descartá-la no fim do fluxo, você pode guardá-la para usar depois — em outro fluxo, em um relatório, ou para acompanhar a evolução de algo ao longo do tempo.

Diferente do nó Banco SQL (que fala com um banco externo), o Data Lake é interno: você não precisa de servidor, credencial nem configuração — é só dar um nome ao conjunto de dados e começar a gravar.

Para que serve

  • Compartilhar dados entre fluxos. Um fluxo grava o resultado num dataset; outro fluxo lê esse resultado e continua o trabalho. Os dois ficam independentes — cada um roda no seu ritmo, sem precisar se conhecer.
  • Acumular histórico. Sistemas costumam sobrescrever os dados (o saldo de hoje apaga o de ontem). Gravando no Data Lake periodicamente, você mantém o histórico para conferências, relatórios e séries ao longo do tempo.

Datasets

Um dataset é um conjunto de dados com um nome — pense numa "planilha" guardada no Data Lake (vendas_diarias, clientes, eventos). Use letras minúsculas, números e _ no nome (ex.: vendas_diarias).

Cada linha guardada preserva o item inteiro — nenhum campo se perde. Você pode, opcionalmente, declarar colunas (com tipo: texto, número, etc.) ao criar o dataset; isso ajuda a organizar e filtrar, mas os campos que você não declarar continuam guardados do mesmo jeito.

Toda linha ganha automaticamente a data em que foi gravada e a indicação de qual fluxo a gerou — útil para ordenar pelo mais recente e para rastrear a origem.

Os nós do Data Lake

Data Lake (gravar)

Guarda os items que chegam num dataset. Tem dois modos:

  • Acrescentar (append): cada execução adiciona novas linhas. Ideal para histórico e eventos (nada é sobrescrito).
  • Upsert por chave: você indica um campo-chave (ex.: id). Se já existir uma linha com aquela chave, ela é atualizada; senão, é criada. Evita duplicatas quando o mesmo registro passa mais de uma vez.

Se o dataset ainda não existir, o nó pode criá-lo automaticamente.

Data Lake (ler)

Lê os items de um dataset. Você pode filtrar (campo = valor), ordenar e limitar a quantidade. Cada linha lida vira um item, e o fluxo segue normalmente a partir daí.

Data Lake (linhas novas)

É o gatilho que fecha o ciclo um fluxo alimenta, outro consome: no intervalo que você definir, ele dispara o fluxo apenas com as linhas que apareceram desde a última execução bem-sucedida, sem que você precise controlar nada manualmente. Os campos e o comportamento em caso de falha estão em Gatilhos.

Data Lake (SQL)

Para casos mais avançados, executa SQL diretamente sobre os dados guardados. Um SELECT traz as linhas (uma por item); um INSERT ou UPDATE edita os dados. As tabelas dos datasets têm o prefixo dl_ (ex.: dl_vendas).

A edição por SQL (INSERT/UPDATE) exige que a instância tenha o banco dedicado do Data Lake configurado. Sem ele, o SQL fica disponível apenas para leitura (SELECT) e alcança somente as tabelas dos seus datasets, as que começam com dl_. Fale com o administrador da sua instância se precisar habilitar a escrita.

O padrão "produtor → consumidor"

Fluxo A  →  Data Lake (gravar) ──►  dataset "pedidos"  ──►  Data Lake (linhas novas)  →  Fluxo B
  1. O Fluxo A coleta ou produz dados e os grava num dataset.
  2. O Fluxo B começa pelo gatilho Data Lake (linhas novas) apontando para o mesmo dataset.
  3. Sempre que o Fluxo A adicionar linhas, o Fluxo B acorda no próximo intervalo e processa só o que é novo.

Assim você quebra uma automação grande em partes menores e independentes — mais fáceis de entender, testar e manter.

A tela do Data Lake

No menu Data Lake você vê todos os datasets com a quantidade de linhas, o modo e a retenção. A partir dela você pode:

  • Criar um dataset (com colunas declaradas opcionais).
  • Abrir um dataset para consultar as linhas guardadas: busque por qualquer texto, filtre por um campo, ordene pela coluna que quiser e escolha quantas linhas ver por página.
  • Adicionar coluna… a um dataset que já existe — as linhas antigas continuam como estão. Colunas declaradas não são removidas; se precisar mudar a estrutura, crie um dataset novo.
  • Purgar além da retenção para remover o que passou do prazo.
  • Abrir o Console SQL para consultar (e, se habilitado, editar) os dados com SQL.

Retenção

Cada dataset pode ter uma retenção (em dias). A qualquer momento você remove o que passou desse prazo pelo item Purgar além da retenção, no menu de ações do dataset — as linhas removidas não voltam. Para que essa limpeza aconteça sozinha, peça ao suporte LBHM para agendar a rotina de retenção na sua instância.

Use a retenção para datasets que funcionam como uma "fila" entre fluxos (onde os dados antigos já foram consumidos e não precisam mais ser guardados) — assim o dataset não cresce sem limite.

Boas práticas

  • Histórico → append; integração ponto-a-ponto → upsert (para não duplicar).
  • Para grandes volumes, filtre ou resuma na origem e grave só o que interessa — fica mais leve para os fluxos que vão consumir.
  • Defina retenção nos datasets de "fila", para não acumular dados já processados.
  • Dê nomes claros aos datasets (vendas_diarias, nfse_emitidas) — eles aparecem em vários fluxos.

Veja também os gatilhos, os nós de dados e lógica e as execuções para acompanhar o que cada fluxo gravou.