Fermer

mars 9, 2019

Amélioration des performances dans Informatica avec External Loader


Introduction

Dans ce monde axé sur la technologie, où le monde se dirige vers l'IA, l'apprentissage automatique, l'Internet des objets (IOT), etc., l'entité clé est la donnée. À l'heure actuelle, si la technologie est une religion, alors Data est le Dieu !! C’est tout et il est présent partout sous différentes formes.

Comprendre les données, c’est comme un travail de type « Oracle » qui vous aidera à prédire l’avenir, à prévoir l’avenir. Par conséquent, pour que toutes les organisations de tous les domaines aient un avantage concurrentiel sur un autre domaine appartenant au même domaine, elles doivent être très performantes dans la catégorie «Stockage de données – Accumulation et compartimentage de données pouvant à l’avenir être utilisées pour étudier les tendances, les tendances prévisionnelles et les coûts. générer des rapports "et ils devraient également être en mesure de le faire avec performance et agilité, ce qui permet de s'assurer que l'entreprise obtienne les informations dont elle a besoin dès le lever du soleil pour tout processus de prise de décision.

Nous faisons donc partie de ce blog. allez voir comment traiter une énorme quantité de données à l'aide de l'outil Informatica ETL sans aucun compromis sur les performances et les choses à faire et à ne pas faire avec cette approche.

Qu'est-ce que External Loader?

Dans Informatica, l'option de chargeur externe augmente les performances d'une session avec d'énormes volumes de données. La configuration du chargeur externe est applicable dans

  • DB2
  • Sybase IQ
  • Bases de données Oracle Teradata

Lors de l'utilisation d'un chargeur externe, la session PowerCenter ne se connecte pas directement à la base de données cible pour charger des données. Au lieu de cela, il appelle l'application externe pour la base de données spécifique (chargeur automatique pour DB2 EEE, sqlldr pour Oracle, etc.), qui charge les lignes dans la table cible. Au cours du chargement, des fichiers d'étape intermédiaire seront générés. Les tables sont chargées directement à partir des fichiers plats, ce qui est plus rapide que les commandes SQL.

Dans cette méthode, la session crée trois fichiers lors du chargement.

  • Fichier de contrôle
  • Fichier de phase intermédiaire
  • Fichier journal du chargeur externe.
  1. Fichier de contrôle: Ce fichier contient des informations sur le fichier plat cible, telles que le format des données et les instructions de chargement du chargeur externe. Le fichier de contrôle a l'extension «* .ctl».
  2. Fichier d'étape intermédiaire: Ce fichier contient les données source, qui doivent être chargées dans la table cible. Le format de fichier peut être modifié au niveau de la session.
  3. Fichier journal du chargeur externe: Lors de l’utilisation du chargeur externe, la session génère deux journaux:
    • Journal de session – Contient les informations d'initialisation du chargeur externe et d'achèvement
    • Journal du chargeur externe – Contient les informations détaillées sur les étapes exécutées dans le chargeur externe. Le journal contient de nombreuses informations sur ses performances.

Différence entre chargeur externe et option de chargement en vrac

Différence entre chargeur externe et option en vrac

Avantages et inconvénients du chargeur externe

Avantages: L'avantage majeur de l'utilisation d'un chargeur externe réside dans l'amélioration significative des performances. En particulier dans la table des grands volumes, le chargeur externe accélère le processus.

Inconvénients: En cas d'échec du travail Informatica, la récupération est impossible en raison du contournement des journaux de la base de données. La seule option en cas d’échec de la tâche est de tronquer et de recharger.

Plate-forme appropriée pour utiliser un chargeur externe

Le chargeur externe requiert le bon ensemble de plates-formes pour fonctionner au mieux. Nous pouvons sélectionner l’option External Loader Option pour n’importe quelle plate-forme en suivant les instructions ci-dessous.

  • Bases de données telles que DB2, Sybase IQ, Oracle ou Teradata.
  • Suppression et création des index ainsi que des contraintes avant et après exécution du travail .
  • Le tableau peut contenir n’importe quelle colonne d’identité, contrairement au mode de traitement en bloc.
  • Le tableau peut comporter l’horodatage de changement de ligne ou généré automatiquement dans ses colonnes.

Externe loader dans Informatica

En savoir plus sur l'implémentation détaillée de l'option External Loader dans informatica

Pour illustrer le chargeur externe dans informatica, nous sélectionnons la base de données sous le nom DB2. Un mappage existant avec Database Connector sera utilisé pour le chargeur externe pour une meilleure comparaison. Le tableau avec la fonctionnalité suivante sera implémenté. Avant la démonstration du chargeur externe, les conditions préalables mentionnées doivent être remplies.

Prérequis

