# Architecture du jeu de données dans un entrepôt de données cloud

Qlik Talend Data Integration vous permet de créer, gérer et contrôler un pipeline de données d'analyse, pour transporter les données jusqu'aux consommateurs. Lorsque vous générez des jeux de données dans un entrepôt de données cloud avec Qlik Talend Data Integration, des tables de stockage, des tables de modifications et des vues sont générées.

L'interface utilisateur intuitive et assistée vous aide à créer, modéliser et exécuter des pipelines de données. Générez automatiquement des schémas pour les stocks de données opérationnelles (ODS) et les stocks de données historiques (HDS), sans codage manuel.

Architecture pour un pipeline de données Qlik Talend Data Integration à l'aide de Passerelle de données Qlik - Déplacement des données et de CDC

Architecture pour un pipeline de données Qlik Talend Data Integration à l'aide de Passerelle de données Qlik - Déplacement des données et de CDC

Architecture pour un pipeline de données Qlik Talend Data IntegrationQlik Talend Data Integration à l'aide de Passerelle de données Qlik - Déplacement des donnéesPasserelle de données Qlik - Déplacement des données et de CDC ![](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/dr_DIArchitecture_v1.svg)

* Déposer temporairement

  La tâche de dépôt intermédiaire dans Qlik Talend Data Integration contrôle le dépôt temporaire continu des données entre les sources de données et la zone de dépôt temporaire. L'exemple du diagramme décrit l'utilisation Passerelle de données Qlik - Déplacement des données pour accéder aux sources de données à l'aide de CDC afin de garder à jour les données. Vous pouvez également utiliser les connexions de sources Qlik Cloud pour réaliser des chargements complets, pouvant être planifiés périodiquement.

  Pour savoir quand utiliser Passerelle de déplacement des données, consultez [Quand Passerelle de déplacement des données est-elle obligatoire ?](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top).

  Note InformationsLes tables d'une zone de dépôt temporaire sont générées pour usage interne par les tâches de données de stockage Qlik Talend Data Integration. N'utilisez pas les tables de dépôt temporaire dans un autre processus en aval.

* Stockage

  La tâche de stockage contrôle le moment où les données sont appliquées aux tables de stockage, et crée et gère les tables et les vues externes.

* Vues externes

  Lors de la consommation de données, la bonne pratique consiste à utiliser des vues. Les vues offrent plusieurs avantages par rapports aux tables, notamment une meilleure simultanéité des données.

## Utilisation des vues en direct

Vous pouvez accéder aussi bien aux données actuelles (ODS) qu'aux données historiques (HDS) à l'aide de vues en direct. Les vues en direct incluent les données des tables de modifications qui ne sont pas encore appliquées ou de tables antérieures. Cela vous permet de voir les données de latence inférieure sans avoir à appliquer fréquemment les données modifiées. La capacité à reporter la fusion permet de réduire les coûts et les exigences de traitement sur la plateforme cible.

Les vues en direct offrent un autre avantage : la couche de calcul n'a pas besoin d'être exécutée en permanence.

* Le dépôt temporaire peut pointer vers un entrepôt explicite potentiellement petit, car il effectue seulement des opérations INSERT à des fins d'exécution rapide.

* Le processus de stockage, exécuté une fois par jour par exemple, peut réveiller une couche de calcul importante pour le traitement.

* La latence peut être améliorée, car nous n'avons plus besoin d'appliquer des modifications tout au long de la journée. Après leur insertion, les nouveaux enregistrements sont disponibles dans la table des modifications et immédiatement dans les vues en direct.

