Autres astuces de conception de job. SAP BusinessObjects Data Services 4.1 Support Package 1
Capture de données modifiées
20.5.4.2.2 Indicateur de mise à jour
Pour prendre en charge les techniques de dimensions évoluant lentement, Data Services permet d'activer un indicateur de mise à jour pour marquer l'enregistrement actuel dans une table de dimensions.
La valeur Définir la valeur dans la colonne Colonne identifie l'enregistrement valide actuel dans la table cible pour une clé primaire de table source donnée.
Lorsque vous indiquez Colonne, la transformation History_Preserving génère une mise à jour de l'enregistrement avant de générer une instruction INSERT.
Cette mise à jour de l'enregistrement active la valeur Colonne sur Réinitialiser la valeur dans l'enregistrement de table cible avec la même clé primaire source comme instruction INSERT.
Dans l'instruction INSERT, la colonne sera activée sur Définir la valeur.
Lorsque vous indiquez des entrées dans les deux groupes, la transformation History_Preserving génère une seule instruction UPDATE supplémentaire pour chaque instruction INSERT créée. Cette instruction
UPDATE met à jour la valeur Fin de validité.
20.5.5 Autres astuces de conception de job
Lors de la conception d'un job destiné à implémenter la capture des données modifiées (CDM), vous devez tenir compte de :
•
Synchronisation de l'en-tête et des détails
•
Capture des suppressions physiques
20.5.5.1 Synchronisation de l'en-tête et des détails
Habituellement, les systèmes source effectuent le suivi des modifications des informations de l'en-tête et des détails de manière indépendante. Par exemple, si le statut d'un poste individuel est modifié, sa colonne "Date de dernière modification" se met à jour, contrairement à la même colonne au niveau de l'en-tête de la commande. A l'inverse, une modification de l'adresse par défaut du destinataire dans l'en-tête de la commande peut n'impacter aucun des postes individuels existants.
Toutefois, dans certains cas, le système source peut ne pas mettre à jour ces colonnes de suivi de manière cohérente, ou bien vous pouvez ne pas avoir accès à ces informations (par exemple, si les lignes sont physiquement supprimées). Dans ces cas, vous pouvez choisir d'extraire toutes les information de l'en-tête et des détails, que les modifications soient au niveau de l'en-tête ou d'un poste individuel.
765 2012-11-22
Capture de données modifiées
Pour extraire toutes les lignes de l'en-tête et des détails si un de ces éléments a été modifié, utilisez un calcul similaire à cette instruction SQL :
SELECT … FROM HEADER, DETAIL WHERE HEADER.ID = DETAIL.ID AND
(HEADER.LAST_MODIFIED BETWEEN $G_SDATE AND $G_EDATE OR DETAIL.LAST_MODIFIED
BETWEEN $G_SDATE AND $G_EDATE)
Pour certaines bases de données, cette clause WHERE n'est pas bien optimisée et peut provoquer une sérieuse dégradation des performances. Vous pouvez opter pour une simplification de cette clause en supprimant une des bornes supérieures, comme dans :
… WHERE HEADER.ID = DETAIL.ID AND (HEADER.LAST_MODIFIED BETWEEN $G_SDATE AND
$G_EDATE OR DETAIL.LAST_MODIFIED >= $G_SDATE) …
Le nombre de lignes extraites peut être un peu supérieur à ce qui était prévu à l'origine, mais les performances finales du système peuvent être améliorées tout en ne modifiant pas le résultat de la base de données cible.
20.5.5.2 Capture des suppressions physiques
Lorsque le système source permet de supprimer physiquement des lignes, votre job doit comprendre un calcul pour mettre à jour la base de données cible en conséquence. Plusieurs méthodes le permettent :
• Lecture d'un journal des opérations — Si votre système journalise les transactions dans un format lisible ou si vous pouvez modifier le système pour qu'il génère un tel journal, vous pouvez lire ce journal pour identifier les lignes à supprimer.
• Exécution d'une actualisation complète — Rechargez simplement l'ensemble des données, ce qui synchronise entièrement le système source et la base de données cible.
• Exécution d'une actualisation partielle sur la base d'une fenêtre temporelle pilotée par les données
— Par exemple, supposons que le système source permet uniquement la suppression physique des commandes n'ayant pas été clôturées. Si la première commande non clôturée de la table source a eu lieu il y a six mois, l'actualisation des six derniers mois de données garantit la réussite de la synchronisation.
• Exécution d'une actualisation partielle sur la base d'une fenêtre temporelle pilotée par l'entreprise
— Par exemple, supposons que l'entreprise prise en charge par le job supprime habituellement les commandes peu de temps après les avoir créées. Dans ce cas, l'actualisation du dernier mois de commandes est appropriée pour conserver l'intégrité.
• Contrôle de chaque commande pouvant éventuellement être supprimée — Vous devez vérifier si toute commande non clôturée a été supprimée. Pour être efficace, cette technique requiert de conserver un enregistrement des clés primaires pour chaque objet candidat à la suppression.
Lorsque les suppressions physiques des informations détaillées d'une relation en-tête/détails sont possibles (par exemple, suppression des postes individuels d'une commande existante), vous devez
766 2012-11-22

Öffentlicher Link aktualisiert
Der öffentliche Link zu Ihrem Chat wurde aktualisiert.