Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

Mula noong 1999, para maserbisyuhan ang back office, ginamit ng aming bangko ang integrated banking system na BISKVIT sa platform ng Progress OpenEdge, na malawakang ginagamit sa buong mundo, kabilang ang sektor ng pananalapi. Ang pagganap ng DBMS na ito ay nagbibigay-daan sa iyo na magbasa ng hanggang sa isang milyon o higit pang mga talaan bawat segundo sa isang database (DB). Ang aming mga serbisyo ng Progress OpenEdge ay humigit-kumulang 1,5 milyong indibidwal na deposito at humigit-kumulang 22,2 milyong kontrata para sa mga aktibong produkto (mga pautang sa sasakyan at mga mortgage), at responsable din para sa lahat ng mga pakikipag-ayos sa regulator (Central Bank) at SWIFT.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

Gamit ang Progress OpenEdge, nahaharap kami sa pangangailangang gawin itong gumana sa Oracle DBMS. Sa una, ang bundle na ito ay ang bottleneck ng aming imprastraktura - hanggang sa na-install at na-configure namin ang Pro2 CDC - isang produkto ng Progress na nagbibigay-daan sa iyong direktang magpadala ng data mula sa Progress DBMS sa Oracle DBMS, online. Sa post na ito, sasabihin namin sa iyo nang detalyado, kasama ang lahat ng mga pitfalls, kung paano epektibong makipagkaibigan sa pagitan ng OpenEdge at Oracle.

Paano ito nangyari: pag-upload ng data sa QCD sa pamamagitan ng pagbabahagi ng file

Una, ilang katotohanan tungkol sa aming imprastraktura. Ang bilang ng mga aktibong gumagamit ng database ay humigit-kumulang 15 libo. Ang dami ng lahat ng produktibong database, kabilang ang replica at standby, ay 600 TB, ang pinakamalaking database ay 16,5 TB. Kasabay nito, ang mga database ay patuloy na pinupunan: sa nakaraang taon lamang, humigit-kumulang 120 TB ng produktibong data ang naidagdag. Ang system ay pinapagana ng 150 front server sa x86 platform. Ang mga database ay naka-host sa 21 IBM platform server.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS
Ang mga front-end system, iba't ibang core banking system at mga serbisyo sa pagbabangko ay isinama sa OpenEdge Progress (BISCUIT IBS) sa pamamagitan ng Sonic ESB bus. Ang pag-upload ng data sa QCD ay nangyayari sa pamamagitan ng pagpapalitan ng file. Hanggang sa isang tiyak na punto ng oras, ang solusyon na ito ay nagkaroon ng dalawang malalaking problema nang sabay-sabay - mababang pagganap ng pag-upload ng impormasyon sa isang corporate data warehouse (CDW) at isang mahabang panahon para sa pagsasagawa ng data reconciliation (reconciliation) sa ibang mga system.
Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS
Samakatuwid, nagsimula kaming maghanap ng isang tool na maaaring mapabilis ang mga prosesong ito. Ang solusyon sa parehong problema ay ang bagong produkto ng Progress OpenEdge – Pro2 CDC (Change Data Capture). Kaya, magsimula tayo.

I-install ang Progress OpenEdge at Pro2Oracle

Upang patakbuhin ang Pro2 Oracle sa Windows computer ng administrator, sapat na ang pag-install ng Progress OpenEdge Developer Kit Classroom Edition, na maaaring i-download libre. Default na mga direktoryo ng pag-install ng OpenEdge:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

Ang mga proseso ng ETL ay nangangailangan ng Progress OpenEdge na mga lisensya na bersyon 11.7+ - katulad ng OE DataServer para sa Oracle at 4GL Development System. Ang mga lisensyang ito ay kasama sa Pro2. Para sa buong operasyon ng DataServer para sa Oracle na may isang malayuang database ng Oracle, naka-install ang Buong Oracle Client.

Sa Oracle server kailangan mong i-install ang Oracle Database 12+, lumikha ng walang laman na database at magdagdag ng user (tawagan natin siya cdc).

Upang i-install ang Pro2Oracle, i-download ang pinakabagong pamamahagi mula sa download center Progress Software. I-unpack ang archive sa isang direktoryo C:Pro2 (Upang i-configure ang Pro2 sa Unix, ang parehong pamamahagi ay ginagamit at ang parehong mga prinsipyo ng pagsasaayos ay nalalapat).

