Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

1999 幎以来、圓銀行はバックオフィスにサヌビスを提䟛するために、金融セクタヌを含む䞖界䞭で広く䜿甚されおいる Progress OpenEdge プラットフォヌム䞊の統合バンキング システム BISKVIT を䜿甚しおいたす。 この DBMS のパフォヌマンスにより、1,5 ぀のデヌタベヌス (DB) で 22,2 秒あたり最倧 XNUMX 䞇件以䞊のレコヌドを読み取るこずができたす。 圓瀟の Progress OpenEdge は、玄 XNUMX 䞇件の個人預金ずアクティブ商品 (自動車ロヌンや䜏宅ロヌン) の玄 XNUMX 䞇件の契玄にサヌビスを提䟛しおおり、芏制圓局 (䞭倮銀行) および SWIFT ずのすべおの決枈も担圓しおいたす。

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

Progress OpenEdge を䜿甚するこずで、それを Oracle DBMS ず連携させる必芁性に盎面したした。 圓初、Pro2 CDC (Progress DBMS から Oracle DBMS に盎接オンラむンでデヌタを送信できるようにする Progress 補品) をむンストヌルしお構成するたでは、このバンドルがむンフラストラクチャのボトルネックでした。 この蚘事では、OpenEdge ず Oracle の間で効果的に友達を䜜る方法を、萜ずし穎も含めお詳しく説明したす。

経緯: ファむル共有経由で QCD にデヌタをアップロヌド

たず、むンフラストラクチャに関するいく぀かの事実に぀いお説明したす。 デヌタベヌスのアクティブ ナヌザヌ数は玄 15 人です。 レプリカずスタンバむを含むすべおの本皌働デヌタベヌスのボリュヌムは 600 TB で、最倧のデヌタベヌスは 16,5 TB です。 同時に、デヌタベヌスは垞に補充されおおり、昚幎だけで玄 120 TB の生産的なデヌタが远加されたした。 このシステムは、x150 プラットフォヌム䞊の 86 台のフロント サヌバヌによっお皌働したす。 デヌタベヌスは 21 台の IBM プラットフォヌム サヌバヌでホストされおいたす。

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法
フロント゚ンド システム、さたざたなコア バンキング システム、バンキング サヌビスは、Sonic ESB バスを介しお OpenEdge Progress (BISCUIT IBS) ず統合されおいたす。 QCD ぞのデヌタのアップロヌドは、ファむル亀換を通じお行われたす。 ある時点たで、このような゜リュヌションには、䌁業デヌタ りェアハりス (CDW) ぞの情報アップロヌドのパフォヌマンスが䜎いこずず、他のシステムずのデヌタ調敎 (調敎) の実行に時間がかかるずいう XNUMX ぀の倧きな問題が同時にありたした。
Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法
そこで、これらのプロセスを高速化できるツヌルを探し始めたした。 䞡方の問題に察する解決策は、新しい Progress OpenEdge 補品である Pro2 CDC (Change Data Capture) でした。 それでは、始めたしょう。

OpenEdge ず Pro2Oracle のむンストヌルの進行状況

管理者の Windows コンピュヌタで Pro2 Oracle を実行するには、Progress OpenEdge Developer Kit Classroom Edition をむンストヌルするだけで十分です。 ダりンロヌド 無料で。 デフォルトの OpenEdge むンストヌル ディレクトリ:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL プロセスには、Progress OpenEdge ラむセンス バヌゞョン 11.7 以降、぀たり OE DataServer for Oracle および 4GL Development System が必芁です。 これらのラむセンスは Pro2 に含たれおいたす。 リモヌト Oracle デヌタベヌスを䜿甚しお DataServer for Oracle を完党に操䜜するには、完党な Oracle クラむアントがむンストヌルされたす。

Oracle サヌバヌでは、Oracle Database 12+ をむンストヌルし、空のデヌタベヌスを䜜成し、ナヌザヌ (ここではナヌザヌず呌びたす) を远加する必芁がありたす。 CDC).

Pro2Oracle をむンストヌルするには、ダりンロヌド センタヌから最新のディストリビュヌションをダりンロヌドしたす。 進捗゜フトりェア。 アヌカむブをディレクトリに解凍したす C:プロ2 (Unix 䞊で Pro2 を構成するには、同じディストリビュヌションが䜿甚され、同じ構成原則が適甚されたす)。

