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)
É um gatilho: no intervalo que você definir, ele verifica o dataset e dispara o fluxo apenas com as linhas que apareceram desde a última vez. Ele lembra onde parou, então nenhuma linha é perdida nem processada duas vezes.
É a peça que fecha o ciclo um fluxo alimenta, outro consome sem que você precise controlar nada manualmente.
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). 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
- O Fluxo A coleta ou produz dados e os grava num dataset.
- O Fluxo B começa pelo gatilho Data Lake (linhas novas) apontando para o mesmo dataset.
- 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 ver uma amostra das linhas mais recentes.
- Purgar as linhas além da retenção.
- 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). As linhas mais antigas que esse prazo são removidas automaticamente. 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.