Optimisation des performances dans Informatica : didacticiel complet

โšก Rรฉsumรฉ intelligent

L'optimisation des performances dans Informatica supprime le maillon le plus lent d'une session, couche par couche, en partant de la cible et en remontant vers la source, la carte.ping, la session et enfin le systรจme d'exploitation.

  • (I.e. Ordre fixe : Informatica recommande de rechercher les goulots d'รฉtranglement dans l'ordre suivant : cible, puis source, puis mappageping, puis session, puis systรจme.
  • ๐Ÿงต Les statistiques du fil de discussion parlent d'elles-mรชmes : Le fil le plus actif parmi ceux du lecteur, de la transformation et de l'รฉcrivain dรฉsigne la couche qui nรฉcessite un travail.
  • ๐Ÿšฟ Filtrer tรดt : Les lignes รฉcartรฉes lors du qualificateur de source n'entrent jamais dans le pipeline, elles ne coรปtent donc rien en aval.
  • ๐Ÿ‡ง๐Ÿ‡ท Transfรฉrer les donnรฉes vers la base de donnรฉes : Les jointures, les tris et les filtres s'exรฉcutent gรฉnรฉralement plus rapidement en SQL que dans une transformation.
  • ๐ŸงŠ Discipline du cache : Moins de ports et moins de colonnes de recherche signifient des caches plus petits et moins de pagination disque.
  • โš™๏ธ Les paramรจtres de session sont importants : La taille du tampon DTM, la taille des blocs de tampon, l'intervalle de validation et l'optimisation du pushdown sont ajustรฉs aprรจs la map.ping est propre.

Optimisation des performances dans Informatica

Qu'est-ce que l'optimisation des performances dans Informatica ?

L'optimisation des performances dans Informatica consiste ร  identifier le composant qui ralentit l'exรฉcution d'une session, ร  supprimer ce facteur limitant, puis ร  rรฉpรฉter l'opรฉration avec le composant qui devient ensuite le plus lent. La vitesse d'une session รฉtant toujours limitรฉe par son composant le plus lent, optimiser une transformation qui n'a jamais รฉtรฉ la cause du problรจme n'apporte aucun gain mesurable.

Informatica identifie cinq points oรน un goulot d'รฉtranglement peut se situer et recommande de les vรฉrifier dans un ordre prรฉcis.

Commande Couche Cause typique
1 Target ร‰critures lentes, intervalles de points de contrรดle courts, taille rรฉduite des paquets rรฉseau de la base de donnรฉes
2 Matรฉriau Requรชte lente, index manquants, lecture de colonnes inutiles
3 Carteping Transformations coรปteuses ou mal placรฉes, caches surdimensionnรฉes
4 Session Buffer mรฉmoire, intervalle de validation, partitionnement, type de chargement
5 Systรจme Saturation du processeur, attentes d'E/S, pagination sur la machine du service d'intรฉgration

L'ordre est dรฉlibรฉrรฉ. โ€‹โ€‹Une cible incapable d'absorber les lignes assez rapidement ralentira toutes les couches en amont ; elle est donc vรฉrifiรฉe en premier. La mรฉthode complรจte est documentรฉe dans leโ€ฆ Guide de rรฉglage des performances PowerCenter.

Comment identifier les goulots d'รฉtranglement en matiรจre de performance

Deviner quelle couche est lente fait perdre plus de temps que de la mesurer. Quatre techniques permettent de traiter les cinq couches mentionnรฉes ci-dessus.

  • Lancez une session de test. Configurez une copie de Session Pour รฉcrire dans un fichier plat, si la vitesse de la session augmente sensiblement, le goulot d'รฉtranglement se situe au niveau du fichier cible. L'opรฉration inverse, consistant ร  lire depuis un fichier plat, permet d'isoler le goulot d'รฉtranglement au niveau de la source.
  • Analyser les statistiques du fil de discussion. Le gestionnaire de transformation des donnรฉes exรฉcute un thread de lecture, un ou plusieurs threads de transformation et un thread d'รฉcriture. Le thread prรฉsentant le temps d'activitรฉ le plus รฉlevรฉ dans le journal de session pointe directement vers la couche ร  traiter : le thread de lecture pour la source, le thread de transformation pour la carte.ping, รฉcrivain pour la cible.
  • Analyser les dรฉtails de performance. Activez la collecte des donnรฉes de performance sur la session et consultez les compteurs. Un nombre รฉlevรฉ de lignes d'erreur ou un grand nombre de lignes dans un cache de recherche indiquent un problรจme de mappage.ping Un problรจme plutรดt qu'un problรจme de base de donnรฉes.
  • Surveillez le systรจme. OperaLes outils systรจme affichant l'utilisation du processeur, les temps d'attente d'E/S et la pagination, ainsi que les Surveillance des flux de travail Les vues des ressources rรฉvรจlent une machine tout simplement saturรฉe.

Une fois la couche responsable identifiรฉe, les conseils relatifs ร  la transformation prรฉsentรฉs dans les sections suivantes deviennent pertinents. Ces sections sont organisรฉes selon l'ordre du pipeline, ร  partir du point d'entrรฉe des donnรฉes. planping au point oรน il est agrรฉgรฉ.

Transformation de qualificateur de source

Chaque ligne non lue par le qualificateur de source est une ligne qu'aucune autre transformation n'a ร  traiter, ce qui en fait l'endroit le moins coรปteux de toute la carte.ping gagner du temps.

  • Apportez uniquement les colonnes requises de la source. La plupart du temps, toutes les colonnes de la table source ne sont pas obligatoires, apportez donc uniquement les champs obligatoires en supprimant les colonnes inutiles.
  • ร‰vitez d'utiliser la clause ORDER BY ร  l'intรฉrieur de la clause ORDER BY. Qualificatif de source Surcharge de la requรชte SQL. La clause ORDER BY nรฉcessite un traitement supplรฉmentaire ; les performances peuvent รชtre amรฉliorรฉes en l'รฉvitant.

Transformation de filtre

Le filtrage suit le mรชme principe une รฉtape plus loin dans le pipeline : supprimer les lignes indรฉsirables dรจs que possible.ping possรจde suffisamment d'informations pour les identifier.

  • Utilisez le transformation de filtre le plus tรดt possible ร  l'intรฉrieur de la cartepingSi les donnรฉes indรฉsirables peuvent รชtre รฉliminรฉes dรจs le dรฉbut de la carteping, cela augmenterait le dรฉbit.
  • Utilisez un qualificateur de source pour filtrer les donnรฉes. Vous pouvez รฉgalement utiliser une substitution SQL du qualificateur de source pour filtrer les enregistrements, au lieu d'utiliser une transformation de filtre.

Transformation de menuisier

L'adhรฉsion est la premiรจre opรฉration vรฉritablement coรปteuse dans une carte typiqueping, car la source principale doit รชtre mise en cache avant que les lignes de dรฉtail puissent y รชtre comparรฉes.

  • Il est toujours prรฉfรฉrable d'effectuer les jointures directement dans la base de donnรฉes, car elles sont plus rapides que celles crรฉรฉes dans Informatica. transformation de menuisier.
  • Triez les donnรฉes avant de joindre si possible, car cela diminue les E/S de disque effectuรฉes lors de la jointure.
  • Choisissez comme table principale la table comportant le moins de lignes.

Le troisiรจme point est celui qui est le plus souvent nรฉgligรฉ. Le service d'intรฉgration met en cache la source principale ; par consรฉquent, dรฉsigner la table plus petite comme table principale permet de limiter la taille de ce cache.

Transformation de recherche

Une recherche interroge soit la base de donnรฉes une fois par ligne, soit construit un cache en mรฉmoire, et les deux mรฉthodes permettent d'obtenir une source de recherche plus petite et mieux indexรฉe.

  • Crรฉez un index pour la colonne dans un table de correspondance Cette condition est utilisรฉe pour la recherche. ร‰tant donnรฉ que la table de recherche sera interrogรฉe pour trouver les donnรฉes correspondantes, l'ajout d'un index amรฉliorerait les performances.
  • Si possible, au lieu d'utiliser la transformation de recherche, utilisez la jointure dans la base de donnรฉes. Comme les jointures de bases de donnรฉes sont plus rapides, les performances seront augmentรฉes.
  • Supprimez les colonnes inutiles de la table de recherche et conservez uniquement les colonnes requises. Cela rรฉduira la surcharge liรฉe ร  la rรฉcupรฉration des colonnes supplรฉmentaires de la base de donnรฉes.

Transformation Agrรฉgation

An Aggregator Elle stocke les donnรฉes dans un cache tout en regroupant les lignes ; par consรฉquent, tout ce qui rรฉduit le volume de donnรฉes qui lui parviennent rรฉduit la taille du cache dont elle a besoin.

  • Filtrez les donnรฉes avant de les agrรฉger. Si vous utilisez une transformation de filtre dans la carteping, filtrez ensuite les donnรฉes avant d'utiliser l'agrรฉgateur, car cela rรฉduira les opรฉrations d'agrรฉgation inutiles.
  • Limitez le nombre de ports utilisรฉs dans la transformation d'agrรฉgation. Cela rรฉduira le volume de donnรฉes stockรฉes dans le cache par cette transformation.

Rรฉglage au niveau de la session dans Informatica

Lorsque la carteping Le systรจme en lui-mรชme est propre ; les gains restants proviennent des propriรฉtรฉs de la session. Il est conseillรฉ de modifier ces paramรจtres un par un, en effectuant un test chronomรฉtrรฉ aprรจs chaque modification, car plusieurs d'entre eux privilรฉgient la vitesse ร  la mรฉmoire.

Paramรจtres Ce qu'il contrรดle Quand le changer
Taille du tampon DTM Mรฉmoire totale allouรฉe par le service d'intรฉgration aux blocs de donnรฉes source et cible Augmentez cette valeur lorsque la session gรจre de nombreuses partitions, sources ou cibles.
Buffer taille de bloc Taille d'un bloc de mรฉmoire individuel Augmenter la valeur pour les lignes exceptionnellement longues ; diminuer la valeur lorsque la mรฉmoire physique est limitรฉe.
Intervalle d'engagement Combien de lignes sont รฉcrites avant qu'un commit ne soit รฉmis ? Augmentez ce seuil lorsque le thread d'รฉcriture passe son temps ร  attendre les points de contrรดle de la base de donnรฉes.
Optimisation par poussรฉe Quelle portion de la carteping La logique est convertie en SQL et exรฉcutรฉe par la base de donnรฉes. ร€ utiliser lorsque la source et la cible se trouvent sur la mรชme base de donnรฉes puissante.

Buffer La mรฉmoire est allouรฉe selon un calcul prรฉcis et documentรฉ, et non par estimation. Le service d'intรฉgration alloue au moins deux blocs pour chaque partition source et cible. Le nombre de blocs de mรฉmoire tampon de session est donc รฉgal ร  (nombre total de sources + nombre total de cibles) multipliรฉ par deux, et la taille de la mรฉmoire tampon DTM est รฉgale ร  ce nombre de blocs multipliรฉ par la taille d'un bloc de mรฉmoire tampon et divisรฉ par 0.9.

L'optimisation pushdown mรฉrite d'รชtre abordรฉe avec prudence. Elle n'est utile que lorsque la base de donnรฉes est rรฉellement plus rapide que le serveur d'intรฉgration et que la logique de transformation peut รชtre exprimรฉe en SQLLes รฉlรฉments logiques non traduisibles restent dans la session, ce qui explique que le gain soit souvent infรฉrieur aux attentes. Il est prรฉfรฉrable de mesurer avant et aprรจs l'activation plutรดt que de l'activer par dรฉfaut.

FAQ

Le partitionnement est utile lorsque la machine du service d'intรฉgration dispose de ressources CPU disponibles et que la source et la cible peuvent gรฉrer des connexions parallรจles. Sur une machine saturรฉe ou avec une cible mono-thread, les partitions supplรฉmentaires engendrent une surcharge sans pour autant rรฉduire la durรฉe d'exรฉcution.

Configurez l'index et le cache de donnรฉes avec une taille suffisante pour contenir l'intรฉgralitรฉ de la source de recherche ; sinon, les pages du service d'intรฉgration seront รฉcrites sur le disque. Les journaux de session indiquent la taille de cache rรฉellement nรฉcessaire ; effectuez donc une premiรจre exรฉcution avec le dimensionnement automatique et consultez la valeur obtenue.

Chaque insertion met ร  jour tous les index et contraintes de la table cible, et ce coรปt augmente avec sa taille. Des statistiques de base de donnรฉes obsolรจtes aggravent la situation. Le thread d'รฉcriture devient alors le plus sollicitรฉ, ce qui constitue le signe classique d'un goulot d'รฉtranglement au niveau de la cible.

Oui, car la transformation peut libรฉrer chaque groupe dรจs sa fin au lieu de tout mettre en cache. Les lignes entrantes doivent dรฉjร  รชtre triรฉes selon les ports de regroupement ; dans le cas contraire, la session รฉchoue.

Pour une charge importante uniquement en inserts, laissez tomberping Il est gรฉnรฉralement plus rapide de crรฉer d'abord les index et les contraintes, puis de les reconstruire ensuite. Les commandes SQL de prรฉ-session et de post-session dans les propriรฉtรฉs de session constituent l'endroit idรฉal pour scripter ces deux รฉtapes.

Le mode ยซ batch ยป contourne une grande partie de la journalisation de la base de donnรฉes et accรฉlรจre le chargement, mais il empรชche la rรฉcupรฉration et n'est pas compatible avec toutes les cibles ni avec toutes les stratรฉgies de mise ร  jour. Le mode normal รฉcrit via le chemin de journalisation habituel et reste rรฉcupรฉrable.

Les modรจles entraรฎnรฉs sur les durรฉes d'exรฉcution historiques dรฉtectent les sessions dont la durรฉe s'est รฉcartรฉe de la normale bien avant que quiconque ne s'en aperรงoive, ainsi que les dรฉfaillances liรฉes aux clusters. Ils pointent vers l'exรฉcution concernรฉe ; la couche responsable doit encore รชtre identifiรฉe ร  partir des statistiques des threads.

Il peut rรฉรฉcrire une requรชte, suggรฉrer des index candidats et expliquer un plan d'exรฉcution collรฉ dans l'รฉditeur. Il n'a pas accรจs au rรฉfรฉrentiel ni au journal de session ; par consรฉquent, toute rรฉรฉcriture doit รชtre validรฉe par rapport au plan rรฉel et au nombre de lignes.

Rรฉsumez cet article avec :