# Arquitetura de conjunto de dados em um armazém de dados na nuvem

O Qlik Talend Data Integration permite criar, gerenciar e controlar um pipeline de dados analíticos, fornecendo dados o tempo todo aos consumidores. Quando você gera conjuntos de dados em um armazém de dados na nuvem com o Qlik Talend Data Integration, são geradas tabelas de armazenamento, tabelas de alterações e exibições.

Uma interface de usuário intuitiva e guiada ajuda você a criar, modelar e executar pipelines de dados. Gere esquemas automaticamente 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 Talend Data Integration usando o Qlik Data Gateway - Data Movement e o CDC

Arquitetura para um pipeline de dados do Qlik Talend Data Integration usando o Qlik Data Gateway - Data Movement e o CDC

Arquitetura para um pipeline de dados do Qlik Talend Data IntegrationQlik Talend Data Integration usando o Qlik Data Gateway - Data MovementQlik Data Gateway - Data Movement e o CDC ![](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Resources/Images/dr_DIArchitecture_v1.svg)

* Aterrisagem

  A tarefa de aterrissagem no Qlik Talend Data Integration controla a aterrissagem contínua de dados das fontes de dados para a zona de aterrissagem. O exemplo no diagrama descreve o uso do Qlik Data Gateway - Data Movement para acessar fontes de dados usando o CDC para manter os dados atualizados. Você também pode usar as conexões de origem do Qlik Cloud para realizar carregamentos totais que podem ser programados para recarregar periodicamente.

  Para obter informações sobre quando você precisa usar o Gateway do Data Movement, consulte [Quando o Gateway do Data Movement é necessário?](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top)

  Nota informativaAs tabelas na zona de aterrisagem são geradas para uso interno pelas tarefas de dados de armazenamento do Qlik Talend Data Integration. Não use as tabelas de aterrisagem em nenhum outro processo de recebimento de dados.

* Armazenamento

  A tarefa de armazenamento controla quando os dados são aplicados às tabelas de armazenamento e cria e gerencia as tabelas e exibições externas.

* Exibições externas

  Ao consumir dados, a prática recomendada é usar exibições. Exibições fornecem vários benefícios sobre as tabelas, incluindo simultaneidade de dados aprimorada.

## Usando exibições ao vivo

Você pode acessar dados atuais (ODS) e dados históricos (HDS) usando exibições ao vivo. As exibições ao vivo incluem dados de tabelas de alterações que ainda não foram aplicadas às tabelas atuais ou anteriores. Isso permite que você veja os dados com menor latência sem precisar aplicar dados alteardos com frequência. A capacidade de atrasar a mesclagem permite custos e requisitos de processamento reduzidos na plataforma de destino.

Outro benefício das exibições ao vivo é que a camada de computação não precisa ser executada o tempo todo.

* A aterrissagem pode apontar para um armazém explícito que pode ser pequeno, pois apenas executa operações INSERT para uma execução rápida.

* O processo de armazenamento, executado uma vez por dia, por exemplo, pode ativar uma grande camada de computação para processamento.

* A latência pode ser melhorada, pois não precisamos mais aplicar alterações ao longo do dia. Quando novos registros inseridos ficam disponíveis na tabela de alterações, eles ficam disponíveis imediatamente nas exibições ao vivo.

