Certains systèmes ont des horodatages avec des dates et des heures, d'autres avec juste les dates, et d'autres avec des nombres croissants générés de manière monotone. Vous pouvez traiter les dates et les nombres générés de la même manière.
Les fuseaux horaires sont importants pour les horodatages basés sur le temps réel. Vous pouvez suivre les horodatages à l'aide de la nomenclature du système source et traiter les horodatages temporels et logiques de la même manière.
Cas d'utilisation pour la CDM basée sur le temps
Ne pas utiliser la CDM basée sur le temps lorsque
Technique basée sur l'horodatage
Pour la CDM estampillée, vous devez créer un workflow qui contient :
- Script qui lit la table cible et définit la valeur d'une variable globale sur l'horodatage le plus récent.
- Flux de données qui utilise la variable globale (ou un paramètre) dans une clause WHERE pour filtrer les données.
Le flux de données contient une table source, une requête et une table cible. La requête extrait uniquement les lignes dont l'horodatage est postérieur à la dernière mise à jour.
Cet exemple illustre la technique d'horodatage du suivi des modifications :
- Le dernier chargement a eu lieu à 14 h 00 le 1er janvier 2008.
- À ce moment-là, la table source ne comportait qu'une seule ligne (clé = 1).
- Data Services a chargé cette ligne dans la table cible avec l'horodatage d'origine de 13 h 10 le 1er janvier 2008.
- Après 14h00, Data Services ajoute d'autres lignes à la table source.
À 15h00, le 1er janvier 2008, le job est à nouveau exécuté. Le job :
- Lit la zone Last_Update de la table cible comme 01/01/2008 01:10.
- Sélectionne les lignes de la table source dont les horodatages sont postérieurs à la valeur de Last_Update.
La commande SQL pour sélectionner ces lignes est : SELECT * FROM SOURCE WHERE LAST_UPDATE > 01/01/2007 01:10 PM.
Cette opération renvoie les deuxième et troisième lignes (clé=2 et clé=3).
- Charge ces nouvelles lignes dans la table cible.
Essayons-le
Laissez-moi vous guider tout au long de l'implémentation de la CDM basée sur la source :
Chevauchements
Il existe une période dans laquelle les modifications peuvent être perdues entre deux exécutions d'extraction. Cette période de chevauchement affecte la CDM basée sur la source car cette capture repose sur un horodatage statique pour déterminer les données modifiées.
Par exemple, si une table comporte 10 000 lignes et qu'une modification est apportée à l'une des lignes après son chargement mais avant la fin du job, la deuxième mise à jour peut être perdue.
Il doit y avoir une stratégie pour les chevauchements. Il peut être possible d'éviter les chevauchements ou il peut être nécessaire d'effectuer un rapprochement des chevauchements, par exemple, en utilisant les journaux de transaction de la base de données. Dans certains cas, le prééchantillonnage peut faciliter les chevauchements.
Vous trouverez de plus amples informations dans le Guide de Designer : https://help.sap.com/docs/SAP_DATA_SERVICES/ec06fadc50b64b6184f835e4f0e1f52f/5720dbaf6d6d1014b3fc9283b0e91070.html?locale=en-US.