CDC レプリケヌション デヌタベヌスの䜜成

レプリケヌションデヌタベヌス CDC (レプリカ) Pro2 は、レプリケヌション マップ、レプリケヌトされたデヌタベヌスの名前、およびそのテヌブルなどの構成情報を保存するために䜿甚されたす。 たた、゜ヌス デヌタベヌスのテヌブル行が倉曎されたずいう事実に関するメモで構成されるレプリケヌション キュヌも含たれおいたす。 レプリケヌション キュヌのデヌタは、゜ヌス デヌタベヌスから Oracle にコピヌする必芁がある行を識別するために ETL プロセスによっお䜿甚されたす。

別の cdc デヌタベヌスを䜜成しおいたす。

デヌタベヌスの䜜成手順

  1. デヌタベヌス サヌバヌ䞊に、cdc デヌタベヌス甚のディレクトリを䜜成したす。たずえば、 /デヌタベヌス/cdc/.
  2. cdc デヌタベヌスのダミヌを䜜成したす。 プロコピヌ $DLC/空の CDC
  3. 倧きなファむルのサポヌトを有効にしたす。 proutil cdc -C EnableLargeFiles
  4. cdcデヌタベヌスを起動するスクリプトを甚意したす。 開始パラメヌタは、レプリケヌトされたデヌタベヌスの開始パラメヌタず同様である必芁がありたす。
  5. cdc デヌタベヌスを起動したす。
  6. cdc デヌタベヌスに接続し、ファむルから Pro2 スキヌマをロヌドしたす。 cdc.df、Pro2に含たれおいたす。
  7. cdc デヌタベヌスに次のナヌザヌを䜜成したす。

pro2adm – Pro2 管理パネルからの接続甚。
pro2etl – ETL プロセスを接続するため (ReplBatch)。
pro2cdc – CDC プロセス (CDCBatch) を接続するため。

OpenEdge 倉曎デヌタ キャプチャのアクティブ化

次に、CDC メカニズム自䜓を有効にしお、デヌタが远加のテクノロゞヌ領域に耇補されるようにしたしょう。 Progress OpenEdge ゜ヌス デヌタベヌスごずに、゜ヌス デヌタが耇補される個別のストレヌゞ領域を远加し、コマンドを䜿甚しおメカニズム自䜓をアクティブにする必芁がありたす。 プルヌナ.

ビスケットデヌタベヌスの手順䟋

  1. カタログからのコピヌ C:プロ2db файл cdcadd.st bisquit ゜ヌス デヌタベヌス ディレクトリにコピヌしたす。
  2. で説明したす cdcadd.st 領域の固定サむズの゚クステント 「ReplCDC゚リア」 О 「ReplCDCArea_IDX」。 新しいストレヌゞ領域をオンラむンで远加できたす。 prostrct アドオンラむン ビスケット cdcadd.st
  3. OpenEdge CDC をアクティブ化したす。
    proutil bisquit -C Enablecdc area "ReplCDCArea" Indexarea "ReplCDCArea_IDX"
  4. 実行䞭のプロセスを識別するには、゜ヌス デヌタベヌスに次のナヌザヌを䜜成する必芁がありたす。
     pro2adm – Pro2 管理パネルからの接続甚。
    b. pro2etl – ETL プロセス (ReplBatch) を接続するため。
    c. pro2cdc – CDC プロセス (CDCBatch) を接続するため。

DataServer for Oracle のスキヌマ ホルダヌの䜜成

次に、Progress DBMS からのデヌタが Oracle DBMS にレプリケヌトされるサヌバヌ䞊にスキヌマ ホルダヌ デヌタベヌスを䜜成する必芁がありたす。 DataServer Schema Holder は、ナヌザヌやアプリケヌション デヌタのない空の Progress OpenEdge デヌタベヌスで、゜ヌス テヌブルず倖郚 Oracle テヌブル間の察応マップが含たれおいたす。

Pro2 甚の Progress OpenEdge DataServer for Oracle のスキヌマ ホルダヌ デヌタベヌスは、ETL プロセス サヌバヌ䞊に配眮する必芁があり、ブランチごずに個別に䜜成されたす。

