Ir para conteúdo principal Pular para conteúdo complementar

Arquitetura do conjunto de dados em um Qlik Open Lakehouse

Quando você gera conjuntos de dados em um Qlik Open Lakehouse, tabelas de armazenamento, tabelas de alterações e visualizações são geradas automaticamente pelo Qlik Talend Data Integration. Você pode consultar essas exibições para acessar dados atuais e históricos armazenados no formato de tabela aberta do Iceberg.

Uma interface de usuário intuitiva e guiada ajuda você a criar, modelar e executar pipelines de dados. Você pode gerar automaticamente esquemas para armazenamentos de dados operacionais (ODS) e armazenamentos de dados históricos (HDS) sem codificação manual.

Arquitetura para um pipeline de dados do Qlik Open Lakehouse usando o Qlik Data Gateway - Movimentação de dados. Os dados são aterrisados no S3 e armazenados em um open lakehouse do Iceberg. Opcionalmente, como mostrado abaixo, as tabelas podem ser espelhadas para um armazém de dados.

Esquemas

Artefatos são gerados em um esquema interno e um esquema de tarefa de dados.

  • O esquema interno contém uma tabela física com várias partições.

  • O esquema de tarefa de dados contém as exibições que você pode usar para consumir os dados.

    Quando um esquema está associado a mais de uma tarefa de dados, cada tarefa de dados deve usar um prefixo exclusivo para tabelas e exibições. Você pode definir o prefixo nas configurações da tarefa de dados.

Somente os esquemas internos são verificados quanto a conflitos de nomenclatura. Para outros esquemas, você deve garantir que não haja conflitos de nomenclatura nos nomes das tabelas. A melhor prática é nomear o esquema interno com o mesmo nome do esquema de tarefa de dados com _internal adicionado. Isso garante que cada combinação de esquema e prefixo seja única.

Nota informativaTodas as tabelas e exibições são gerenciadas pelo Qlik Talend Data Integration. Não altere os dados usando outras ferramentas.

Tabelas

Para cada tabela de origem, é criada uma tabela no esquema interno com o sufixo _internal, usando o formato:

<INTERNAL_SCHEMA>.<TABLE_NAME>_internal

Essa tabela contém cinco partições, cada uma servindo a um propósito distinto na forma como os dados são processados e armazenados. Cada partição utiliza um subconjunto das colunas da tabela com base em sua função no ciclo de vida dos dados.

Nota informativaA tabela no esquema interno está sujeita a alterações sem aviso prévio. Você deve usar principalmente exibições para consumir dados sempre que possível.

