Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

Od roku 1999 naša banka využíva na obsluhu back office integrovaný bankový systém BISKVIT na platforme Progress OpenEdge, ktorý je široko používaný po celom svete, vrátane finančného sektora. Výkon tohto DBMS vám umožňuje prečítať až milión alebo viac záznamov za sekundu v jednej databáze (DB). Náš Progress OpenEdge obsluhuje približne 1,5 milióna individuálnych vkladov a približne 22,2 milióna zmlúv na aktívne produkty (úvery na autá a hypotéky) a je tiež zodpovedný za všetky vyrovnania s regulátorom (centrálna banka) a spoločnosťou SWIFT.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

Pri použití Progress OpenEdge sme čelili potrebe, aby to fungovalo s Oracle DBMS. Spočiatku bol tento balík prekážkou našej infraštruktúry – kým sme nenainštalovali a nenakonfigurovali Pro2 CDC – produkt Progress, ktorý vám umožňuje odosielať dáta z Progress DBMS do Oracle DBMS priamo online. V tomto príspevku vám podrobne so všetkými úskaliami prezradíme, ako sa efektívne spriateliť medzi OpenEdge a Oracle.

Ako sa to stalo: nahrávanie údajov na QCD prostredníctvom zdieľania súborov

Najprv niekoľko faktov o našej infraštruktúre. Počet aktívnych používateľov databázy je približne 15 tisíc. Objem všetkých produktívnych databáz vrátane repliky a pohotovostného režimu je 600 TB, najväčšia databáza má 16,5 TB. Databázy sa zároveň neustále dopĺňajú: len za posledný rok pribudlo okolo 120 TB produktívnych dát. Systém je poháňaný 150 prednými servermi na platforme x86. Databázy sú umiestnené na 21 serveroch platformy IBM.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS
Front-end systémy, rôzne základné bankové systémy a bankové služby sú integrované s OpenEdge Progress (BISCUIT IBS) prostredníctvom zbernice Sonic ESB. Nahrávanie údajov do QCD prebieha prostredníctvom výmeny súborov. Toto riešenie malo do určitého momentu dva veľké problémy naraz – nízky výkon nahrávania informácií do podnikového dátového skladu (CDW) a dlhý čas na vykonávanie zosúlaďovania údajov (reconciliation) s inými systémami.
Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS
Preto sme začali hľadať nástroj, ktorý by tieto procesy mohol urýchliť. Riešením oboch problémov bol nový produkt Progress OpenEdge – Pro2 CDC (Change Data Capture). Takže, začnime.

Nainštalujte Progress OpenEdge a Pro2Oracle

Na spustenie Pro2 Oracle na správcovskom počítači Windows stačí nainštalovať Progress OpenEdge Developer Kit Classroom Edition, ktorý je možné k stiahnutiu zadarmo. Predvolené inštalačné adresáre OpenEdge:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL procesy vyžadujú licencie Progress OpenEdge verzie 11.7+ – konkrétne OE DataServer for Oracle a 4GL Development System. Tieto licencie sú súčasťou produktu Pro2. Pre plnú prevádzku DataServer for Oracle so vzdialenou databázou Oracle je nainštalovaný Full Oracle Client.

Na server Oracle je potrebné nainštalovať Oracle Database 12+, vytvoriť prázdnu databázu a pridať používateľa (nazvime ho CDC).

Ak chcete nainštalovať Pro2Oracle, stiahnite si najnovšiu distribúciu z centra sťahovania Softvér Progress. Rozbaľte archív do adresára C:Pro2 (Na konfiguráciu Pro2 na Unixe sa používa rovnaká distribúcia a platia rovnaké princípy konfigurácie).

Vytvorenie replikačnej databázy CDC

Replikačná databáza cdc (repl) Pro2 sa používa na ukladanie konfiguračných informácií vrátane mapy replikácie, názvov replikovaných databáz a ich tabuliek. Obsahuje tiež replikačný front pozostávajúci z poznámok o tom, že sa zmenil riadok tabuľky v zdrojovej databáze. Údaje z replikačného frontu používajú procesy ETL na identifikáciu riadkov, ktoré je potrebné skopírovať do Oracle zo zdrojovej databázy.

Vytvárame samostatnú databázu cdc.

