Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

Depuis 1999, pour assurer le back-office, notre banque utilise le système bancaire intégré BISKVIT sur la plateforme Progress OpenEdge, largement utilisée dans le monde entier, y compris dans le secteur financier. Les performances de ce SGBD vous permettent de lire jusqu'à un million d'enregistrements ou plus par seconde dans une base de données (DB). Notre Progress OpenEdge gère environ 1,5 million de dépôts individuels et environ 22,2 millions de contrats pour des produits actifs (prêts automobiles et hypothèques), et est également responsable de tous les règlements avec le régulateur (Banque centrale) et SWIFT.

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

En utilisant Progress OpenEdge, nous avons été confrontés à la nécessité de le faire fonctionner avec le SGBD Oracle. Initialement, ce bundle constituait le goulot d'étranglement de notre infrastructure - jusqu'à ce que nous installions et configurions Pro2 CDC - un produit Progress qui vous permet d'envoyer des données du SGBD Progress au SGBD Oracle directement, en ligne. Dans cet article, nous vous expliquerons en détail, avec tous les pièges, comment se lier efficacement d'amitié entre OpenEdge et Oracle.

Comment c'est arrivé : téléchargement de données vers QCD via le partage de fichiers

Tout d’abord, quelques faits sur notre infrastructure. Le nombre d'utilisateurs actifs de la base de données est d'environ 15 600. Le volume de toutes les bases de données productives, y compris les répliques et les bases de secours, est de 16,5 To, la plus grande base de données étant de 120 To. Dans le même temps, les bases de données sont constamment réapprovisionnées : au cours de la seule année dernière, environ 150 To de données productives ont été ajoutés. Le système est alimenté par 86 serveurs frontaux sur la plateforme x21. Les bases de données sont hébergées sur XNUMX serveurs de plateforme IBM.

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle
Les systèmes frontaux, divers systèmes bancaires de base et services bancaires sont intégrés à OpenEdge Progress (BISCUIT IBS) via le bus Sonic ESB. Le téléchargement de données vers QCD s'effectue via l'échange de fichiers. Jusqu'à un certain point, cette solution présentait deux gros problèmes à la fois : de faibles performances de téléchargement des informations dans un entrepôt de données d'entreprise (CDW) et un long délai pour effectuer la réconciliation des données (rapprochement) avec d'autres systèmes.
Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle
Par conséquent, nous avons commencé à rechercher un outil capable d’accélérer ces processus. La solution à ces deux problèmes était le nouveau produit Progress OpenEdge – Pro2 CDC (Change Data Capture). Alors, commençons.

Installez Progress OpenEdge et Pro2Oracle

Pour exécuter Pro2 Oracle sur l'ordinateur Windows de l'administrateur, il suffit d'installer le Progress OpenEdge Developer Kit Classroom Edition, qui peut être скачать gratuitement. Répertoires d'installation OpenEdge par défaut :

DLC : C:ProgressOpenEdge
WRK : C:OpenEdgeWRK

Les processus ETL nécessitent des licences Progress OpenEdge version 11.7+ - à savoir OE DataServer pour Oracle et 4GL Development System. Ces licences sont incluses avec le Pro2. Pour un fonctionnement complet de DataServer for Oracle avec une base de données Oracle distante, le client Oracle complet est installé.

Sur le serveur Oracle, vous devez installer Oracle Database 12+, créer une base de données vide et ajouter un utilisateur (appelons-le cdc).

Pour installer Pro2Oracle, téléchargez la dernière distribution depuis le centre de téléchargement Logiciel de progression. Décompressez l'archive dans un répertoire C:Pro2 (Pour configurer Pro2 sous Unix, la même distribution est utilisée et les mêmes principes de configuration s'appliquent).

Création d'une base de données de réplication cdc

Base de données de réplication cdc (rempl.) Pro2 est utilisé pour stocker les informations de configuration, notamment la carte de réplication, les noms des bases de données répliquées et leurs tables. Il contient également une file d'attente de réplication, composée de notes sur le fait qu'une ligne de table dans la base de données source a été modifiée. Les données de la file d'attente de réplication sont utilisées par les processus ETL pour identifier les lignes qui doivent être copiées vers Oracle à partir de la base de données source.

Nous créons une base de données cdc distincte.