[Visionner le clip vidéo](https://play.vidyard.com/USr4BCxeuYsVV1hE5JmKWb)

## Schemas

Les artefacts sont générés dans un schéma interne et un schéma de tâche de données.

* Le schéma interne contient des tables de données physiques.

* Le schéma de tâche de données contient les vues que vous pouvez utiliser pour consommer les données.

  Lorsqu'un schéma est associé à plus d'une tâche de données, chaque tâche de données doit utiliser un préfixe unique pour les tables et les vues. Vous pouvez définir le préfixe dans les paramètres de tâche de données.

Les conflits de nommage sont recherchés uniquement dans les schémas internes. Pour les autres schémas, vous devez vous assurer qu'il n'existe aucun conflit de nommage dans les noms de table. La bonne pratique consiste à donner au schéma interne le même nom que celui du schéma de tâche de données en y ajoutant \_internal. Ainsi, vous êtes sûr que chaque combinaison de schéma et de préfixe est unique.

Les schémas créés par Qlik Talend Data Integration ne seront pas supprimés lorsque vous supprimez des tâches ou des projets.

Note InformationsL'ensemble des tables et vues sont gérées par Qlik Talend Data Integration. N'altérez pas les données à l'aide d'autres outils.

## Tables

Les tables suivantes sont générées dans le schéma interne.

Note InformationsLes tables du schéma interne peuvent être modifiées sans préavis. Dans la mesure du possible, vous devez principalement utiliser les vues pour consommer des données.

* Table actuelle (ODS)

  Cette table contient la réplique de la source de données mise à jour avec les modifications pendant le dernier intervalle d'application.

* Table antérieure (HDS)

  Cette table contient des données historiques de type 2. Elle est uniquement générée si l'option Historique est activée dans les paramètres des tâches de données.

  Lorsqu'un enregistrement de table source est mis à jour, un nouvel enregistrement est ajouté à la table antérieure à chaque fois. L'enregistrement historique est une copie de l'enregistrement actuel, qui indique également les éléments mis à jour et la date de validité.

  Utilisez une vue historique ou une vue en direct historique pour afficher les données historiques. Pour plus d'informations, consultez [Vue Historique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm#History) et [Vue en direct Historique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm#History2).

* Table de modifications

  Ce tableau contient toutes les modifications apportées à la table source correspondante depuis le début de la tâche et il n'est jamais tronqué. Il est généré uniquement si le mode de dépôt temporaire est Chargement complet et CDC.

  Note ConseilSi votre système gère un grand volume de modifications, pensez à tronquer périodiquement les modifications appliquées des tables de modifications. Cela devrait réduire la consommation de ressources et améliorer les performances.

Note Informations

Lorsque vous réinsérez un enregistrement précédemment supprimé et que les enregistrements ont la même valeur de clé primaire, hdr\_\_operation aura la valeur U (Updated - Mis à jour).

Les noms de colonne commençant par hdr\_\_ sont réservés à l'utilisation dans les colonnes d'en-tête par Qlik Talend Data Integration. Pour plus d'informations, consultez [Noms de colonne ambigus](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Deploying/Troubleshooting-data-assets.htm#Ambiguou).

### Table active

Nommage : &lt;SCHÉMA\_INTERNE&gt;.[&lt;PRÉFIXE&gt;]&lt;NON\_DE\_TABLE&gt;\_current

Les colonnes d'en-tête suivantes sont ajoutées à la structure de la table.

Champs d'en-tête de table active

| Champ | Type | Description |
| --- | --- | --- |
| hdr\_\_key\_hash | varbinary(20) | Hachage de toutes les clés primaires des enregistrements. Le format de hachage est SHA1. Les colonnes sont séparées par un caractère de retour arrière.<br><br>Cette colonne n'est pas générée dans les tâches de données Datamart. |
| hdr\_\_key\_id | int64 | Séquence incrémentée par enregistrement<br><br>Cette colonne n'est générée que les tâches de données Datamart. |
| hdr\_\_from\_timestamp | timestamp | Horodatage UTC<br><br><ul> <li> <p>Pour les données extraites d'un chargement complet, il s'agira de l'heure de début du chargement complet.</p> </li> <li> <p>Pour un changement provenant des tables de modifications, il s'agira du champ d'horodatage de l'enregistrement.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Dernière opération de cet enregistrement.<br><br><ul> <li> <p>D - supprimé dépuis la table de modifications.</p> </li> <li> <p>U - mis à jour depuis la table de modifications.</p> </li> <li> <p>I - inséré depuis la table de modifications.</p> </li> <li> <p>L - Inséré par la tâche de chargement complet.</p> </li> <li> <p>d - supprimé de Comparer et appliquer.</p> </li> <li> <p>u - mis à jour de Comparer et appliquer.</p> </li> <li> <p>i - inséré de Comparer et appliquer.</p> </li> </ul> |
| hdr\_\_inserted\_timestamp | timestamp | Horodatage UTC du premier ajout de la clé. En cas d'utilisation du chargement complet, il s'agit de l'heure de début du chargement complet. |
| hdr\_\_modified\_timestamp | timestamp | Horodatage UTC de la dernière mise à jour. |

### Table précédente

Les champs d'en-tête suivants sont ajoutés.

Nommage : &lt;SCHÉMA\_INTERNE&gt;.[&lt;PRÉFIXE&gt;]&lt;NON\_DE\_TABLE&gt;\_prior

Champs d'en-tête de table précédente

| Champ | Type | Description |
| --- | --- | --- |
| hdr\_\_key\_hash | varbinary(20) | Hachage de toutes les clés primaires des enregistrements.<br><br>Cette colonne n'est pas générée dans les tâches de données Datamart. |
| hdr\_\_key\_id | int64 | Séquence incrémentée par enregistrement<br><br>Cette colonne n'est générée que les tâches de données Datamart. |
| hdr\_\_from\_timestamp | timestamp | Horodatage UTC |
| hdr\_\_to\_timestamp | timestamp | Horodatage UTC |
| hdr\_\_operation | string(1) | Dernière opération de cet enregistrement.<br><br><ul> <li> <p>D - supprimé dépuis la table de modifications.</p> </li> <li> <p>U - mis à jour depuis la table de modifications.</p> </li> <li> <p>I - inséré depuis la table de modifications.</p> </li> <li> <p>L - inséré par le chargement initial</p> </li> <li> <p>d - supprimé de Comparer et appliquer.</p> </li> <li> <p>u - mis à jour de Comparer et appliquer.</p> </li> <li> <p>i - inséré de Comparer et appliquer.</p> </li> </ul> |
| hdr\_\_was\_current\_from\_timestamp | horodatage | Horodatage UTC de la première fois où l'enregistrement est apparu comme actuel. |
| hdr\_\_was\_current\_to\_timestamp | horodatage | Horodatage UTC de la dernière fois où l'enregistrement est apparu comme actuel. |

### Table de modifications

Nommage : &lt;SCHÉMA\_INTERNE&gt;.[&lt;PRÉFIXE&gt;]&lt;NON\_DE\_TABLE&gt;\_ct

Les champs d'en-tête suivants sont ajoutés à la structure des tables.

Champs d'en-tête de la table de modifications

| Champ | Type | Description |
| --- | --- | --- |
| hdr\_\_change\_identifier | varchar(50) | L'identifiant de la modification est une chaîne composée de deux parties :<br><br><ul> <li> <p>Horodatage du début d'exécution par lots en millisecondes depuis le 1/1/1970 (chaîne de 10&nbsp;caractères) </p> </li> <li> <p>Séquence de modification depuis la passerelle Replication (35 caractères)</p> </li> </ul> |
| hdr\_\_operation | varchar(1) | Dernière opération de cet enregistrement.<br><br><ul> <li> <p>D - supprimé dépuis la table de modifications.</p> </li> <li> <p>U - mis à jour depuis la table de modifications.</p> </li> <li> <p>I - inséré depuis la table de modifications.</p> </li> <li> <p>d - supprimé de Comparer et appliquer.</p> </li> <li> <p>u - mis à jour de Comparer et appliquer.</p> </li> <li> <p>i - inséré de Comparer et appliquer.</p> </li> </ul> |
| hdr\_\_timestamp | timestamp | Horodatage UTC |
| hdr\_\_key\_hash | binary(20) | Hachage de toutes les clés primaires des enregistrements.<br><br>Cette colonne n'est pas générée dans les tâches de données Datamart. |
| hdr\_\_key\_id | int64 | Séquence incrémentée par enregistrement<br><br>Cette colonne n'est générée que les tâches de données Datamart. |

## Vues

Les vues suivantes sont créées dans le schéma cible de la tâche de données. Les vues créées ne sont pas les mêmes si vous avez activé les vues en direct et l'historique et si vous utilisez la gestion des modifications.

* Vue standard

* Vue en direct

* Vue des modifications

* Vue Historique

* Vue en direct historique

Note InformationsTous les noms de colonne d'en-tête, commençant par hdr\_\_, sont réservés. Si vous consommez une vue dans une tâche de stockage, vous devez renommer les colonnes d'en-tête consommées dans la tâche de stockage pour éviter un conflit de noms, car la tâche de stockage générera des vues avec les mêmes colonnes d'en-tête.

### Vue standard

Nommage : &lt;SCHÉMA\_EXTERNE&gt;.[&lt;PRÉFIXE&gt;]&lt;NOM\_DE\_TABLE&gt;

Aucune colonne d'en-tête n'est ajoutée à la structure de la table.

### Vue en direct

Les vues en direct affichent une vue de chaque table source sélectionnée qui fusionne la table avec les modifications de la table de modifications. Cela fournit aux requêtes une vue en direct des données sans avoir à attendre le cycle d'application suivant. Les modifications fusionnées provenant de la vue de la table de modifications ne sont transactionnellement pas cohérentes entre les tables.

La création de vues en direct n'est possible que si vous activez Vues en direct dans les paramètres de la tâche de données.

Nommage : &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;&lt; Suffixe des vues en direct&gt;

Champs d'en-tête des tables

| Champ | Type | Description |
| --- | --- | --- |
| hdr\_\_key\_hash | varbinary(20) | Hachage de toutes les clés primaires des enregistrements. Le format de hachage est SHA1. Les colonnes sont séparées par un caractère de retour arrière.<br><br>Cette colonne n'est pas générée dans les tâches de données Datamart. |
| hdr\_\_key\_id | int64 | Séquence incrémentée par enregistrement<br><br>Cette colonne n'est générée que les tâches de données Datamart. |
| hdr\_\_from\_timestamp | timestamp | Horodatage UTC<br><br><ul> <li> <p>Pour les données extraites d'un chargement complet, il s'agira de l'heure de début du chargement complet.</p> </li> <li> <p>Pour un changement provenant des tables de modifications, il s'agira du champ d'horodatage de l'enregistrement.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Dernière opération de cet enregistrement.<br><br><ul> <li> <p>D - supprimé dépuis la table de modifications.</p> </li> <li> <p>U - mis à jour depuis la table de modifications.</p> </li> <li> <p>I - inséré depuis la table de modifications.</p> </li> <li> <p>L - Inséré par la tâche de chargement complet.</p> </li> <li> <p>d - supprimé de Comparer et appliquer.</p> </li> <li> <p>u - mis à jour de Comparer et appliquer.</p> </li> <li> <p>i - inséré de Comparer et appliquer.</p> </li> </ul> |
| hdr\_\_inserted\_timestamp | timestamp | Horodatage UTC du premier ajout de la clé. En cas d'utilisation du chargement complet, il s'agit de l'heure de début du chargement complet. |
| hdr\_\_modified\_timestamp | timestamp | Horodatage UTC de la dernière mise à jour. |
| hdr\_\_store | varchar(10) | Indique l'emplacement de l'enregistrement.<br><br><ul> <li> <p><span>CURRENT</span>&nbsp;: si l'enregistrement se trouve dans la table physique actuelle.</p> </li> <li> <p><span>CHANGES</span>&nbsp;: si l'enregistrement se trouve dans la tables des modifications.</p> </li> </ul> |

### Vue des modifications

Il s'agit d'une vue de la table de modifications dans le schéma de dépôt temporaire pour chaque table source sélectionnée.

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

Les champs d'en-tête suivants sont ajoutés à la structure des tables.

Champs d'en-tête de la vue des modifications

| Champ | Type | Description |
| --- | --- | --- |
| hdr\_\_change\_identifier | string(50) | L'identifiant de la modification est une chaîne composée de deux parties :<br><br><ul> <li> <p>Horodatage du début d'exécution par lots en millisecondes depuis le 1/1/1970 (chaîne de 10&nbsp;caractères) </p> </li> <li> <p>Séquence de modification depuis la passerelle Replication (35 caractères)</p> </li> </ul> |
| hdr\_\_from\_timestamp | timestamp | Horodatage UTC<br><br><ul> <li> <p>Pour les données extraites d'un chargement complet, il s'agira de l'heure de début du chargement complet.</p> </li> <li> <p>Pour un changement provenant des tables de modifications, il s'agira du champ d'horodatage de l'enregistrement.</p> </li> </ul> |
| hdr\_\_to\_timestamp | timestamp | Horodatage UTC<br><br><ul> <li> <p>Pour les données extraites d'un chargement complet, il s'agira de l'heure de début du chargement complet.</p> </li> <li> <p>Pour un changement provenant des tables de modifications, il s'agira du champ d'horodatage de l'enregistrement.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Dernière opération de cet enregistrement.<br><br><ul> <li> <p>D - supprimé dépuis la table de modifications.</p> </li> <li> <p>U - mis à jour depuis la table de modifications.</p> </li> <li> <p>I - inséré depuis la table de modifications.</p> </li> <li> <p>L - Inséré par la tâche de chargement complet.</p> </li> <li> <p>d - supprimé de Comparer et appliquer.</p> </li> <li> <p>u - mis à jour de Comparer et appliquer.</p> </li> <li> <p>i - inséré de Comparer et appliquer.</p> </li> </ul> |
| hdr\_\_timestamp | timestamp | Horodatage UTC |
| hdr\_\_key\_hash | binary(20) | Hachage de toutes les clés primaires des enregistrements.<br><br>Cette colonne n'est pas générée dans les tâches de données Datamart. |
| hdr\_\_key\_id | int64 | Séquence incrémentée par enregistrement<br><br>Cette colonne n'est générée que les tâches de données Datamart. |

### Vue Historique

Une vue Historique est générée dans le schéma de ressource de données pour chaque table source sélectionnée si Historique est activé dans les paramètres de la tâche de données. Les champs d'en-tête suivants sont ajoutés.

Nommage : &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;&lt; Suffixe des vues Historique&gt;

Champs d'en-tête de la vue Historique

| Champ | Type | Description |
| --- | --- | --- |
| hdr\_\_key\_hash | binary(20) | Hachage de toutes les clés primaires des enregistrements.<br><br>Cette colonne n'est pas générée dans les tâches de données Datamart. |
| hdr\_\_key\_id | int64 | Séquence incrémentée par enregistrement<br><br>Cette colonne n'est générée que les tâches de données Datamart. |
| hdr\_\_from\_timestamp | timestamp | Horodatage UTC<br><br><ul> <li> <p>Pour les données extraites d'un chargement complet, il s'agira de l'heure de début du chargement complet.</p> </li> <li> <p>Pour un changement provenant des tables de modifications, il s'agira du champ d'horodatage de l'enregistrement.</p> </li> </ul> |
| hdr\_\_to\_timestamp | timestamp | Horodatage UTC<br><br><ul> <li> <p>Pour les données extraites d'un chargement complet, il s'agira de l'heure de début du chargement complet.</p> </li> <li> <p>Pour un changement provenant des tables de modifications, il s'agira du champ d'horodatage de l'enregistrement.</p> </li> </ul> |
| hdr\_\_was\_current\_from\_timestamp | horodatage | Horodatage UTC de la première fois où l'enregistrement est apparu comme actuel. |
| hdr\_\_was\_current\_to\_timestamp | horodatage | Horodatage UTC de la dernière fois où l'enregistrement est apparu comme actuel. |
| hdr\_\_store | varchar(7) | Indique l'emplacement de l'enregistrement.<br><br><ul> <li> <p><span>CURRENT</span>&nbsp;: si l'enregistrement se trouve dans la table physique actuelle.</p> </li> <li> <p><span>PRIORS</span>&nbsp;: si l'enregistrement se trouve dans la table précédente avec les données historiques.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Dernière opération de cet enregistrement.<br><br><ul> <li> <p>D - supprimé dépuis la table de modifications.</p> </li> <li> <p>U - mis à jour depuis la table de modifications.</p> </li> <li> <p>I - inséré depuis la table de modifications.</p> </li> <li> <p>L - Inséré par la tâche de chargement complet.</p> </li> <li> <p>d - supprimé de Comparer et appliquer.</p> </li> <li> <p>u - mis à jour de Comparer et appliquer.</p> </li> <li> <p>i - inséré de Comparer et appliquer.</p> </li> </ul> |
| hdr\_\_deleted | bit | Indique si la suppression de l'enregistrement est réversible, selon que l'opération hdr\_operation est D ou d. |

### Vue en direct Historique

Une vue en direct Historique est générée dans le schéma de ressource de données pour chaque table source sélectionnée fusionnée avec les modifications de table des modifications. Les champs d'en-tête suivants sont ajoutés.

Nommage : &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;&lt; Suffixe pour les vues en direct Historique&gt;

Champs d'en-tête de la vue en direct Historique

| Champ | Type | Description |
| --- | --- | --- |
| hdr\_\_key\_hash | binary(20) | Hachage de toutes les clés primaires des enregistrements.<br><br>Cette colonne n'est pas générée dans les tâches de données Datamart. |
| hdr\_\_key\_id | int64 | Séquence incrémentée par enregistrement<br><br>Cette colonne n'est générée que les tâches de données Datamart. |
| hdr\_\_store | varchar(10) | Indique l'emplacement de l'enregistrement.<br><br><ul> <li> <p><span>CURRENT</span>&nbsp;: si l'enregistrement se trouve dans la table physique actuelle.</p> </li> <li> <p><span>PRIORS</span>&nbsp;: si l'enregistrement se trouve dans la table précédente avec les données historiques.</p> </li> <li> <p><span>CHANGES</span>&nbsp;: si l'enregistrement se trouve dans la tables des modifications.</p> </li> </ul> |
| hdr\_\_operation | string(1) | Dernière opération de cet enregistrement.<br><br><ul> <li> <p>D - supprimé dépuis la table de modifications.</p> </li> <li> <p>U - mis à jour depuis la table de modifications.</p> </li> <li> <p>I - inséré depuis la table de modifications.</p> </li> <li> <p>L - Inséré par la tâche de chargement complet.</p> </li> <li> <p>d - supprimé de Comparer et appliquer.</p> </li> <li> <p>u - mis à jour de Comparer et appliquer.</p> </li> <li> <p>i - inséré de Comparer et appliquer.</p> </li> </ul> |
| hdr\_\_deleted | bit | Indique si la suppression de l'enregistrement est réversible, selon que l'opération hdr\_operation est D ou d. |