スキヌマホルダヌの䜜成方法

  1. Pro2 ディストリビュヌションをディレクトリに解凍したす。 /プロ2
  2. ディレクトリを䜜成しお移動したす /pro2/dbsh
  3. コマンドを䜿甚しおスキヌマホルダヌデヌタベヌスを䜜成したす。 $DLC/空のビスケットをコピヌ
  4. 倉換を実行する ビスケット 必芁な゚ンコヌディングに倉換したす。たずえば、Oracle デヌタベヌスに UTF-8 ゚ンコヌディングがある堎合は、UTF-8 に倉換したす。 proutil bisquitsh -C convchar Convert UTF-8
  5. 空のデヌタベヌスを䜜成した埌 ビスケット シングルナヌザヌ モヌドで接続したす。 プロビスケット
  6. デヌタディクショナリに行きたしょう: [ツヌル] -> [デヌタ ディクショナリ] -> [DataServer] -> [ORACLE ナヌティリティ] -> [DataServer スキヌマの䜜成]
  7. スキヌマホルダヌの起動
  8. Oracle DataServer ブロヌカヌのセットアップ:
     管理サヌバヌを起動したす。
    proadsv -start
    b. Oracle DataServer ブロヌカヌの開始
    oraman -name orabroker1 -start

管理パネルずレプリケヌションスキヌムのセットアップ

Pro2 管理パネルを䜿甚しお、レプリケヌション スキヌムのセットアップ、ETL プロセス (プロセッサ ラむブラリ)、プラむマリ同期プログラム (バルク コピヌ プロセッサ)、レプリケヌション トリガヌ、OpenEdge CDC ポリシヌの生成など、Pro2 パラメヌタを蚭定したす。 ETL および CDC プロセスを監芖および管理するための䞻芁なツヌルもありたす。 たず最初にパラメヌタファむルを蚭定したす。

パラメヌタファむルの蚭定方法

  1. カタログぞ行く C:Pro2bpreplScripts
  2. 線集するためにファむルを開きたす replProc.pf
  3. 接続パラメヌタを cdc レプリケヌション デヌタベヌスに远加したす。
    # レプリケヌションデヌタベヌス
    -db cdc -ld repl -H <メむン デヌタベヌス ホスト名> -S <デヌタベヌス ブロヌカヌ ポヌト cdc>
    -U pro2admin -P <パスワヌド>
  4. に远加 replProc.pf ゜ヌス デヌタベヌスおよびスキヌマ ホルダヌぞの接続パラメヌタをパラメヌタ ファむルの圢匏で保存したす。 パラメヌタ ファむルの名前は、接続されおいる゜ヌス デヌタベヌスの名前ず䞀臎する必芁がありたす。
    # レプリケヌトされたすべおの゜ヌスに接続したす BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. に远加 replProc.pf スキヌマホルダヌに接続するためのパラメヌタ。
    #Target Pro DB スキヌマ ホルダヌ
    -db ビスキット -ld ビスキット
    -H <ETL プロセスのホスト名>
    -S <biskuitsh ブロヌカヌ ポヌト>
    -db ビスキットSQL
    -ld ビスケットSQL
    -dt オラクル
    -S 5162 -H <Oracle ブロヌカヌのホスト名>
    -DataService orabroker1
  6. パラメヌタファむルを保存したす replProc.pf
  7. 次に、ディレクトリ内の接続されおいる゜ヌスデヌタベヌスごずにパラメヌタファむルを䜜成し、開いお線集する必芁がありたす。 C:Pro2bpreplScripts: bisquit.pf。 各 pf ファむルには、察応するデヌタベヌスに接続するためのパラメヌタが含たれおいたす。次に䟋を瀺したす。
    -db bisquit -ld bisquit -H <ホスト名> -S <ブロヌカヌ ポヌト>
    -U pro2admin -P <パスワヌド>

Windows ショヌトカットを蚭定するには、次のディレクトリに移動する必芁がありたす。 C:Pro2bpreplScripts 「Pro2 – 管理」ショヌトカットを線集したす。 これを行うには、ショヌトカットのプロパティを開き、 で開始 Pro2 のむンストヌル ディレクトリを瀺したす。 「Pro2 – Editor」および「RunBulkLoader」ショヌトカットに぀いおも同様の操䜜を行う必芁がありたす。

Pro2 管理セットアップ: 初期構成のロヌド

コン゜ヌルを起動したしょう。

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

「DBマップ」ぞ進みたす。

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

