Skip to content

Datalake e Lakehouse ​

Tipo
Referência
Para
Engenharia de dados, Desenvolvedor
Na tela
HorusETL › Dataflows › editor do Dataflow

Dois nós leem dado que já está no Lumo, sem credencial: Consultar Lakehouse consulta uma tabela do HorusDW, e Extrair Datalake lê uma tabela Datalake. Os dois ficam no grupo Cloud da biblioteca de nós. A diferença entre o DW e o Datalake está em onde o dado fica.

Consultar LakehouseExtrair Datalake
kind no YAMLExtractLakehouseExtractDatalake
LêTabela ou Cadastro do HorusDWtabela do tipo Datalake
Recorteconsulta montada na tela: colunas, filtros, agrupamento, janela, dedupe, ordem, limiteas partições da janela do Dataflow
Uso típicocruzar dado de fora com o que já está no DW; reprocessar uma tabelaler uma camada Bronze gravada por outro Dataflow

Consultar Lakehouse ​

Na telaNo YAML (options)TipoPadrãoRegra
Tabela LakehouseTableIDinteironenhumLista as Tabelas e os Cadastros que você pode ler, publicados e não publicados (estes com ⚠). Tabela Datalake não aparece
Editar consulta, seção Colunas, ProjetarSelectlista de colunastodasNenhuma coluna marcada traz todas
FiltrosFilterslista ou árvorenenhumVeja Filtros
Colunas, AgruparGroupBylista de colunasnenhum
Colunas, AgregaçãoAggregationslista de { Func, Column, As }nenhummín (min), máx (max), soma (sum), cont (count), média (avg), dist (count_distinct). Soma e média só em coluna de número. O nome de saída é gerado pela tela
Colunas calculadasWindowColumnslistanenhumFunções de janela. Veja Colunas calculadas
Dedupe, Usar dedupeDedupe{ PartitionBy, OrderBy, Keep }desligadoUma linha por chave. Veja Dedupe
Ordenar porOrderBylista de { Column, Dir }nenhumCrescente (asc) ou Decrescente (desc). Aceita o nome de saída de uma agregação
Limite de linhasLimitinteiro00 é sem limite. Negativo é recusado

Com agregação, toda coluna projetada precisa estar marcada em Agrupar. A tela avisa com "Com agregações, as colunas projetadas devem estar no Agrupar: ...". As colunas saem com o tipo que têm na tabela.

Um mecanismo por consulta ​

Agrupamento (com ou sem agregação), colunas calculadas e dedupe não se combinam: a consulta usa no máximo um dos três. Projeção, filtros, ordem e limite combinam com qualquer um. Ao usar um deles, a tela desabilita os outros dois, com avisos como "Agregação/Agrupar desabilitados: usando janela/dedupe." Uma consulta escrita no YAML com mais de um é recusada na execução.

Filtros ​

Cada filtro tem coluna, operador e valor. Adicionar filtro cria um filtro, Adicionar grupo cria um grupo, e Combinar com escolhe E (todas) ou OU (qualquer uma) dentro do grupo.

Operador na telaNo YAML (Op)Valor
= igualequm valor
≠ diferentenequm valor
> maior quegtum valor
≥ maior ou igualgteum valor
< menor queltum valor
≤ menor ou iguallteum valor
em (lista)inlista, até 1.000 valores
entrebetween[mínimo, máximo], com os dois extremos
é nulois_nullnenhum
não é nulois_not_nullnenhum
começa comlike_prefixtexto; só em coluna de texto

No YAML, Filters aceita duas formas, nunca as duas juntas. A lista simples junta todos com E. A árvore aninha blocos and e or, até 5 níveis.

yaml
# lista: tudo com E
Filters:
  - Column: STATUS
    Op: in
    Value: [ativo, pendente]
  - Column: DATA_ATUALIZACAO
    Op: gte
    Value: { var: LastDataPoint }

# árvore: DATA_ATUALIZACAO >= {LastDataPoint} E (STATUS = ativo OU PRIORIDADE >= 5)
Filters:
  and:
    - Column: DATA_ATUALIZACAO
      Op: gte
      Value: { var: LastDataPoint }
    - or:
        - Column: STATUS
          Op: eq
          Value: ativo
        - Column: PRIORIDADE
          Op: gte
          Value: 5