Paglikha ng database ng pagtitiklop ng cdc

Database ng pagtitiklop cdc (repl) Ginagamit ang Pro2 upang mag-imbak ng impormasyon sa pagsasaayos, kabilang ang mapa ng pagtitiklop, mga pangalan ng mga kinopya na database at ang kanilang mga talahanayan. Naglalaman din ito ng replication queue, na binubuo ng mga tala tungkol sa katotohanang nagbago ang isang table row sa source database. Ang data mula sa replication queue ay ginagamit ng mga proseso ng ETL para matukoy ang mga row na kailangang kopyahin sa Oracle mula sa source database.

Gumagawa kami ng hiwalay na cdc database.

Pamamaraan para sa paglikha ng isang database

  1. Sa database server lumikha kami ng isang direktoryo para sa cdc database - halimbawa, sa server /database/cdc/.
  2. Gumawa ng dummy para sa cdc database: procopy $DLC/empty cdc
  3. Paganahin ang suporta para sa malalaking file: proutil cdc -C EnableLargeFiles
  4. Naghahanda kami ng script para sa pagsisimula ng cdc database. Ang mga parameter ng pagsisimula ay dapat na katulad ng mga parameter ng pagsisimula ng kinopya na database.
  5. Sinimulan namin ang database ng cdc.
  6. Kumonekta sa cdc database at i-load ang Pro2 schema mula sa file cdc.df, na kasama sa Pro2.
  7. Ginagawa namin ang mga sumusunod na user sa cdc database:

pro2adm – para sa pagkonekta mula sa Pro2 administrative panel;
pro2etl – para sa pagkonekta sa mga proseso ng ETL (ReplBatch);
pro2cdc – para sa pagkonekta ng mga proseso ng CDC (CDCBatch);

Ina-activate ang OpenEdge Change Data Capture

Ngayon, i-on natin ang mismong mekanismo ng CDC, sa tulong ng kung aling data ang ire-replicate sa isang karagdagang lugar ng teknolohiya. Sa bawat Progress OpenEdge source database, kailangan mong magdagdag ng hiwalay na mga lugar ng imbakan kung saan madodoble ang source data, at i-activate ang mismong mekanismo gamit ang command proutil.

Halimbawang pamamaraan para sa database ng bisquit

  1. Kinokopya mula sa catalog C:Pro2db file cdcadd.st sa bisquit source database directory.
  2. Inilalarawan namin sa cdcadd.st nakapirming lawak ng laki para sa mga rehiyon "ReplCDCArea" ΠΈ "ReplCDCArea_IDX". Maaari kang magdagdag ng mga bagong lugar ng imbakan online: prostrct addonline bisquit cdcadd.st
  3. I-activate ang OpenEdge CDC:
    proutil bisquit -C enablecdc area "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. Ang mga sumusunod na user ay dapat gawin sa source database upang matukoy ang mga tumatakbong proseso:
    a. pro2adm – para sa pagkonekta mula sa Pro2 administrative panel.
    b. pro2etl – para sa pagkonekta sa mga proseso ng ETL (ReplBatch).
    c. pro2cdc – para sa pagkonekta ng mga proseso ng CDC (CDCBatch).

Paglikha ng Schema Holder para sa DataServer para sa Oracle

Susunod, kailangan nating gumawa ng database ng Schema Holder sa server kung saan ang data mula sa Progress DBMS ay ire-replicate sa Oracle DBMS. Ang DataServer Schema Holder ay isang walang laman na database ng Progress OpenEdge na walang mga user o data ng application, na naglalaman ng mapa ng mga sulat sa pagitan ng mga source table at external na Oracle table.

Ang database ng Schema Holder para sa Progress OpenEdge DataServer para sa Oracle para sa Pro2 ay dapat na matatagpuan sa server ng proseso ng ETL; ito ay nilikha nang hiwalay para sa bawat sangay.