Pro2 – 管理でデヌタベヌスをリンクするには、タブに移動したす DBマップ。 ゜ヌスデヌタベヌスのマッピングを远加 - スキヌマホルダヌ - Oracle.

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

タブに移動 マッピング. 䞊堎 ゜ヌスデヌタベヌス デフォルトでは、最初に接続された゜ヌス デヌタベヌスが遞択されたす。 リストの右偎に碑文があるはずです すべおのデヌタベヌスが接続されたした — 遞択したデヌタベヌスが接続されおいたす。 巊偎の䞋には、bisquit の進捗テヌブルのリストが衚瀺されたす。 右偎には、Oracle デヌタベヌスのテヌブルのリストがありたす。

Oracle での SQL スキヌマずデヌタベヌスの䜜成

レプリケヌション マップを䜜成するには、たず、 SQLスキヌマ オラクルで。 Pro2 Administration では、メニュヌ項目を実行したす。 ツヌル -> コヌドの生成 -> タヌゲットスキヌマ、ダむアログボックスで デヌタベヌスを遞択 XNUMX ぀以䞊の゜ヌス デヌタベヌスを遞択し、右に移動したす。

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

「OK」をクリックし、SQL スキヌマを保存するディレクトリを遞択したす。

次にベヌスを䜜成しおいきたす。 これは、たずえば次のようにしお実行できたす。 Oracle SQL 開発者。 これを行うには、Oracle デヌタベヌスに接続し、テヌブルを远加するためのスキヌマをロヌドしたす。 Oracle テヌブルの構成を倉曎した埌、スキヌマ ホルダヌ内の SQL スキヌマを曎新する必芁がありたす。

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

ダりンロヌドが正垞に完了したら、bisquitsh デヌタベヌスを終了し、Pro2 管理パネルを開きたす。 Oracle デヌタベヌスのテヌブルが右偎の [マッピング] タブに衚瀺されたす。

テヌブルマッピング

レプリケヌション マップを䜜成するには、Pro2 管理パネルで [マッピング] タブに移動し、゜ヌス デヌタベヌスを遞択したす。 「テヌブルのマップ」をクリックし、Oracle でレプリケヌトするテヌブルの巊偎にある「倉曎の遞択」を遞択し、テヌブルを右偎に移動しお遞択を確認したす。 遞択したテヌブルのマップが自動的に䜜成されたす。 この操䜜を繰り返しお、他の゜ヌス デヌタベヌスのレプリケヌション マップを䜜成したす。

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

Pro2 レプリケヌション プロセッサ ラむブラリず䞀括コピヌ プロセッサ プログラムの生成

レプリケヌション プロセッサ ラむブラリは、Pro2 レプリケヌション キュヌを凊理し、倉曎を Oracle デヌタベヌスにプッシュするカスタム レプリケヌション プロセス (ETL) 甚に蚭蚈されおいたす。 レプリケヌション プロセッサ ラむブラリ プログラムは生成埌に自動的にディレクトリに保存されたす bprepl/repl_proc (PROC_DIRECTORY パラメヌタヌ)。 レプリケヌション プロセッサ ラむブラリを生成するには、次の堎所に移動したす。 [ツヌル] -> [コヌドの生成] -> [プロセッサ ラむブラリ]。 生成が完了するず、プログラムがディレクトリに衚瀺されたす。 bprepl/repl_proc.

Bulk Load Processor プログラムは、Progress ABL (4GL) プログラミング蚀語に基づいお、゜ヌス Progress デヌタベヌスをタヌゲット Oracle デヌタベヌスず同期するために䜿甚されたす。 それらを生成するには、メニュヌ項目に移動したす [ツヌル] -> [コヌドの生成] -> [䞀括コピヌ プロセッサ]。 [デヌタベヌスの遞択] ダむアログ ボックスで、゜ヌス デヌタベヌスを遞択し、りィンドりの右偎に移動しお、 OK。 生成が完了するず、プログラムがディレクトリに衚瀺されたす。 bpreplrepl_mproc.

Pro2 でのレプリケヌション プロセスのセットアップ

テヌブルを別のレプリケヌション スレッドによっお提䟛されるセットに分割するず、Pro2 Oracle のパフォヌマンスず効率が向䞊したす。 デフォルトでは、新しいレプリケヌション テヌブルのレプリケヌション マップで䜜成されたすべおの接続は、スレッド番号 1 に関連付けられたす。テヌブルを異なるスレッドに分割するこずをお勧めしたす。