Procédure de création d'une base de données

  1. Sur le serveur de base de données, nous créons un répertoire pour la base de données cdc - par exemple, sur le serveur /base de données/cdc/.
  2. Créez un mannequin pour la base de données cdc : procopie $DLC/cdc vide
  3. Activez la prise en charge des fichiers volumineux : proutil cdc -C EnableLargeFiles
  4. Nous préparons un script pour démarrer la base de données cdc. Les paramètres de démarrage doivent être similaires aux paramètres de démarrage de la base de données répliquée.
  5. Nous démarrons la base de données cdc.
  6. Connectez-vous à la base de données cdc et chargez le schéma Pro2 à partir du fichier cdc.df, qui est inclus avec le Pro2.
  7. Nous créons les utilisateurs suivants dans la base de données cdc :

pro2adm – pour se connecter depuis le panneau d'administration Pro2 ;
pro2etl – pour connecter les processus ETL (ReplBatch) ;
pro2cdc – pour connecter les processus CDC (CDCBatch) ;

Activation de la capture de données modifiées OpenEdge

Allumons maintenant le mécanisme CDC lui-même, à l'aide duquel les données seront répliquées vers un domaine technologique supplémentaire. À chaque base de données source Progress OpenEdge, vous devez ajouter des zones de stockage distinctes dans lesquelles les données source seront dupliquées et activer le mécanisme lui-même à l'aide de la commande proutil.

Exemple de procédure pour la base de données bisquit

  1. Copie à partir du catalogue C:Pro2db файл cdcadd.st au répertoire de la base de données source bisquit.
  2. Nous décrivons dans cdcadd.st extensions de taille fixe pour les régions "RemplCDCAZone" и "ReplCDCArea_IDX". Vous pouvez ajouter de nouvelles zones de stockage en ligne : prostrct addonline bisquit cdcadd.st
  3. Activez OpenEdge CDC :
    proutil bisquit -C activatecdc zone "ReplCDCArea" zone d'index "ReplCDCArea_IDX"
  4. Les utilisateurs suivants doivent être créés dans la base de données source pour identifier les processus en cours d'exécution :
    un. pro2adm – pour se connecter depuis le panneau d'administration Pro2.
    b. pro2etl – pour connecter les processus ETL (ReplBatch).
    c. pro2cdc – pour connecter les processus CDC (CDCBatch).

Création d'un support de schéma pour DataServer pour Oracle

Ensuite, nous devons créer une base de données Schema Holder sur le serveur où les données du SGBD Progress seront répliquées vers le SGBD Oracle. DataServer Schema Holder est une base de données Progress OpenEdge vide sans utilisateurs ni données d'application, contenant une carte de correspondance entre les tables sources et les tables Oracle externes.

La base de données Schema Holder pour Progress OpenEdge DataServer pour Oracle pour Pro2 doit être située sur le serveur de processus ETL ; elle est créée séparément pour chaque branche.

Comment créer un détenteur de schéma

  1. Décompressez la distribution Pro2 dans un répertoire /pro2
  2. Créez et accédez au répertoire /pro2/dbsh
  3. Créez une base de données Schema Holder à l'aide de la commande copier $DLC/bisquitsh vide
  4. Effectuer la conversion bisquitsh dans l'encodage requis - par exemple, en UTF-8 si les bases de données Oracle ont un encodage UTF-8 : proutil bisquitsh -C convchar convertir UTF-8
  5. Après avoir créé une base de données vide bisquitsh connectez-vous en mode mono-utilisateur : pro bisquitsh
  6. Passons au dictionnaire de données : Outils -> Dictionnaire de données -> DataServer -> Utilitaires ORACLE -> Créer un schéma DataServer
  7. Titulaire du schéma de lancement
  8. Configuration du courtier Oracle DataServer :
    un. Démarrez AdminServer.
    proadsv -démarrer
    b. Démarrage du courtier Oracle DataServer
    oraman -nom orabroker1 -start

Mise en place du panneau d'administration et du schéma de réplication

À l'aide du panneau d'administration Pro2, les paramètres Pro2 sont configurés, notamment la configuration du schéma de réplication et la génération de processus ETL (Processor Library), les programmes de synchronisation principaux (Bulk-Copy Processor), les déclencheurs de réplication et les politiques OpenEdge CDC. Il existe également des outils principaux pour surveiller et gérer les processus ETL et CDC. Tout d’abord, nous configurons les fichiers de paramètres.