Postup pri vytváraní databázy

  1. Na databázovom serveri vytvoríme adresár pre databázu cdc - napríklad na serveri /database/cdc/.
  2. Vytvorte figurínu pre databázu cdc: kópia $DLC/prázdne cdc
  3. Povoliť podporu pre veľké súbory: proutil cdc -C EnableLargeFiles
  4. Pripravíme skript pre spustenie databázy cdc. Štartovacie parametre musia byť podobné štartovacím parametrom replikovanej databázy.
  5. Spustíme databázu cdc.
  6. Pripojte sa k databáze cdc a načítajte schému Pro2 zo súboru cdc.df, ktorý je súčasťou balenia Pro2.
  7. V databáze cdc vytvárame nasledujúcich používateľov:

pro2adm – na pripojenie z administratívneho panelu Pro2;
pro2etl – na prepojenie ETL procesov (ReplBatch);
pro2cdc – na pripojenie procesov CDC (CDCBatch);

Aktivácia OpenEdge Change Data Capture

Teraz zapnime samotný mechanizmus CDC, pomocou ktorého budú dáta replikované do ďalšej technologickej oblasti. Ku každej zdrojovej databáze Progress OpenEdge musíte pridať samostatné úložné oblasti, do ktorých sa budú duplikovať zdrojové údaje, a aktivovať samotný mechanizmus pomocou príkazu proutil.

Príklad postupu pre databázu bisquit

  1. Kopírovanie z katalógu C: Pro2db файл cdcadd.st do adresára zdrojovej databázy bisquit.
  2. Popisujeme v cdcadd.st pevné rozsahy veľkosti pre regióny "ReplCDCAarea" и "ReplCDCArea_IDX". Nové úložné oblasti môžete pridať online: prostrct addonline bisquit cdcadd.st
  3. Aktivácia OpenEdge CDC:
    proutil bisquit -C enablecdc oblasť "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. Na identifikáciu spustených procesov musia byť v zdrojovej databáze vytvorení títo používatelia:
    a. pro2adm – na pripojenie z administratívneho panelu Pro2.
    b. pro2etl – na prepojenie ETL procesov (ReplBatch).
    c. pro2cdc – na pripojenie procesov CDC (CDCBatch).

Vytvorenie držiteľa schémy pre DataServer pre Oracle

Ďalej musíme vytvoriť databázu Schema Holder na serveri, kde budú dáta z Progress DBMS replikované do Oracle DBMS. DataServer Schema Holder je prázdna databáza Progress OpenEdge bez údajov používateľov alebo aplikácií, ktorá obsahuje mapu korešpondencie medzi zdrojovými tabuľkami a externými tabuľkami Oracle.

Databáza Schema Holder pre Progress OpenEdge DataServer for Oracle for Pro2 musí byť umiestnená na serveri procesov ETL, vytvára sa samostatne pre každú pobočku.

Ako vytvoriť držiak schémy

  1. Rozbaľte distribúciu Pro2 do adresára /pro2
  2. Vytvorte a prejdite do adresára /pro2/dbsh
  3. Vytvorte databázu Schema Holder pomocou príkazu skopírujte $DLC/empty bisquitsh
  4. Vykonávanie konverzie bisquitsh do požadovaného kódovania - napríklad v UTF-8, ak databázy Oracle majú kódovanie UTF-8: proutil bisquitsh -C convchar previesť UTF-8
  5. Po vytvorení prázdnej databázy bisquitsh pripojte sa k nemu v režime pre jedného používateľa: pre bisquitsh
  6. Poďme do Data Dictionary: Nástroje -> Data Dictionary -> DataServer -> ORACLE Utilities -> Create DataServer Schema
  7. Spustite Schema Holder
  8. Nastavenie brokera Oracle DataServer:
    a. Spustite AdminServer.
    proadsv -štart
    b. Spustenie makléra Oracle DataServer
    oraman -meno orabroker1 -zač

Nastavenie administratívneho panela a schémy replikácie

Pomocou administratívneho panela Pro2 sa konfigurujú parametre Pro2, vrátane nastavenia schémy replikácie a generovania ETL procesov (Processor Library), primárnych synchronizačných programov (Bulk-Copy Processor), spúšťačov replikácie a politík OpenEdge CDC. Existujú aj primárne nástroje na monitorovanie a riadenie procesov ETL a CDC. Najprv nastavíme súbory parametrov.