O conjunto de dados interno é estruturado para gerenciar com eficiência os dados recebidos do seu sistema de origem, suportando a ingestão em tempo real e o rastreamento histórico. O fluxo de dados é gerenciado por meio de várias partições especializadas, cada uma descrita abaixo:

  • Partição Changes – ingestão em tempo real

    Todas as alterações do sistema de origem – inserções, atualizações e exclusões – são primeiro anexadas à partição Changes.

    • Atuando como um log de alterações bruto, a partição fornece um feed completo da atividade de origem antes que qualquer transformação ocorra.

    • Cada alteração é marcada com um tipo (I, U ou D), indicando como ela é processada.

    • Os eventos são capturados da fonte à medida que ocorrem. A partição é atualizada quase em tempo real.

    • A partição Changes está disponível quando as seguintes configurações são aplicadas na tarefa de dados de aterrisagem no lake.

      • Na guia Geral, o Método de atualização está definido como CDC.

      • O carregamento total está ativado.

  • Partição Asset_state – acompanhamento do progresso

    À medida que as alterações são ingeridas, a partição Asset_state registra dois carimbos de data/hora importantes:

    • Quando as alterações foram anexadas pela última vez à partição Changes.

    • Quando as alterações foram aplicadas pela última vez à partição Current.

    Isso proporciona visibilidade total do pipeline de sincronização e ajuda no monitoramento ou na solução de problemas de atrasos.

  • Partição Current (ODS) – última réplica da fonte

    As alterações da partição Changes são aplicadas periodicamente à partição Current para manter uma cópia atualizada e otimizada para consulta da fonte de dados.

    • Uma tarefa em segundo plano é executada automaticamente para aplicar essas atualizações. Isso se baseia no volume de alterações acumuladas, e não em um cronograma fixo.

    • O carregamento total inicial é gravado diretamente na partição Current.

    • Essa partição reflete o estado atual dos dados e foi projetada para uma consulta eficiente.

  • Partição Prior (HDS) – dados históricos

    Quando um registro é atualizado ou excluído na partição Current, uma cópia da versão anterior é gravada na partição Prior

    • Os registros contêm metadados, incluindo o histórico de alterações e o intervalo de datas em que os dados são válidos.

    • Isso suporta a dimensão de alteração lenta do Tipo 2 (SCD2).

    • A partição Prior está disponível quando a opção Manter registros históricos e arquivar registros de alterações está ativada na guia Geral das configurações da tarefa Dados de armazenamento.

    • Quando uma versão atualizada de um registro entra na partição Current, o registro anterior é movido para a partição Prior para acompanhamento histórico.

  • Partição Reload

    A partição Reload atua como uma área de preparação temporária durante recargas completas manuais ou programadas:

    • Os novos dados são gravados primeiro na partição Reload.

    • As tarefas de manutenção regulares limpam as alterações pendentes antes de serem pausadas.

    • Os dados são comparados com a partição Current e somente as diferenças são movidas para a partição Current.

    • A partição Reload é limpa quando a operação é concluída.

    Esse processo garante o mínimo de interrupção do conjunto de dados principal durante as operações de recarga completa.

Partição Current

Campo Tipo Descrição
hdr__key_hash VARBINARY (20) Hash de todas as chaves primárias de registro. O formato de hash é SHA1. As colunas são separadas por um caractere de backspace.
hdr__from_timestamp TIMESTAMP

Carimbo de data/hora em UTC:

  • Para dados obtidos de um carregamento total, este é o horário de início do carregamento total.

  • Para uma alteração proveniente da partição Changes, este é o campo de carimbo de data/hora do registro.

hdr__operation VARCHAR (1)

Operação mais recente deste registro.

  • D - excluído da partição Changes.

  • U - atualizado da partição Changes.

  • I - inserido da partição Changes.

  • L - inserido pela tarefa de carregamento total.

  • d - excluído de comparar e aplicar.

  • u - atualizado de comparar e aplicar.

  • i - inserido de comparar e aplicar.

hdr__inserted_timestamp TIMESTAMP Carimbo de data/hora em UTC da primeira vez em que a chave foi adicionada. Ao usar carregamento total, a hora de início do carregamento total.
hdr__modified_timestamp TIMESTAMP Carimbo de data/hora em UTC de quando a última atualização foi feita.

Partição Prior

Campo Tipo Descrição
hdr__key_hash VARBINARY (20) Hash de todas as chaves primárias de registro.
hdr__from_timestamp TIMESTAMP Carimbo de data/hora em UTC.
hdr__to_timestamp TIMESTAMP Carimbo de data/hora em UTC.
hdr__operation STRING (1)

Operação mais recente deste registro.

  • D - excluído da partição Changes.

  • U - atualizado da partição Changes.

  • I - inserido da partição Changes.

  • L - inserido pela tarefa de carregamento total.

  • d - excluído de comparar e aplicar.

  • u - atualizado de comparar e aplicar.

  • i - inserido de comparar e aplicar.

hdr__was_current_from_timestamp TIMESTAMP O carimbo de data/hora em UTC para o primeiro registro de hora era atual.
hdr__was_current_to_timestamp TIMESTAMP O carimbo de data/hora em UTC para o último registro de hora era atual.

Partição Changes

Campo Tipo Descrição
hdr__change_identifier VARCHAR (50)