La première étape de la mise en œuvre de EL (External Loader) consiste à créer les commandes de pré-session et de post-session permettant de supprimer et de recréer les index, les contraintes, etc. Passons maintenant à l’implémentation.

Étape 1: Les index ne sont pas autorisés pour la table qui sera chargée via l’approche EL (External Loader). Identifiez tous les index et les contraintes de la table, dressez une liste des pré-commandes et des post-commandes pour supprimer et recréer les index et les contraintes.

Index au niveau du tableau

Instructions de base de données pré-session: [19659044] drop index nom_schéma.nom_index1;
alter table nom_schéma.nom_table modifier clé étrangère nom_contrainte non appliqué;

 alter table nom_schéma.nom_table 
 suppression unique nom_contrainte; 

instruction de la base de données post-session:

 create unique index nom_schéma.nom_index1 
 sur nom_schéma.nom_table (nom_index1 asc) 
 non partitionné dans nom_espace_table autoriser les analyses inverses ne compresser pas; 

 alter table nom_schéma.nom_table modifier nom_système_contre; nom_table 
 ajouter la contrainte nom_contrainte unique (colonne1, colonne2); 

Création d'une connexion de chargeur externe:

La connexion de chargeur externe pour DB2 est créée dans Connec. des onglets présents dans le gestionnaire de workflow Lorsque vous cliquez sur l'onglet "Connexions", les options ci-dessous s'affichent.

Création d'une connexion de chargeur externe

Lorsque vous cliquez sur l'option "Chargeur" ​​en surbrillance, la fenêtre contextuelle "Navigateur de connexion du chargeur" ​​s'affiche comme indiqué ci-dessous. .

Création d'une connexion au chargeur externe

Dans le navigateur, cliquez sur l'option “Nouveau” pour créer une nouvelle connexion au chargeur externe. Ensuite, une fenêtre contextuelle «Sélectionner un sous-type» apparaîtra comme indiqué ci-dessous. Dans cette fenêtre, sélectionnez “Option DB2 EE External Loader” surligné.

Création d’une connexion au chargeur externe

Dans la fenêtre suivante, nous allons renseigner la définition de l’objet Connexion. Les informations telles que le nom de la base de données, le nom d'utilisateur et le mot de passe sont renseignées conformément à nos exigences. Les autres détails doivent être renseignés comme suit:

Création d’une connexion de chargeur externe

Modifications visant à intégrer l’approche EL dans la cartographie relationnelle existante

Pour incorporer l’approche EL dans un flux de travail, l’exemple de session ci-dessous avec l'instance cible de relation sera prise en compte.

Changement des propriétés de niveau de session

Dans la section suivante, nous trouverons la liste détaillée de tous les changements nécessaires pour intégrer l'approche EL à cet emploi existant.

Étape 1: Dans l'onglet Mappage, sélectionnez l'instance cible souhaitée. Sous l'onglet Écrivains, cliquez sur le menu déroulant comme indiqué ci-dessous. Sélectionnez l'option "File Writer" surlignée dans l'onglet Writer.

Modification des propriétés du niveau de session

Étape 2: Dans le menu déroulant en surbrillance de "Type" sous la section Connexions, cliquez sur le bouton option "Loader".

Modification des propriétés du niveau de session

Étape 3: Après la sélection de l'option Loader dans la colonne "Type", le connecteur EL "EXTRNAL_ODS" que nous avions créé initialement. , sera sélectionné dans la colonne «Valeur».

Modification des propriétés du niveau de session

Modification des propriétés du niveau de session

Étape 4: Après la sélection de la connexion au chargeur, le nom de la table cible ainsi que le nom du préfixe doivent obligatoirement être tapés dans la section cible.

Modification des propriétés du niveau de session

Défis rencontrés lors de la mise en œuvre:

Une fois la mise en œuvre complétée, le processus EL (External Loader) est initié pour les tests. L'exécution des commandes pré-session s'est terminée avec succès. Lorsque nous avons lancé le travail EL pour la première fois, le travail avait échoué avec l'erreur indiquée ci-dessous.

Message d'erreur:

Message: Le serveur ne prend pas en charge les fichiers à largeur fixe les chargeurs externes DB2 .. Instance cible [HLT_PLN_RT_QUALFR]

Cause de l'erreur: Dans l'approche EL, l'instance cible relationnelle sera transformée en fichier à plat. Nous devons sélectionner le paramètre de fichier par défaut dans l'instance cible en tant que largeur fixe. Pour que le service d'intégration puisse lire le fichier à plat, il doit être du type délimité.

Solution: Modifiez le paramètre de fichier de longueur fixe en délimité pour l'instance cible au niveau de la session. 19659089] Modification de la définition d'un fichier plat

Message d'erreur:

2018-12-11 22:24:51: ERREUR: (4260066 | WRITER_1 _ * _ 1): (IS | IS_DEV) : NODE01_NASETLDEV01: WRT_8047: Erreur: le processus du chargeur externe [16908530] s'est arrêté avec l'erreur [4]

Cause de l'erreur: Initialement, nous avions défini les propriétés de fichier délimitées de la cible de fichier à plat, comme indiqué ci-dessous. , lors de la mise en œuvre de l’approche EL.

Délimiteur de fichier plat

Initialement sous l’option Cotes facultatives, nous avons sélectionné la valeur «Aucune», ce qui a conduit à l’échec.

Solution: Le paramètre guillemets facultatifs doit être «Double».

Modification du délimiteur de fichier plat

Après avoir résolu les problèmes de Erreurs susmentionnées au cours de la session, le travail EL s'est terminé avec succès sans autre problème.

Statistiques d'exécution pour l'approche Original vs EL:

Dans cette section, nous allons comparer les statistiques d'exécution du travail d'origine par rapport à l'emploi avec Approche EL. Les statistiques ci-dessous avec les détails de pourcentage occupé indiquent que le travail avec l'approche EL a amélioré les performances comparativement.

Travail d'origine:

Durée d'exécution du travail d'origine (h: mm: ss): 0:55:00

 ***** RUN INFO POUR LE GROUPE DE COMMANDES TGT LOAD [1]SET CONCURRENT [1] *****
Le fil [READER_1_1_1] créé pour [the read stage] du point de partition [SQ_INC_CDC_RATE_QUALIFIER] est terminé.
 Durée totale = [3258.978390] secondes
 Temps total d'inactivité = [2893.409420] secondes
 Pourcentage occupé = [11.217287]
Le fil [TRANSF_1_1_1] créé pour [the transformation stage] du point de partition [SQ_INC_CDC_RATE_QUALIFIER] est terminé.
 Durée totale = [3098.616687] secondes
 Temps total d'inactivité = [1626.629197] secondes
 Pourcentage occupé = [47.504665]
 Répartition du temps de travail du fil:
 exp_SOURCE_ANCHOR: 92,438070 pour cent
 exp_FLAG_RECORD: 2,737940 pour cent
 rtr_INSERT_UPDATE: 3.389831 pour cent
lkp_HLT_PLN_RT_QUALFR: 1.434159 pour cent

Le fil [WRITER_1_*_1] créé pour [the write stage] du point de partition [FF_ODS_TGT_SKIP, HLT_PLN_RT_QUALFR_INS, HLT_PLN_RT_QUALFR_UPD, HLT_PLN_RT_QUALFR_DEL] est terminé.
 Durée totale = [3204.533197] secondes
 Temps total d'inactivité = [248.310910] secondes
 Pourcentage occupé = [92251261

Emploi de l’approche EL:

Durée d’exécution du travail EL (h: mm: ss): 0:40:29

 ***** INFO DE COURSE POUR TGT LOAD ORDER GROUPE [1]SET CONCURRENT [1] *****
Le fil [READER_1_1_1] créé pour [the read stage] du point de partition [SQ_INC_CDC_RATE_QUALIFIER] est terminé.
 Durée totale = [1393.412757] s
 Temps total d'inactivité = [1133.556475] secondes
 Pourcentage occupé = [18.648909]
Le fil [TRANSF_1_1_1] créé pour [the transformation stage] du point de partition [SQ_INC_CDC_RATE_QUALIFIER] est terminé.
 Durée totale = [1348.161069] secondes
 Temps total d'inactivité = [71.640107] secondes
 Pourcentage occupé = [94.686087]
 Répartition du temps de travail du fil:
 exp_SOURCE_ANCHOR: 91,446345 pour cent
 exp_FLAG_RECORD: 2,799378 pour cent
 rtr_INSERT_UPDATE: 3,888025 pour cent
 lkp_HLT_PLN_RT_QUALFR: 1.866252 pour cent
Le fil [WRITER_1_*_1] créé pour [the write stage] du point de partition [FF_ODS_TGT_SKIP, HLT_PLN_RT_QUALFR_INS, HLT_PLN_RT_QUALFR_UPD, HLT_PLN_RT_QUALFR_DEL] est terminé.
 Durée totale = [2341.820833] secondes
 Temps total d'inactivité = [1233.939335] secondes
 Pourcentage occupé = [47.308551]

En fin de compte, le meilleur moyen de choisir une approche est de choisir celle qui répond à toutes nos exigences. Si l'exigence est libre de renoncer à l'utilisation d'index et de contraintes, cela rend le chargement en masse souhaitable. Si l'entreprise insiste davantage sur les index et les contraintes et a la liberté de stocker les fichiers intermédiaires, le chargeur externe devient alors une approche mieux adaptée.




Source link

Revenir vers le haut