Paano gumawa ng Schema Holder

  1. I-unpack ang pamamahagi ng Pro2 sa isang direktoryo /pro2
  2. Lumikha at pumunta sa direktoryo /pro2/dbsh
  3. Lumikha ng database ng Schema Holder gamit ang command kopyahin ang $DLC/empty bisquitsh
  4. Pagsasagawa ng conversion bisquitsh sa kinakailangang encoding - halimbawa, sa UTF-8 kung ang mga database ng Oracle ay may UTF-8 encoding: proutil bisquitsh -C convchar convert UTF-8
  5. Pagkatapos lumikha ng isang walang laman na database bisquitsh kumonekta dito sa single-user mode: pro bisquitsh
  6. Pumunta tayo sa Data Dictionary: Mga Tool -> Data Dictionary -> DataServer -> ORACLE Utilities -> Lumikha ng DataServer Schema
  7. Ilunsad ang Schema Holder
  8. Pag-set up ng Oracle DataServer broker:
    a. Simulan ang AdminServer.
    proadsv -simula
    b. Simula ng Oracle DataServer broker
    oraman -pangalan orabroker1 -simula

Pagse-set up ng administrative panel at replication scheme

Gamit ang panel ng administratibo ng Pro2, ang mga parameter ng Pro2 ay na-configure, kabilang ang pag-set up ng scheme ng pagtitiklop at pagbuo ng mga proseso ng ETL (Processor Library), pangunahing mga programa sa pag-synchronize (Bulk-Copy Processor), mga pag-trigger ng pagtitiklop at mga patakaran ng OpenEdge CDC. Mayroon ding mga pangunahing tool para sa pagsubaybay at pamamahala ng mga proseso ng ETL at CDC. Una sa lahat, itinakda namin ang mga file ng parameter.

Paano i-configure ang mga file ng parameter

  1. Pumunta sa catalog C:Pro2bpreplScripts
  2. Buksan ang file para sa pag-edit replProc.pf
  3. Magdagdag ng mga parameter ng koneksyon sa database ng pagtitiklop ng cdc:
    # Replikasyon Database
    -db cdc -ld repl -H <pangunahing database hostname> -S <database broker port cdc>
    -U pro2admin -P <password>
  4. Idagdag sa replProc.pf mga parameter ng koneksyon sa source database at Schema Holder sa anyo ng mga file ng parameter. Ang pangalan ng file ng mga parameter ay dapat tumugma sa pangalan ng source database na konektado.
    # Kumonekta sa lahat ng replicated na mapagkukunan BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Idagdag sa replProc.pf mga parameter para sa pagkonekta sa Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <ETL process host name>
    -S <biskuitsh broker port>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <Oracle broker hostname>
    -DataService orabroker1
  6. I-save ang file ng mga parameter replProc.pf
  7. Susunod, kailangan mong lumikha at magbukas para sa pag-edit ng mga file ng parameter para sa bawat konektadong source database sa direktoryo C:Pro2bpreplScripts: bisquit.pf. Ang bawat pf file ay naglalaman ng mga parameter para sa pagkonekta sa kaukulang database, halimbawa:
    -db bisquit -ld bisquit -H <hostname> -S <broker port>
    -U pro2admin -P <password>

Upang i-configure ang mga shortcut sa Windows, kailangan mong pumunta sa direktoryo C:Pro2bpreplScripts at i-edit ang shortcut na β€œPro2 – Administration”. Upang gawin ito, buksan ang mga katangian ng shortcut at sa linya Magsimula sa ipahiwatig ang direktoryo ng pag-install ng Pro2. Ang isang katulad na operasyon ay dapat gawin para sa "Pro2 - Editor" at "RunBulkLoader" na mga shortcut.

Pro2 Administration Setup: Nilo-load ang Initial Configuration

Ilunsad natin ang console.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

Pumunta sa β€œDB Map”.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

Upang i-link ang mga database sa Pro2 – Administration, pumunta sa tab Mapa ng DB. Magdagdag ng pagmamapa ng mga database ng pinagmulan - May-hawak ng Schema - Oracle.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

Pumunta sa tab Pagma-map. Nakalista Pinagmulan ng Database Bilang default, napili ang unang nakakonektang source database. Sa kanan ng listahan ay dapat mayroong isang inskripsiyon Lahat ng Database na Nakakonekta β€” ang mga napiling database ay konektado. Sa ibaba sa kaliwa dapat mong makita ang isang listahan ng mga talahanayan ng Pag-unlad mula sa bisquit. Sa kanan ay isang listahan ng mga talahanayan mula sa database ng Oracle.