Comment configurer les fichiers de paramètres

  1. Aller au catalogue C:Pro2bpreplScripts
  2. Ouvrir le fichier pour le modifier replProc.pf
  3. Ajoutez des paramètres de connexion à la base de données de réplication cdc :
    # Base de données de réplication
    -db cdc -ld repl -H <nom d'hôte de la base de données principale> -S <port du courtier de base de données cdc>
    -U pro2admin -P <mot de passe>
  4. Ajouter à replProc.pf paramètres de connexion aux bases de données sources et Schema Holder sous forme de fichiers de paramètres. Le nom du fichier de paramètres doit correspondre au nom de la base de données source à connecter.
    # Connectez-vous à toutes les sources répliquées BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Ajouter à replProc.pf paramètres de connexion à Schema Holder.
    Titulaire du schéma #Target Pro DB
    -db bisquitsh -ld bisquitsh
    -H <nom d'hôte du processus ETL>
    -S <port du courtier biskuitsh>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <nom d'hôte du courtier Oracle>
    -DataService orabroker1
  6. Enregistrez le fichier de paramètres replProc.pf
  7. Ensuite, vous devez créer et ouvrir pour modifier des fichiers de paramètres pour chaque base de données source connectée dans le répertoire. C:Pro2bpreplScripts : bisquit.pf. Chaque fichier pf contient des paramètres de connexion à la base de données correspondante, par exemple :
    -db bisquit -ld bisquit -H <nom d'hôte> -S <port du courtier>
    -U pro2admin -P <mot de passe>

Pour configurer les raccourcis Windows, vous devez vous rendre dans le répertoire C:Pro2bpreplScripts et modifiez le raccourci « Pro2 – Administration ». Pour cela, ouvrez les propriétés du raccourci et dans la ligne Commencez en indiquez le répertoire d'installation de Pro2. Une opération similaire doit être effectuée pour les raccourcis « Pro2 – Editor » et « RunBulkLoader ».

Configuration de l'administration Pro2 : chargement de la configuration initiale

Lançons la console.

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

Allez dans « Carte de base de données ».

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

Pour lier des bases de données dans Pro2 – Administration, allez dans l'onglet Carte de base de données. Ajouter le mappage des bases de données sources - Titulaire du schéma - Oracle.

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

Aller à l'onglet Cartographie. Listé Base de données source Par défaut, la première base de données source connectée est sélectionnée. À droite de la liste, il devrait y avoir une inscription Toutes les bases de données connectées — les bases de données sélectionnées sont connectées. En bas à gauche, vous devriez voir une liste des tables de progression de bisquit. Sur la droite se trouve une liste de tables de la base de données Oracle.

Création de schémas et de bases de données SQL dans Oracle

Pour créer une carte de réplication, vous devez d'abord générer schéma SQL dans Oracle. Dans l'administration Pro2, nous exécutons l'élément de menu Outils -> Générer du code -> Schéma cible, puis dans la boîte de dialogue Sélectionnez la base de données sélectionnez une ou plusieurs bases de données sources et déplacez-les vers la droite.

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

Cliquez sur OK et sélectionnez le répertoire dans lequel enregistrer les schémas SQL.

Ensuite, nous créons la base. Cela peut se faire par exemple via Développeur Oracle SQL. Pour ce faire, nous nous connectons à la base de données Oracle et chargeons le schéma d'ajout de tables. Après avoir modifié la composition des tables Oracle, vous devez mettre à jour les schémas SQL dans Schema Holder.

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

Une fois le téléchargement terminé avec succès, quittez la base de données bisquitsh et ouvrez le panneau d'administration Pro2. Les tables de la base de données Oracle doivent apparaître dans l'onglet Mappage à droite.

Mappage de tables

Pour créer une carte de réplication, dans le panneau d'administration Pro2, accédez à l'onglet Mappage et sélectionnez la base de données source. Cliquez sur Map Tables, sélectionnez Select Changes à gauche des tables qui doivent être répliquées dans Oracle, déplacez-les vers la droite et confirmez la sélection. Une carte sera créée automatiquement pour les tables sélectionnées. Nous répétons l'opération pour créer une carte de réplication pour d'autres bases de données sources.

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

Génération de la bibliothèque de processeurs de réplication Pro2 et des programmes de processeur de copie en masse

La bibliothèque de processeurs de réplication est conçue pour les processus de réplication personnalisés (ETL) qui traitent la file d'attente de réplication Pro2 et transmettent les modifications à la base de données Oracle. Les programmes de la bibliothèque du processeur de réplication sont automatiquement enregistrés dans le répertoire après génération bprepl/repl_proc (paramètre PROC_DIRECTORY). Pour générer la bibliothèque du processeur de réplication, accédez à Outils -> Générer du code -> Bibliothèque de processeurs. Une fois la génération terminée, les programmes apparaîtront dans le répertoire bprepl/repl_proc.

