Skip to content

Modos de carga ​

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

Os valores que definem a carga de um Dataflow e a janela de cada execução. O que cada eixo faz está em Tipos de carga.

Campos ​

Na telaNo YAML (flow)TipoPadrãoRegra
Extraçãoload_typeTotal, Temporal, IncrementalobrigatórioTemporal aparece como Janela na tela
Coluna de janela / Coluna de corteload_type_columntextovazioobrigatória para Substituir a janela; na Janela, só coluna de data
Gravaçãowrite_modereplace_all, replace_window, upsert_by_key, insert_onlyderivadaver Gravação derivada
Sincronizar exclusõeskey_sweep.sql, key_sweep.credentialIdobjetovaziosó com load_type: Incremental e destino table com Chave Única e colunas-chave

Gravação ​

Na telawrite_modeApaga antes de inserirExige
Substituir tudoreplace_allo que o Dataflow gravou antes, naquele Agente ETL; a tabela inteira quando ela tem um único Dataflow produtornada
Substituir a janelareplace_windowas linhas do Dataflow, naquele Agente ETL, cuja coluna de janela cai no intervaloload_type_column
Atualizar por chaveupsert_by_keynadadestino table com Chave Única e colunas-chave; com Janela, Agente ETL 1.28.0 ou mais novo
Somente inseririnsert_onlynadadestino que não deduplica

Combinações aceitas ​

load_typewrite_mode aceitos
Totalreplace_all
Temporalreplace_window, upsert_by_key
Incrementalupsert_by_key, insert_only

Gravação derivada ​

Com write_mode vazio ou ausente:

load_typeGravação usada
Totalreplace_all
Temporalreplace_window
Incrementalupsert_by_key se o destino tem Chave Única com colunas-chave; senão insert_only

Contexto de execução ​

Na telaContextoJanela
TotalTotal01/01/1910 a 01/01/2100; troca toda a parte do Dataflow, qualquer que seja a Gravação
Temporal (Passado), Últimos N diasTemporal:Days:Nhoje menos N dias até hoje
Temporal (Futuro), Próximos N diasTemporal:Future:Nhoje até hoje mais N dias
Mês MM/AAAATemporal:Month:M-AAAAo mês inteiro
Ano de AAAATemporal:Year:AAAAo ano inteiro; Temporal:Year:Current é o ano corrente
IncrementalIncrementaldo ponto de corte em diante
Sincronizar exclusõesKeySweeproda só a consulta de chaves

No YAML do agendamento, Temporal e TemporalFuture são formas curtas que o Lumo expande com o número de dias de temporal_value (1 ou mais). Mês e ano se escrevem na forma completa.

Se o Tenant tem limite de data para cargas temporais, configurado no HEC, o início de qualquer janela, inclusive a do contexto Total, não recua além desse limite.

Exemplo ​

yaml
load_type: Temporal
load_type_column: DATA_EMISSAO
write_mode: replace_window
yaml
load_type: Incremental
load_type_column: ATUALIZADO_EM
write_mode: upsert_by_key
key_sweep:
  sql: SELECT id AS PEDIDO_ID FROM pedidos
  credentialId: 42

Limites ​

Combinação fora da tabela é recusada ao salvar:

  • Extração "Janela" não aceita a Gravação "X". Com essa Extração a Gravação precisa ser ...
  • Gravação "x" não existe. Valores aceitos: replace_all, replace_window, upsert_by_key, insert_only.
  • A Gravação "Substituir a janela" precisa da coluna de janela preenchida: é ela que define o intervalo a ser substituído no destino.

Atualizar por chave sem chave no destino:

  • A tabela "X" é do tipo "Y", e não uma tabela do Datawarehouse: a Gravação "Atualizar por chave" existe só para tabela do Datawarehouse...
  • A tabela "X" não tem chave única: com a Gravação "Atualizar por chave" cada registro alterado entraria como linha nova em vez de substituir a anterior. Marque a chave única na tabela antes de escolher esta Gravação.

Somente inserir num destino que deduplica é recusado, com a indicação de usar "Atualizar por chave".

Um Dataflow que passa a ser Incremental sobre uma tabela sem Chave Única é recusado: A tabela "X" não tem chave única: com carga Incremental, cada registro alterado entraria como linha nova em vez de substituir a anterior. Marque a chave única na tabela, ou use carga Total ou Temporal. A recusa vale só para tabela do Datawarehouse. Por isso, sobre tabela do Datawarehouse, Incremental com Somente inserir só existe em Dataflow que já era Incremental.

Janela com Atualizar por chave exige Agente ETL 1.28.0 ou mais novo: Este dataflow usa a Gravação "Atualizar por chave" com Extração "Janela", que exige Agente ETL 1.28.0 ou mais novo.

Um contexto de janela num Dataflow que não é de Janela, ou sem coluna de janela, falha na execução em vez de apagar a tabela inteira: Contexto '…' pede carga por janela, mas … Corrija o flow para load_type=Temporal com load_type_column preenchido, ou execute este flow com contexto Total. Com a Gravação Atualizar por chave ou Somente inserir declarada, nada seria apagado, e a execução segue com a janela.

Na execução, o Agente ETL confere de novo a chave do destino, porque ela pode ter sido tirada depois de salvar: A Gravação "Atualizar por chave" exige que a tabela "X" tenha chave única marcada, e ela está como ...

Uma variável DeletePredicate definida por um Configurador substitui a condição de exclusão e vence a Gravação.

Pelo Lumo CLI

Este recurso também pode ser criado e versionado em YAML. Veja a referência de flow.