O identificador de alteração é uma string com duas partes:

  • Carimbo de data/hora de início de execução em lote em milissegundos desde 1/1/1970 (string de 10 dígitos).

  • Sequência de alteração do gateway de replicação (35 caracteres).

hdr__operation VARCHAR (1)

Operação mais recente deste registro.

  • D - excluído da partição Changes.

  • U - atualizado da partição Changes.

  • I - inserido da partição Changes.

  • L - inserido pela tarefa de carregamento total.

  • d - excluído de comparar e aplicar.

  • u - atualizado de comparar e aplicar.

  • i - inserido de comparar e aplicar.

hdr__timestamp TIMESTAMP Carimbo de data/hora em UTC.
hdr__key_hash BINARY (20) Hash de todas as chaves primárias de registro.
hdr__inserted_timestamp TIMESTAMP Carimbo de data/hora UTC da hora quando a alteração foi processada pelo Qlik.

Partição Asset_state

Campo Tipo Descrição
hdr__apply_change_identifier VARCHAR (50) O identificador de alteração da última alteração aplicada à partição Current.
hdr__copy_change_identifier VARCHAR (50) O identificador de alteração da última alteração anexada à partição Changes.

Partição Reload

As colunas usadas pela partição Reload são idênticas às da partição Current.

Exibições

Todas as visualizações criadas são atualizadas quase em tempo real. As seguintes exibições estão disponíveis para simplificar as consultas e os relatórios:

Atual

A exibição Atual reflete o estado mais recente dos dados. Essa exibição representa uma réplica da tabela de origem, atualizada quase em tempo real. Ela mescla dados das partições Current e Changes.

Nome: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>

Nenhuma coluna de cabeçalho é adicionada à estrutura da tabela.

Histórico

Uma visualização Histórico é gerada no esquema de ativo de dados para cada tabela de origem selecionada quando o Histórico estiver habilitado nas configurações da tarefa de dados. A visualização Histórico mescla dados das partições Prior e Changes. Ela fornece uma linha do tempo completa das alterações, ideal para auditoria ou análise histórica.

Nome: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_<Suffix for history views>

Os seguintes campos de cabeçalho são adicionados à visualização Histórico:

Campo Tipo Descrição
hdr__key_hash BINARY (20) Hash de todas as chaves primárias de registro.
hdr__from_timestamp TIMESTAMP O carimbo de data/hora em que a alteração ocorreu no sistema de origem. Isso reflete quando o usuário fez a alteração originalmente.
hdr__to_timestamp TIMESTAMP O carimbo de data/hora em que a alteração foi revertida ou atualizada no sistema de origem.
hdr__store VARCHAR (10)

Isso indica onde o registro reside:

  • CURRENT - se o registro residir na partição Current.

  • PRIOR - se o registro residir na partição Prior com dados históricos.

hdr__operation STRING (1)

Operação mais recente deste registro.

  • D - excluído da partição Changes.

  • U - atualizado da partição Changes.

  • I - inserido da partição Changes.

  • L - inserido pela tarefa de carregamento total.

  • d - excluído de comparar e aplicar.

  • u - atualizado de comparar e aplicar.

  • i - inserido de comparar e aplicar.

hdr__deleted BIT Indica se o registro é excluído de forma reversível, com base em se hdr__operation é D ou d.
hdr__was _current_from_timestamp TIMESTAMP A hora (UTC) em que essa linha entrou na partição Current. Normalmente, é quando o trabalho de armazenamento foi executado e a alteração foi aplicada.
hdr__was _current_to_timestamp TIMESTAMP A hora (UTC) em que a linha foi removida da tabela Current, por exemplo, devido a uma versão mais recente.

Nota informativaAs exibições Atual e Histórico dependem da partição Changes e são quase sempre em tempo real. No entanto, se o desempenho da consulta for lento, isso pode ser devido a um grande número de alterações que ainda não foram aplicadas às partições Current ou Prior. Os deltas não mesclados exigem mais processamento no momento da consulta, tornando o acesso mais lento.

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo – um erro de digitação, uma etapa ausente ou um erro técnico – avise-nos!