Les programmes Bulk Load Processor sont utilisés pour synchroniser les bases de données Progress source avec la base de données Oracle cible basée sur le langage de programmation Progress ABL (4GL). Pour les générer, allez dans l'élément de menu Outils -> Générer du code -> Processeur de copie en masse. Dans la boîte de dialogue Sélectionner une base de données, sélectionnez les bases de données sources, déplacez-les vers la droite de la fenêtre et cliquez sur OK. Une fois la génération terminée, les programmes apparaîtront dans le répertoire bpreplrepl_mproc.

Configuration des processus de réplication dans Pro2

Le fractionnement des tables en ensembles servis par un thread de réplication distinct améliore les performances et l'efficacité de Pro2 Oracle. Par défaut, toutes les connexions créées dans la carte de réplication pour les nouvelles tables de réplication sont associées au thread numéro 1. Il est recommandé de séparer les tables en différents threads.

Les informations sur l'état des threads de réplication sont affichées sur l'écran Administration Pro2 dans l'onglet Moniteur de la section État de réplication. Une description détaillée des valeurs des paramètres peut être trouvée dans la documentation Pro2 (répertoire C:Pro2Docs).

Créer et activer les politiques CDC

Les stratégies sont un ensemble de règles permettant au moteur OpenEdge CDC de surveiller les modifications apportées aux tables. Au moment de la rédaction de cet article, Pro2 ne prend en charge que les politiques CDC de niveau 0, c'est-à-dire que seuls les faits sont surveillés. enregistrer les modifications.

Pour créer une politique CDC, sur le panneau d'administration, allez dans l'onglet Mappage, sélectionnez la base de données source et cliquez sur le bouton Ajouter/Supprimer des politiques. Dans la fenêtre Sélectionner les modifications qui s'ouvre, sélectionnez sur le côté gauche et déplacez vers la droite les tables pour lesquelles vous devez créer ou supprimer une politique CDC.

Pour l'activer, ouvrez à nouveau l'onglet Mapping, sélectionnez la base de données source et cliquez sur le bouton (Dans)Activer les politiques. Sélectionnez et déplacez vers la droite du tableau les stratégies qui doivent être activées, cliquez sur OK. Après cela, ils sont marqués en vert. En utilisant (Dans)Activer les politiques Vous pouvez également désactiver les politiques CDC. Toutes les transactions sont effectuées en ligne.

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

Une fois la politique CDC activée, les notes sur les enregistrements modifiés sont enregistrées dans la zone de stockage "RemplCDCAZone" selon la base de données source. Ces notes seront traitées via un processus spécial CDCBatch, qui, sur cette base, créera des notes dans la file d'attente de réplication Pro2 dans la base de données cdc (rempl.).

Ainsi, nous avons deux files d'attente pour la réplication. La première étape est CDCBatch : depuis la base de données source, les données vont d'abord vers la base de données intermédiaire CDC. La deuxième étape correspond au transfert des données de la base de données CDC vers Oracle. Il s'agit d'une caractéristique de l'architecture actuelle et du produit lui-même : jusqu'à présent, les développeurs n'ont pas pu établir une réplication directe.

Synchronisation principale

Après avoir activé le mécanisme CDC et configuré le serveur de réplication Pro2, nous devons démarrer la synchronisation initiale. Commande de synchronisation initiale :

/pro2/bprepl/Script/replLoad.sh bisquit nom-table

Une fois la synchronisation initiale terminée, les processus de réplication peuvent être démarrés.

Début des processus de réplication

Pour démarrer les processus de réplication, vous devez exécuter un script replbatch.sh. Avant de commencer, assurez-vous qu'il existe des scripts replbatch pour tous les threads - replbatch1, replbatch2, etc. Si tout est en place, ouvrez la ligne de commande (par exemple, proenv), allez dans l'annuaire /bprepl/scripts et démarrez le script. Dans le panneau d'administration, nous vérifions que le processus correspondant a reçu le statut RUNNING.

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle

résultats

Comment se lier d'amitié entre le système bancaire Progress OpenEdge et le SGBD Oracle
Après la mise en œuvre, nous avons considérablement accéléré le téléchargement des informations vers l’entrepôt de données de l’entreprise. Les données entrent automatiquement dans Oracle en ligne. Il n'est pas nécessaire de perdre du temps à exécuter des requêtes de longue durée pour collecter des données provenant de différents systèmes. De plus, dans cette solution, le processus de réplication peut compresser les données, ce qui a également un effet positif sur la vitesse. Désormais, le rapprochement quotidien du système BISKVIT avec d'autres systèmes a commencé à prendre 15 à 20 minutes au lieu de 2 à 2,5 heures, et un rapprochement complet a pris plusieurs heures au lieu de deux jours.

Source: habr.com

Ajouter un commentaire