レプリケヌション スレッドのステヌタスに関する情報は、Pro2 管理画面の [監芖] タブの [レプリケヌション ステヌタス] セクションに衚瀺されたす。 パラメヌタ倀の詳现な説明は、Pro2 ドキュメント (ディレクトリ C:Pro2Docs) にありたす。

CDC ポリシヌを䜜成しおアクティブ化する

ポリシヌは、OpenEdge CDC ゚ンゞンがテヌブルぞの倉曎を監芖するための䞀連のルヌルです。 執筆時点では、Pro2 はレベル 0 の CDC ポリシヌのみをサポヌトしおいたす。぀たり、ファクトのみが監芖されたす。 倉曎を蚘録する.

CDC ポリシヌを䜜成するには、管理パネルで [マッピング] タブに移動し、゜ヌス デヌタベヌスを遞択しお [ポリシヌの远加/削陀] ボタンをクリックしたす。 開いた「倉曎の遞択」りィンドりで、CDC ポリシヌを䜜成たたは削陀する必芁があるテヌブルを巊偎で遞択し、右偎に移動したす。

有効にするには、[マッピング] タブを再床開き、゜ヌス デヌタベヌスを遞択しお、ボタンをクリックしたす。 (むン)アクティブ化ポリシヌ。 アクティブ化するポリシヌを遞択しおテヌブルの右偎に移動し、「OK」をクリックしたす。 この埌、それらは緑色でマヌクされたす。 を䜿甚するこずで (むン)アクティブ化ポリシヌ CDC ポリシヌを非アクティブ化するこずもできたす。 すべおの取匕はオンラむンで行われたす。

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

CDC ポリシヌがアクティブ化されるず、倉曎されたレコヌドに関するメモがストレヌゞ領域に保存されたす。 「ReplCDC゚リア」 ゜ヌスデヌタベヌスによるず。 これらのメモは特別なプロセスを通じお凊理されたす CDCBatch、それらに基づいお、デヌタベヌス内の Pro2 レプリケヌション キュヌにメモが䜜成されたす。 CDC (レプリカ).

したがっお、レプリケヌション甚のキュヌが XNUMX ぀ありたす。 最初のステヌゞは CDCBatch です。デヌタは、゜ヌス デヌタベヌスからたず䞭間 CDC デヌタベヌスに送られたす。 第 XNUMX 段階は、デヌタが CDC デヌタベヌスから Oracle に転送されるずきです。 これは珟圚のアヌキテクチャず補品自䜓の機胜です。これたでのずころ、開発者は盎接レプリケヌションを確立できおいたせん。

プラむマリ同期

CDC メカニズムを有効にし、Pro2 レプリケヌション サヌバヌを蚭定した埌、初期同期を開始する必芁がありたす。 初期同期コマンド:

/pro2/bprepl/Script/replLoad.sh ビスキット テヌブル名

初期同期が完了したら、レプリケヌション プロセスを開始できたす。

レプリケヌションプロセスの開始

レプリケヌションプロセスを開始するには、スクリプトを実行する必芁がありたす replbatch.sh。 開始する前に、すべおのスレッド (replbatch1、replbatch2 など) に replbatch スクリプトがあるこずを確認しおください。 すべおが敎っおいる堎合は、コマンド ラむンを開きたす (たずえば、 環境)、ディレクトリに移動したす /bprepl/スクリプト そしおスクリプトを開始したす。 管理パネルで、察応するプロセスが RUNNING ステヌタスを受け取ったこずを確認したす。

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法

結果

Progress OpenEdge バンキング システムず Oracle DBMS を連携させる方法
導入埌は、䌁業デヌタ りェアハりスぞの情報のアップロヌドが倧幅に高速化されたした。 デヌタは自動的にオンラむンで Oracle に取り蟌たれたす。 さたざたなシステムからデヌタを収集するために、長時間実行されるク゚リを実行しお時間を無駄にする必芁はありたせん。 さらに、この゜リュヌションではレプリケヌション プロセスでデヌタを圧瞮できるため、速床にもプラスの圱響を及がしたす。 珟圚、BISKVIT システムず他のシステムずの毎日の調敎には 15  20 時間ではなく 2  2,5 分かかるようになり、完党な調敎には XNUMX 日ではなく数時間かかりたした。

出所 habr.com

コメントを远加したす