Paglikha ng mga SQL schemas at database sa Oracle

Para gumawa ng replication map, kailangan mo munang bumuo SQL schema sa Oracle. Sa Pro2 Administration ginagawa namin ang menu item Mga Tool -> Bumuo ng Code -> Target na Schema, pagkatapos ay sa dialog box Piliin ang Database pumili ng isa o higit pang source database at ilipat ang mga ito sa kanan.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

I-click ang OK at piliin ang direktoryo upang i-save ang mga SQL schemas.

Susunod na lumikha kami ng base. Magagawa ito, halimbawa, sa pamamagitan ng Oracle SQL Developer. Upang gawin ito, kumonekta kami sa database ng Oracle at i-load ang schema para sa pagdaragdag ng mga talahanayan. Pagkatapos baguhin ang komposisyon ng mga talahanayan ng Oracle, kailangan mong i-update ang mga SQL schema sa Schema Holder.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

Matapos matagumpay na makumpleto ang pag-download, lumabas sa database ng bisquitsh at buksan ang panel ng administratibo ng Pro2. Ang mga talahanayan mula sa database ng Oracle ay dapat lumabas sa tab na Mapping sa kanan.

Pagmamapa ng talahanayan

Para gumawa ng replication map, sa Pro2 administrative panel, pumunta sa Mapping tab at piliin ang source database. Mag-click sa Map Tables, piliin ang Piliin ang Mga Pagbabago sa kaliwa ng mga talahanayan na dapat kopyahin sa Oracle, ilipat ang mga ito sa kanan at kumpirmahin ang pagpili. Awtomatikong gagawa ng mapa para sa mga napiling talahanayan. Inuulit namin ang operasyon para gumawa ng replication map para sa iba pang source database.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

Pagbuo ng Pro2 Replication Processor Library at Bulk-Copy Processor Programs

Ang Replication Processor Library ay idinisenyo para sa mga custom na proseso ng pagtitiklop (ETLs) na nagpoproseso ng Pro2 replication queue at nagtutulak ng mga pagbabago sa Oracle database. Ang mga programa ng library ng replication processor ay awtomatikong nai-save sa direktoryo pagkatapos ng henerasyon bprepl/repl_proc (PROC_DIRECTORY parameter). Upang bumuo ng library ng replication processor, pumunta sa Mga Tool -> Bumuo ng Code -> Library ng Processor. Pagkatapos makumpleto ang henerasyon, lilitaw ang mga programa sa direktoryo bprepl/repl_proc.

Ginagamit ang mga programang Bulk Load Processor upang i-synchronize ang mga database ng pinagmulan ng Progress sa target na database ng Oracle batay sa programming language ng Progress ABL (4GL). Upang mabuo ang mga ito, pumunta sa item ng menu Mga Tool -> Bumuo ng Code -> Bulk-Copy Processor. Sa dialog box na Piliin ang Database, piliin ang mga database ng pinagmulan, ilipat ang mga ito sa kanang bahagi ng window at i-click OK. Pagkatapos makumpleto ang henerasyon, lilitaw ang mga programa sa direktoryo bpreplrepl_mproc.

Pagse-set up ng mga proseso ng pagtitiklop sa Pro2

Ang paghahati ng mga talahanayan sa mga set na inihahatid ng isang hiwalay na replication thread ay nagpapabuti sa pagganap at kahusayan ng Pro2 Oracle. Bilang default, ang lahat ng koneksyon na ginawa sa replication map para sa mga bagong replication table ay nauugnay sa thread number 1. Inirerekomenda na paghiwalayin ang mga table sa iba't ibang thread.

Ang impormasyon tungkol sa katayuan ng mga thread ng pagtitiklop ay ipinapakita sa screen ng Pro2 Administration sa tab na Monitor sa seksyong Status ng Replikasyon. Ang isang detalyadong paglalarawan ng mga halaga ng parameter ay matatagpuan sa dokumentasyon ng Pro2 (direktoryo C:Pro2Docs).

Gumawa at i-activate ang mga patakaran ng CDC