O valor pode ser uma variável do Dataflow, escolhida na tela ou escrita como { var: NOME } no YAML: StartDate e EndDate na Extração Janela, LastDataPoint na Incremental, as variáveis do Tenant e as que um Configurador anterior gerou. Para mexer no valor antes de filtrar (por exemplo, LastDataPoint menos 12 dias), calcule uma variável nova num Configurador e use o nome dela.

Colunas calculadas ​

Uma coluna calculada aplica uma função de janela e acrescenta o resultado a cada linha, sem juntar linhas. Cada item é { As, Func, Column, PartitionBy, OrderBy, Offset }; As é o nome da coluna nova.

Função na telaNo YAML (Func)ColumnOrderByOffset
nº linha (row_number), rank, dense rankrow_number, rank, dense_ranknão usaobrigatórionão usa
soma, média, mínimo, máximo, contagemsum, avg, min, max, countobrigatório; soma e média só em númeroopcional; com ordem, o cálculo é acumuladonão usa
lag, leadlag, leadobrigatórioobrigatórioopcional, inteiro a partir de 1, padrão 1

PartitionBy vazio calcula uma janela só sobre o resultado inteiro. O nome em As não pode repetir o de uma coluna projetada nem o de uma agregação.

yaml
WindowColumns:
  - As: TOTAL_ACUMULADO
    Func: sum
    Column: VALOR
    PartitionBy: [CLIENTE_ID]
    OrderBy:
      - Column: DATA_EMISSAO
        Dir: asc

Dedupe ​

O dedupe guarda uma linha por chave. Serve para pegar o estado mais recente de cada registro. Os três campos são obrigatórios: Partição por (PartitionBy), Ordenar por (OrderBy) e Manter (Keep), que fica com a Primeira ou a Última linha da ordem.

yaml
Dedupe:
  PartitionBy: [PEDIDO_ID]
  OrderBy:
    - Column: ATUALIZADO_EM
      Dir: desc
  Keep: first

Para ter a primeira e a última linha de cada chave ao mesmo tempo, use duas colunas calculadas row_number, uma em cada ordem, e filtre num nó seguinte.

Filtro SQL legado ​

Nós antigos podem ter WhereClause, um filtro em SQL livre. Ele ainda roda, mas a tela o mostra só para leitura, com o aviso "Filtro SQL legado (descontinuado)" e o botão Remover filtro legado. Não crie novos: use Filtros.

Extrair Datalake ​

Na telaNo YAML (options)TipoPadrãoRegra
Tabela do DatalakeTableIDinteironenhumLista só tabelas Datalake publicadas
Filtrar pela janela do dataflowUsePartitionbooleanodesligadoLê só as partições do período de {StartDate} a {EndDate}. Aparece quando a tabela é particionada por ano ou mês e tem coluna de data, e só vale quando a Extração do Dataflow é Janela
Ler dados de todos os Agentes ETLReadAllAgentsbooleanodesligadoCada Agente ETL grava os próprios arquivos na tabela. Desligado, o nó lê só os do Agente ETL que está rodando

Abaixo dos campos, a seção Partições lista o que está gravado: Partição, Agente ETL e Data. As colunas e os tipos vêm da definição da tabela.

Sem Filtrar pela janela do dataflow, o nó lê a tabela inteira (do Agente ETL que roda, ou de todos). Quem grava uma tabela Datalake é o nó Inserir no DW apontado para ela.

Limites da consulta ​

Valem para o Consultar Lakehouse, conferidos pelo Lumo antes de rodar.

ItemMáximo
Colunas projetadas200
Filtros (folhas da árvore)100
Níveis da árvore de filtros5
Valores num filtro em (lista)1.000
Agregações50
Colunas em Agrupar50
Colunas calculadas50
Itens em Ordenar por50

Relacionado ​

Pelo Lumo CLI

O nó também pode ser escrito e versionado em YAML. Veja a referência de flow.