Ako nakonfigurovať súbory parametrov

  1. Prejdite do katalógu C:Pro2bpreplScripts
  2. Otvorte súbor na úpravu replProc.pf
  3. Pridajte parametre pripojenia do replikačnej databázy cdc:
    # Replikačná databáza
    -db cdc -ld repl -H <názov hostiteľa hlavnej databázy> -S <port databázového makléra cdc>
    -U pro2admin -P <heslo>
  4. Pridať k replProc.pf parametre pripojenia k zdrojovým databázam a Schema Holder vo forme súborov parametrov. Názov súboru parametrov sa musí zhodovať s názvom pripájanej zdrojovej databázy.
    # Pripojte sa ku všetkým replikovaným zdrojom BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Pridať k replProc.pf parametre pre pripojenie k Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <názov hostiteľa procesu ETL>
    -S <port sprostredkovateľa biskuitsh>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <názov hostiteľa makléra Oracle>
    -DataService orabroker1
  6. Uložte súbor parametrov replProc.pf
  7. Ďalej musíte vytvoriť a otvoriť na úpravu súbory parametrov pre každú pripojenú zdrojovú databázu v adresári C:Pro2bpreplScripts: bisquit.pf. Každý súbor pf obsahuje parametre na pripojenie k príslušnej databáze, napríklad:
    -db bisquit -ld bisquit -H <názov hostiteľa> -S <port sprostredkovateľa>
    -U pro2admin -P <heslo>

Ak chcete nakonfigurovať skratky systému Windows, musíte prejsť do adresára C:Pro2bpreplScripts a upravte skratku „Pro2 – Správa“. Ak to chcete urobiť, otvorte vlastnosti skratky a v riadku Začínať o označte inštalačný adresár Pro2. Podobnú operáciu je potrebné vykonať pre skratky „Pro2 – Editor“ a „RunBulkLoader“.

Nastavenie správy Pro2: Načítava sa úvodná konfigurácia

Spustíme konzolu.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

Prejdite na „mapu databázy“.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

Pre prepojenie databáz v Pro2 – Administrácia prejdite na záložku DB mapa. Pridať mapovanie zdrojových databáz - Držiteľ schémy - Oracle.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

Prejdite na kartu Mapovanie. Uvedené Zdrojová databáza Štandardne je vybratá prvá pripojená zdrojová databáza. Napravo od zoznamu by mal byť nápis Všetky databázy sú pripojené — vybrané databázy sú prepojené. Nižšie vľavo by ste mali vidieť zoznam Progress tabuliek od bisquitu. Na pravej strane je zoznam tabuliek z databázy Oracle.

Vytváranie SQL schém a databáz v Oracle

Ak chcete vytvoriť mapu replikácie, musíte ju najskôr vygenerovať SQL schéma v Oracle. V Pro2 Administration spustíme položku menu Nástroje -> Generovať kód -> Cieľová schémaa potom v dialógovom okne Vyberte databázu vyberte jednu alebo viac zdrojových databáz a presuňte ich doprava.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

Kliknite na tlačidlo OK a vyberte adresár na uloženie schém SQL.

Ďalej vytvoríme základňu. Dá sa to urobiť napríklad cez Vývojár Oracle SQL. Za týmto účelom sa pripojíme k databáze Oracle a načítame schému na pridávanie tabuliek. Po zmene zloženia tabuliek Oracle je potrebné aktualizovať schémy SQL v držiaku schém.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

Po úspešnom dokončení sťahovania ukončite databázu bisquitsh a otvorte administratívny panel Pro2. Tabuľky z databázy Oracle by sa mali objaviť na karte Mapovanie vpravo.

Tabuľkové mapovanie

Ak chcete vytvoriť mapu replikácie, v administratívnom paneli Pro2 prejdite na kartu Mapovanie a vyberte zdrojovú databázu. Kliknite na Map Tables, vyberte Select Changes na ľavej strane tabuliek, ktoré by mali byť replikované v Oracle, presuňte ich doprava a potvrďte výber. Pre vybrané stoly sa automaticky vytvorí mapa. Operáciu zopakujeme, aby sme vytvorili replikačnú mapu pre ďalšie zdrojové databázy.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

Generovanie knižnice replikačného procesora Pro2 a programov procesora na hromadné kopírovanie

Knižnica Replication Processor Library je navrhnutá pre vlastné replikačné procesy (ETL), ktoré spracovávajú replikačný front Pro2 a prenášajú zmeny do databázy Oracle. Programy knižníc replikačného procesora sa po vygenerovaní automaticky uložia do adresára bprepl/repl_proc (parameter PROC_DIRECTORY). Ak chcete vygenerovať knižnicu replikačného procesora, prejdite na stránku Nástroje -> Generovať kód -> Knižnica procesora. Po dokončení generovania sa programy objavia v adresári bprepl/repl_proc.