Ang mga patakaran ay isang hanay ng mga panuntunan para sa OpenEdge CDC engine upang masubaybayan ang mga pagbabago sa mga talahanayan. Sa oras ng pagsulat, sinusuportahan lamang ng Pro2 ang mga patakaran ng CDC na may antas 0, iyon ay, katotohanan lamang ang sinusubaybayan itala ang mga pagbabago.

Upang gumawa ng patakaran ng CDC, sa administrative panel, pumunta sa Mapping tab, piliin ang source database at mag-click sa Add/Remove Policies button. Sa window ng Select Changes na bubukas, piliin sa kaliwang bahagi at ilipat sa kanan ang mga talahanayan kung saan kailangan mong gumawa o magtanggal ng patakaran ng CDC.

Para i-activate, buksan muli ang Mapping tab, piliin ang source database at i-click ang button (Sa)I-activate ang Mga Patakaran. Piliin at ilipat sa kanang bahagi ng talahanayan ang mga patakarang kailangang i-activate, i-click ang OK. Pagkatapos nito ay minarkahan sila ng berde. Sa pamamagitan ng paggamit (Sa)I-activate ang Mga Patakaran Maaari mo ring i-deactivate ang mga patakaran ng CDC. Ang lahat ng mga transaksyon ay isinasagawa online.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

Pagkatapos ma-activate ang patakaran ng CDC, ang mga tala tungkol sa mga binagong talaan ay ise-save sa lugar ng imbakan "ReplCDCArea" ayon sa source database. Ipoproseso ang mga talang ito sa pamamagitan ng isang espesyal na proseso CDCBatch, na batay sa mga ito ay lilikha ng mga tala sa Pro2 replication queue sa database cdc (repl).

Kaya, mayroon kaming dalawang pila para sa pagtitiklop. Ang unang yugto ay CDCBatch: mula sa pinagmulang database, ang data ay unang napupunta sa intermediate na database ng CDC. Ang ikalawang yugto ay kapag ang data ay inilipat mula sa database ng CDC sa Oracle. Ito ay isang tampok ng kasalukuyang arkitektura at ang produkto mismo - sa ngayon ang mga developer ay hindi pa nakapagtatag ng direktang pagtitiklop.

Pangunahing pag-synchronize

Pagkatapos i-enable ang mekanismo ng CDC at i-set up ang Pro2 replication server, kailangan nating simulan ang paunang pag-synchronize. Paunang utos sa pag-synchronize:

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

Matapos makumpleto ang paunang pag-synchronize, maaaring magsimula ang mga proseso ng pagtitiklop.

Simula ng mga proseso ng pagtitiklop

Upang simulan ang mga proseso ng pagtitiklop kailangan mong magpatakbo ng isang script replbatch.sh. Bago magsimula, siguraduhing mayroong mga replbatch script para sa lahat ng mga thread - replbatch1, replbatch2, atbp. Kung nasa lugar na ang lahat, buksan ang command line (halimbawa, proenv), pumunta sa direktoryo /bprepl/scripts at simulan ang script. Sa administrative panel, sinusuri namin na ang kaukulang proseso ay nakatanggap ng RUNNING status.

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS

Natuklasan

Paano makipagkaibigan sa pagitan ng Progress OpenEdge banking system at ng Oracle DBMS
Pagkatapos ng pagpapatupad, lubos naming pinabilis ang pag-upload ng impormasyon sa corporate data warehouse. Ang data ay awtomatikong napupunta sa Oracle online. Hindi na kailangang mag-aksaya ng oras sa pagpapatakbo ng ilang matagal nang query para mangolekta ng data mula sa iba't ibang system. Bilang karagdagan, sa solusyon na ito ang proseso ng pagtitiklop ay maaaring mag-compress ng data, na mayroon ding positibong epekto sa bilis. Ngayon ang pang-araw-araw na pagkakasundo ng sistema ng BISKVIT sa iba pang mga sistema ay nagsimulang tumagal ng 15-20 minuto sa halip na 2-2,5 na oras, at ang isang kumpletong pagkakasundo ay tumagal ng ilang oras sa halip na dalawang araw.

Pinagmulan: www.habr.com

Magdagdag ng komento