[Ver videoclipe](https://play.vidyard.com/USr4BCxeuYsVV1hE5JmKWb)

## Esquemas

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

* O esquema interno contém as tabelas de dados físicos.

* 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, certifique-se de 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 garantirá efetivamente que cada combinação de esquema e prefixo seja exclusiva.

Esquemas criados pelo Qlik Talend Data Integration não serão excluídos quando você excluir tarefas ou projetos.

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

## Tabelas

As tabelas a seguir são criadas no esquema interno.

Nota informativaAs tabelas do esquema interno estão sujeitas a alterações sem aviso prévio. Você deve usar principalmente exibições para consumir dados sempre que possível.

* Tabela atual (ODS)

  Esta tabela contém a réplica da fonte de dados atualizada com as alterações durante o intervalo de aplicação mais recente.

* Tabela anterior (HDS)

  Esta tabela contém dados históricos do tipo 2. Ela só é gerada se Histórico estiver habilitado nas configurações da tarefa de dados.

  Quando um registro de tabela de origem é atualizado, um novo registro é adicionado à tabela anterior a cada vez. O registro de histórico é uma cópia do registro atual anterior, que também inclui o que foi atualizado e quando foi válido.

  Use uma exibição do histórico ou uma exibição ao vivo do histórico para exibir dados históricos. Para obter mais informações, consulte [Exibição de histórico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm#History) e [Exibição de histórico ao vivo](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm#History2).

* Tabela de alterações

  Esta tabela contém todas as alterações para a tabela de origem correspondente desde o início da tarefa e nunca é truncada. Ela só é gerada se o modo de aterrissagem for Carregamento total e CDC.

  Nota de dicaSe o seu sistema lida com um alto volume de alterações, considere truncar periodicamente as alterações aplicadas das tabelas de alterações. Isso deve reduzir o consumo de recursos e melhorar o desempenho.

Nota informativa

Quando o usuário reinsere um registro que foi excluído anteriormente e os registros têm o mesmo valor de chave primária, hdr\_\_operation terá o valor U - updated.

Os nomes de colunas que começam com hdr\_\_ são reservados para uso em colunas de cabeçalho pelo Qlik Talend Data Integration. Para obter mais informações, consulte [Nomes de colunas ambíguos](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Deploying/Troubleshooting-data-assets.htm#Ambiguou).

### Tabela atual

Nomeação: &lt;INTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;\_current

As seguintes colunas de cabeçalho são adicionadas à estrutura da tabela.

Campos de cabeçalhos da tabela atual

| 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.<br><br>Esta coluna não é gerada em tarefas de dados do Datamart. |
| hdr\_\_key\_id | int64 | Sequência incrementada por registro.<br><br>Esta coluna só é gerada em tarefas de dados do Datamart. |
| hdr\_\_from\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC<br><br><ul> <li> <p>Para dados obtidos do carregamento total, será a hora de início do carregamento total.</p> </li> <li> <p>Para uma alteração proveniente de tabelas de alterações, será o campo de carimbo de data/hora do registro.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Operação mais recente deste registro.<br><br><ul> <li> <p>D - excluído da tabela de alterações.</p> </li> <li> <p>U - atualizado da tabela de alterações.</p> </li> <li> <p>I - inserido da tabela de alterações.</p> </li> <li> <p>L - inserido pela tarefa de carregamento total.</p> </li> <li> <p>d - excluído de comparar e aplicar.</p> </li> <li> <p>u - atualizado de comparar e aplicar.</p> </li> <li> <p>i - inserido de comparar e aplicar.</p> </li> </ul> |
| hdr\_\_inserted\_timestamp | carimbo de data/hora | 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 | carimbo de data/hora | Carimbo de data/hora em UTC de quando a última atualização foi aplicada. |

### Tabela anterior

Os campos de cabeçalho a seguir são adicionados.

Nomenclatura: &lt;INTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;\_prior

Campos de cabeçalhos da tabela anterior

| Campo | Tipo | Descrição |
| --- | --- | --- |
| hdr\_\_key\_hash | varbinary(20) | Hash de todas as chaves primárias de registro.<br><br>Esta coluna não é gerada em tarefas de dados do Datamart. |
| hdr\_\_key\_id | int64 | Sequência incrementada por registro.<br><br>Esta coluna só é gerada em tarefas de dados do Datamart. |
| hdr\_\_from\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC |
| hdr\_\_to\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC |
| hdr\_\_operation | string(1) | Operação mais recente deste registro.<br><br><ul> <li> <p>D - excluído da tabela de alterações.</p> </li> <li> <p>U - atualizado da tabela de alterações.</p> </li> <li> <p>I - inserido da tabela de alterações.</p> </li> <li> <p>L - inserido pelo carregamento inicial.</p> </li> <li> <p>d - excluído de comparar e aplicar.</p> </li> <li> <p>u - atualizado de comparar e aplicar.</p> </li> <li> <p>i - inserido de comparar e aplicar.</p> </li> </ul> |
| hdr\_\_was\_current\_from\_timestamp | carimbo de data/hora | O carimbo de data/hora em UTC para o primeiro registro de hora era atual. |
| hdr\_\_was\_current\_to\_timestamp | carimbo de data/hora | O carimbo de data/hora em UTC para o último registro de hora era atual. |

### Tabela de alterações

Nomenclatura: &lt;INTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;\_ct

Os seguintes campos de cabeçalho são adicionados à estrutura da tabela.

Campos de cabeçalho de tabela de alterações

| Campo | Tipo | Descrição |
| --- | --- | --- |
| hdr\_\_change\_identifier | varchar(50) | O identificador de alteração é uma string com duas partes:<br><br><ul> <li> <p>Carimbo de data/hora de início de execução em lote em milissegundos desde 1/1/1970 (string de 10 dígitos) </p> </li> <li> <p>Sequência de alteração do gateway de replicação (35 caracteres)</p> </li> </ul> |
| hdr\_\_operation | varchar(1) | Operação mais recente deste registro.<br><br><ul> <li> <p>D - excluído da tabela de alterações.</p> </li> <li> <p>U - atualizado da tabela de alterações.</p> </li> <li> <p>I - inserido da tabela de alterações.</p> </li> <li> <p>d - excluído de comparar e aplicar.</p> </li> <li> <p>u - atualizado de comparar e aplicar.</p> </li> <li> <p>i - inserido de comparar e aplicar.</p> </li> </ul> |
| hdr\_\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC |
| hdr\_\_key\_hash | binary(20) | Hash de todas as chaves primárias de registro.<br><br>Esta coluna não é gerada em tarefas de dados do Datamart. |
| hdr\_\_key\_id | int64 | Sequência incrementada por registro.<br><br>Esta coluna só é gerada em tarefas de dados do Datamart. |

## Exibições

As exibições a seguir são criadas no esquema de destino da tarefa de dados. Quais exibições são criadas depende se você ativou exibições ao vivo e histórico e se usa manipulação de alterações.

* Visualização padrão

* Exibição ao vivo

* Exibição de alterações

* Exibição de histórico

* Exibição de histórico ao vivo

Nota informativaTodos os nomes de colunas de cabeçalho, começando com hdr\_\_, são reservados. Se você consumir uma visualização em uma tarefa de armazenamento, deverá renomear as colunas de cabeçalho consumidas na tarefa de armazenamento para evitar um conflito de nomes, pois a tarefa de armazenamento gerará visualizações com as mesmas colunas de cabeçalho.

### Visualização padrão

Nomenclatura: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;

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

### Exibição ao vivo

Exibições ao vivo mostram uma exibição para cada tabela de origem selecionada que mescla a tabela com as alterações da tabela de alterações. Isso fornece às consultas uma exibição ao vivo dos dados sem ter que esperar pelo próximo ciclo de aplicação. As alterações mescladas da exibição da tabela de alterações não são consistentes com a transação entre as tabelas.

Exibições ao vivo só são criadas se você habilitar Exibições ao vivo nas configurações da tarefa de dados.

Nomenclatura: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;&lt; Sufixo para exibições ao vivo&gt;

Campos de cabeçalhos de tabelas

| 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.<br><br>Esta coluna não é gerada em tarefas de dados do Datamart. |
| hdr\_\_key\_id | int64 | Sequência incrementada por registro.<br><br>Esta coluna só é gerada em tarefas de dados do Datamart. |
| hdr\_\_from\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC<br><br><ul> <li> <p>Para dados obtidos do carregamento total, será a hora de início do carregamento total.</p> </li> <li> <p>Para uma alteração proveniente de tabelas de alterações, será o campo de carimbo de data/hora do registro.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Operação mais recente deste registro.<br><br><ul> <li> <p>D - excluído da tabela de alterações.</p> </li> <li> <p>U - atualizado da tabela de alterações.</p> </li> <li> <p>I - inserido da tabela de alterações.</p> </li> <li> <p>L - inserido pela tarefa de carregamento total.</p> </li> <li> <p>d - excluído de comparar e aplicar.</p> </li> <li> <p>u - atualizado de comparar e aplicar.</p> </li> <li> <p>i - inserido de comparar e aplicar.</p> </li> </ul> |
| hdr\_\_inserted\_timestamp | carimbo de data/hora | 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 | carimbo de data/hora | Carimbo de data/hora em UTC de quando a última atualização foi aplicada. |
| hdr\_\_store | varchar(10) | Isso indica onde o registro reside.<br><br><ul> <li> <p><span>CURRENT</span> - se o registro residir na tabela física atual.</p> </li> <li> <p><span>CHANGES</span> - se o registro residir na tabela de alterações.</p> </li> </ul> |

### Exibição de alterações

Esta é uma visão da tabela de mudança no esquema de destino para cada tabela de origem selecionada.

Nomenclatura: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;\_changes

Os seguintes campos de cabeçalho são adicionados à estrutura da tabela.

Altera os campos de cabeçalho da visualização

| Campo | Tipo | Descrição |
| --- | --- | --- |
| hdr\_\_change\_identifier | string(50) | O identificador de alteração é uma string com duas partes:<br><br><ul> <li> <p>Carimbo de data/hora de início de execução em lote em milissegundos desde 1/1/1970 (string de 10 dígitos) </p> </li> <li> <p>Sequência de alteração do gateway de replicação (35 caracteres)</p> </li> </ul> |
| hdr\_\_from\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC<br><br><ul> <li> <p>Para dados obtidos do carregamento total, será a hora de início do carregamento total.</p> </li> <li> <p>Para uma alteração proveniente de tabelas de alterações, será o campo de carimbo de data/hora do registro.</p> </li> </ul> |
| hdr\_\_to\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC<br><br><ul> <li> <p>Para dados obtidos do carregamento total, será a hora de início do carregamento total.</p> </li> <li> <p>Para uma alteração proveniente de tabelas de alterações, será o campo de carimbo de data/hora do registro.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Operação mais recente deste registro.<br><br><ul> <li> <p>D - excluído da tabela de alterações.</p> </li> <li> <p>U - atualizado da tabela de alterações.</p> </li> <li> <p>I - inserido da tabela de alterações.</p> </li> <li> <p>L - inserido pela tarefa de carregamento total.</p> </li> <li> <p>d - excluído de comparar e aplicar.</p> </li> <li> <p>u - atualizado de comparar e aplicar.</p> </li> <li> <p>i - inserido de comparar e aplicar.</p> </li> </ul> |
| hdr\_\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC |
| hdr\_\_key\_hash | binary(20) | Hash de todas as chaves primárias de registro.<br><br>Esta coluna não é gerada em tarefas de dados do Datamart. |
| hdr\_\_key\_id | int64 | Sequência incrementada por registro.<br><br>Esta coluna só é gerada em tarefas de dados do Datamart. |

### Exibição de histórico

Uma exibição de histórico é gerada no esquema de ativo de dados para cada tabela de origem selecionada se o Histórico estiver habilitado nas configurações da tarefa de dados. Os campos de cabeçalho a seguir são adicionados.

Nomenclatura: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;&lt; Sufixo para exibições de histórico&gt;

Campos de cabeçalho de exibição de histórico

| Campo | Tipo | Descrição |
| --- | --- | --- |
| hdr\_\_key\_hash | binary(20) | Hash de todas as chaves primárias de registro.<br><br>Esta coluna não é gerada em tarefas de dados do Datamart. |
| hdr\_\_key\_id | int64 | Sequência incrementada por registro.<br><br>Esta coluna só é gerada em tarefas de dados do Datamart. |
| hdr\_\_from\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC<br><br><ul> <li> <p>Para dados obtidos do carregamento total, será a hora de início do carregamento total.</p> </li> <li> <p>Para uma alteração proveniente de tabelas de alterações, será o campo de carimbo de data/hora do registro.</p> </li> </ul> |
| hdr\_\_to\_timestamp | carimbo de data/hora | Carimbo de data/hora em UTC<br><br><ul> <li> <p>Para dados obtidos do carregamento total, será a hora de início do carregamento total.</p> </li> <li> <p>Para uma alteração proveniente de tabelas de alterações, será o campo de carimbo de data/hora do registro.</p> </li> </ul> |
| hdr\_\_was\_current\_from\_timestamp | carimbo de data/hora | O carimbo de data/hora em UTC para o primeiro registro de hora era atual. |
| hdr\_\_was\_current\_to\_timestamp | carimbo de data/hora | O carimbo de data/hora em UTC para o último registro de hora era atual. |
| hdr\_\_store | varchar(7) | Isso indica onde o registro reside.<br><br><ul> <li> <p><span>CURRENT</span> - se o registro residir na tabela física atual.</p> </li> <li> <p><span>PRIORS</span> - se o registro residir na tabela anterior com dados históricos.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Operação mais recente deste registro.<br><br><ul> <li> <p>D - excluído da tabela de alterações.</p> </li> <li> <p>U - atualizado da tabela de alterações.</p> </li> <li> <p>I - inserido da tabela de alterações.</p> </li> <li> <p>L - inserido pela tarefa de carregamento total.</p> </li> <li> <p>d - excluído de comparar e aplicar.</p> </li> <li> <p>u - atualizado de comparar e aplicar.</p> </li> <li> <p>i - inserido de comparar e aplicar.</p> </li> </ul> |
| hdr\_\_deleted | bit | Indica se o registro é excluído de forma reversível, com base em se hdr\_\_operation é D ou d. |

### Exibição de histórico ao vivo

Uma exibição dinâmica do histórico é gerada no esquema de ativo de dados para cada tabela de origem selecionada para cada tabela de origem selecionada mesclada com as alterações da tabela de alterações. Os campos de cabeçalho a seguir são adicionados.

Nomenclatura: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;&lt; Sufixo para exibições de histórico ao vivo&gt;

Campos de cabeçalho de exibição de histórico ao vivo

| Campo | Tipo | Descrição |
| --- | --- | --- |
| hdr\_\_key\_hash | binary(20) | Hash de todas as chaves primárias de registro.<br><br>Esta coluna não é gerada em tarefas de dados do Datamart. |
| hdr\_\_key\_id | int64 | Sequência incrementada por registro.<br><br>Esta coluna só é gerada em tarefas de dados do Datamart. |
| hdr\_\_store | varchar(10) | Isso indica onde o registro reside.<br><br><ul> <li> <p><span>CURRENT</span> - se o registro residir na tabela física atual.</p> </li> <li> <p><span>PRIORS</span> - se o registro residir na tabela anterior com dados históricos.</p> </li> <li> <p><span>CHANGES</span> - se o registro residir na tabela de alterações.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Operação mais recente deste registro.<br><br><ul> <li> <p>D - excluído da tabela de alterações.</p> </li> <li> <p>U - atualizado da tabela de alterações.</p> </li> <li> <p>I - inserido da tabela de alterações.</p> </li> <li> <p>L - inserido pela tarefa de carregamento total.</p> </li> <li> <p>d - excluído de comparar e aplicar.</p> </li> <li> <p>u - atualizado de comparar e aplicar.</p> </li> <li> <p>i - inserido de comparar e aplicar.</p> </li> </ul> |
| hdr\_\_deleted | bit | Indica se o registro é excluído de forma reversível, com base em se hdr\_\_operation é D ou d. |