Programy Bulk Load Processor sa používajú na synchronizáciu zdrojových databáz Progress s cieľovou databázou Oracle na základe programovacieho jazyka Progress ABL (4GL). Ak ich chcete vygenerovať, prejdite na položku ponuky Nástroje -> Generovať kód -> Procesor hromadného kopírovania. V dialógovom okne Výber databázy vyberte zdrojové databázy, presuňte ich na pravú stranu okna a kliknite OK. Po dokončení generovania sa programy objavia v adresári bpreplrepl_mproc.

Nastavenie procesov replikácie v Pro2

Rozdelenie tabuliek do sád obsluhovaných samostatným replikačným vláknom zlepšuje výkon a efektivitu Pro2 Oracle. Štandardne sú všetky pripojenia vytvorené v mape replikácie pre nové replikačné tabuľky spojené s vláknom číslo 1. Odporúča sa rozdeliť tabuľky do rôznych vlákien.

Informácie o stave vlákien replikácie sa zobrazujú na obrazovke Správa Pro2 na karte Monitor v časti Stav replikácie. Podrobný popis hodnôt parametrov nájdete v dokumentácii Pro2 (adresár C:Pro2Docs).

Vytvorte a aktivujte politiky CDC

Politiky sú súborom pravidiel pre nástroj OpenEdge CDC na monitorovanie zmien v tabuľkách. V čase písania tohto článku Pro2 podporuje iba politiky CDC s úrovňou 0, to znamená, že sa monitoruje iba skutočnosť zaznamenávať zmeny.

Ak chcete vytvoriť politiku CDC, na administratívnom paneli prejdite na kartu Mapovanie, vyberte zdrojovú databázu a kliknite na tlačidlo Pridať/Odobrať politiky. V okne Výber zmien, ktoré sa otvorí, vyberte na ľavej strane tabuľky, pre ktoré potrebujete vytvoriť alebo odstrániť politiku CDC, a presuňte ich doprava.

Ak chcete aktivovať, znova otvorte kartu Mapovanie, vyberte zdrojovú databázu a kliknite na tlačidlo (Ne)Aktivovať zásady. Vyberte a presuňte na pravú stranu tabuľky politiky, ktoré je potrebné aktivovať, kliknite na tlačidlo OK. Potom sú označené zelenou farbou. Používaním (Ne)Aktivovať zásady Politiky CDC môžete tiež deaktivovať. Všetky transakcie sa vykonávajú online.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

Po aktivácii politiky CDC sa poznámky o upravených záznamoch uložia do úložného priestoru "ReplCDCAarea" podľa zdrojovej databázy. Tieto poznámky budú spracované špeciálnym procesom CDCBatch, ktorý na ich základe vytvorí poznámky v replikačnom fronte Pro2 v databáze cdc (repl).

Máme teda dva fronty na replikáciu. Prvým stupňom je CDCBatch: zo zdrojovej databázy idú údaje najskôr do strednej databázy CDC. Druhou fázou je prenos údajov z databázy CDC do Oracle. Toto je vlastnosť súčasnej architektúry a samotného produktu – zatiaľ sa vývojárom nepodarilo zaviesť priamu replikáciu.

Primárna synchronizácia

Po povolení mechanizmu CDC a nastavení replikačného servera Pro2 musíme spustiť úvodnú synchronizáciu. Príkaz na úvodnú synchronizáciu:

/pro2/bprepl/Script/replLoad.sh názov-súboru tabuľky

Po dokončení počiatočnej synchronizácie je možné spustiť replikačné procesy.

Spustenie procesov replikácie

Na spustenie procesov replikácie je potrebné spustiť skript replbatch.sh. Pred spustením sa uistite, že existujú skripty replbatch pre všetky vlákna - replbatch1, replbatch2 atď. Ak je všetko na svojom mieste, otvorte príkazový riadok (napr. proenv), prejdite do adresára /bprepl/scripts a spustite skript. V administratívnom paneli skontrolujeme, či príslušný proces získal stav BEŽÍ.

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS

výsledky

Ako sa spriateliť medzi bankovým systémom Progress OpenEdge a Oracle DBMS
Po implementácii sme výrazne zrýchlili nahrávanie informácií do firemného dátového skladu. Údaje sa automaticky dostanú do Oracle online. Nie je potrebné strácať čas vykonávaním niektorých dlhotrvajúcich dotazov na zhromažďovanie údajov z rôznych systémov. Navyše v tomto riešení dokáže proces replikácie komprimovať dáta, čo má tiež pozitívny vplyv na rýchlosť. Teraz začalo denné zosúlaďovanie systému BISKVIT s inými systémami trvať 15 – 20 minút namiesto 2 – 2,5 hodiny a úplné zosúladenie trvalo niekoľko hodín namiesto dvoch dní.

Zdroj: hab.com

Pridať komentár