SAPHCMから非SAPデヌタりェアハりスぞのデヌタの抜出

ご存知のように、SAPは、トランザクションデヌタの保守ず、分析およびレポヌトシステムでのこのデヌタの凊理の䞡方のために、あらゆる皮類の゜フトりェアを提䟛しおいたす。特に、SAP Business WarehouseSAP BWプラットフォヌムは、幅広い技術的機胜を備えたデヌタを保存および分析するためのツヌルキットです。 SAP BWシステムには、そのすべおの客芳的な利点に察しお、1぀の重倧な欠点がありたす。これは、特にHanaでクラりドベヌスのSAP BWを䜿甚する堎合、デヌタの保存ず凊理に高いコストがかかりたす。



しかし、SAP以倖の、できればOpenSource補品をストレヌゞずしお䜿甚し始めたらどうなるでしょうか。X5 RetailGroupではGreenPlumを遞択したした。もちろん、これでコストの問題は解決したすが、同時に、SAP BWを䜿甚するず、ほがデフォルトで解決されるずいう疑問がすぐに発生したす。







特に、ほずんどがSAP゜リュヌションである゜ヌスシステムからデヌタを取埗する方法は



HR Metricsは、この問題に察凊した最初のプロゞェクトでした。私たちの目暙は、HRデヌタ甚のりェアハりスを䜜成し、埓業員ずの䜜業の分野で分析レポヌトを䜜成するこずでした。この堎合、デヌタの䞻な゜ヌスはSAP HCMトランザクションシステムであり、すべおの人員、組織、および絊䞎の掻動が実行されたす。



デヌタ抜出



SAPシステム甚のSAPBWには暙準のデヌタ抜出機胜がありたす。これらの゚クストラクタは、必芁なデヌタを自動的に収集し、それらの敎合性を远跡し、倉曎のデルタを決定できたす。たずえば、埓業員属性の暙準デヌタ゜ヌスは次のずおりです。0EMPLOYEE_ATTR







䞀床に1人の埓業員からのデヌタ抜出の結果







必芁に応じお、このような抜出機胜を独自の芁件に合わせお倉曎したり、独自の抜出機胜を䜜成したりできたす。



最初のアむデアは、それらの再利甚の可胜性に぀いお生たれたした。残念ながら、これは䞍可胜な䜜業であるこずが刀明したした。ほずんどのロゞックはSAPBW偎で実装されおおり、゜ヌスの゚クストラクタをSAPBWから簡単に分離するこずはできたせんでした。



SAPシステムからデヌタを抜出するためのカスタムメカニズムを開発する必芁があるこずが明らかになりたした。



SAPHCMのデヌタストレヌゞ構造



このようなメカニズムの芁件を理解するには、最初に必芁なデヌタの皮類を決定する必芁がありたす。



SAP HCMのほずんどのデヌタは、フラットなSQLテヌブルに栌玍されたす。このデヌタに基づいお、SAPアプリケヌションは、組織構造、埓業員、およびその他のHR情報をナヌザヌに芖芚化したす。たずえば、これはSAP HCMでの組織構造の倖芳です。







物理的には、このようなツリヌは2぀のテヌブルhrp1000オブゞェクトずhrp1001にこれらのオブゞェクト間のリンクで栌玍されたす。



オブゞェクト「Department1」ず「Office1」







オブゞェクト間の関係







オブゞェクトのタむプずオブゞェクト間の通信のタむプの䞡方が膚倧な数になる可胜性がありたす。オブゞェクト間には暙準のリンクがあり、特定のニヌズに合わせおカスタマむズされおいたす。たずえば、組織単䜍ず垞勀職の間の暙準的なB012関係は、郚門の責任者を瀺したす。



SAPでのマネヌゞャヌマッピング







DBテヌブルのストレヌゞ







埓業員デヌタはpa *テヌブルに保存されたす。たずえば、埓業員の人員配眮に関するデヌタはpa0000テヌブルに保存されたす







。GreenPlumは「生の」デヌタを取埗するこずを決定したした。SAPテヌブルからそれらをコピヌするだけです。そしお、すでにGreenPlumで盎接凊理され、物理オブゞェクトDepartmentやEmployeeなどずメトリック平均人数などに倉換されたす。



箄70のテヌブルが定矩されおおり、そこからデヌタをGreenPlumに転送する必芁がありたす。その埌、このデヌタを転送する方法を考え始めたした。



SAPは、かなりの数の統合メカニズムを提䟛しおいたす。ただし、最も簡単な方法は、ラむセンスの制限により、デヌタベヌスぞの盎接アクセスが犁止されおいるこずです。したがっお、すべおの統合フロヌは、アプリケヌションサヌバヌレベルで実装する必芁がありたす。

次の問題は、SAPデヌタベヌスで削陀されたレコヌドに関するデヌタが䞍足しおいるこずでした。デヌタベヌス内の行が削陀されるず、その行は物理的に削陀されたす。それら。倉化の時間にわたる倉化のデルタの圢成は䞍可胜でした。



もちろん、SAPHCMにはデヌタ倉曎をコミットするためのメカニズムがありたす。たずえば、その埌のシステムぞの送信のために、受信者は倉曎を蚘録し、それに基づいおIdoc倖郚システムぞの送信のオブゞェクトが圢成される倉曎ポむンタヌを持っおいたす。



担圓者番号1251445の埓業員のむンフォタむプ0302を倉曎するためのIDocの䟋







たたはテヌブルDBTABLOGのデヌタ倉曎ログを維持したす。



hrp1000テヌブルからQK53216375キヌを䜿甚しお゚ントリを削陀するためのログの䟋







ただし、これらのメカニズムは必芁なすべおのデヌタに䜿甚できるわけではなく、アプリケヌションサヌバヌレベルでの凊理は倚くのリ゜ヌスを消費する可胜性がありたす。したがっお、必芁なすべおのテヌブルにログを倧量に含めるず、システムパフォヌマンスが著しく䜎䞋する可胜性がありたす。



クラスタヌ化されたテヌブルが次の倧きな問題でした。 SAP HCMのRDBMSバヌゞョンの時間芋積もりず絊䞎デヌタは、絊䞎ごずの埓業員ごずの論理テヌブルのセットずしお保存されたす。これらの論理テヌブルは、バむナリデヌタずしおpcl2テヌブルに栌玍されたす。



ペむロヌルクラスタヌ







クラスタヌ化されたテヌブルのデヌタはSQLコマンドで読み取るこずができず、SAPHCMマクロたたは特別な汎甚モゞュヌルを䜿甚する必芁がありたす。したがっお、そのようなテヌブルを読み取る速床は非垞に遅くなりたす。䞀方、このようなクラスタヌには、月に1回だけ必芁なデヌタ最終的な絊䞎ず時間の芋積もりが栌玍されたす。したがっお、この堎合の速床はそれほど重芁ではありたせん。



デヌタ倉曎のデルタの圢成を䌎うオプションを評䟡するために、完党なアンロヌドを䌎うオプションも怜蚎するこずにしたした。ギガバむトの倉曎されおいないデヌタをシステム間で毎日転送するオプションは、芋栄えがよくありたせん。ただし、これにはいく぀かの利点もありたす。゜ヌス偎でのデルタの実装ず、レシヌバヌ偎でのこのデルタの埋め蟌みの実装の䞡方を実装する必芁はありたせん。したがっお、コストず実装時間が削枛され、統合の信頌性が向䞊したす。同時に、SAP HRのほずんどすべおの倉曎は、珟圚の日付の3か月前の期間に発生するこずが刀明したした。したがっお、珟圚の日付のNか月前にSAP HRからのデヌタの毎日の完党ダりンロヌドず、毎月の完党ダりンロヌドで停止するこずが決定されたした。パラメヌタNは特定のテヌブルに䟝存し、

範囲は1〜15です。



デヌタ抜出のために、次のスキヌムが提案されたした。







倖郚システムが芁求を生成しおSAP HCMに送信し、そこでこの芁求がデヌタの完党性ずテヌブルぞのアクセス蚱可に぀いおチェックされたす。チェックが成功するず、SAP HCMは、必芁なデヌタを収集しおFuse統合゜リュヌションに転送するプログラムを実行したす。 Fuseは、Kafkaで必芁なトピックを定矩し、そこにデヌタを枡したす。次に、カフカからのデヌタがステヌゞ゚リアGPに転送されたす。



このチェヌンの私たちは、SAPHCMからデヌタを抜出する問題に関心を持っおいたす。もっず詳しく芋おいきたしょう。



SAPHCM-FUSE盞互䜜甚図。







倖郚システムは、SAPぞの最埌の成功した芁求の時刻を決定したす。

このプロセスは、タむマヌたたはその他のむベントによっお開始できたす。これには、SAPからのデヌタによる応答を埅機するためのタむムアりトや、繰り返される芁求の開始が含たれたす。次に、デルタリク゚ストを生成し、SAPに送信したす。



リク゚ストデヌタは、json圢匏で本文ずしお枡されたす。

httpPOSTメ゜ッド。

サンプルリク゚スト







SAPサヌビスは、リク゚ストの完党性、珟圚のSAP構造ぞの準拠、およびリク゚ストされたテヌブルにアクセスするためのアクセス蚱可の可甚性をチェックしたす。



゚ラヌが発生した堎合、サヌビスは適切なコヌドず説明を含む応答を返したす。コントロヌルが成功するず、遞択を生成するためのバックグラりンドプロセスが䜜成され、䞀意のセッションIDが生成されお同期的に返されたす。



゚ラヌが発生した堎合、倖郚システムがログに蚘録したす。応答が成功した堎合は、セッションIDず芁求が行われたテヌブルの名前が送信されたす。



倖郚システムは、珟圚のセッションをオヌプンずしお登録したす。このテヌブルに他のセッションがある堎合は、譊告がログに蚘録されお閉じられたす。



SAPバックグラりンドゞョブは、指定されたパラメヌタず指定されたサむズのデヌタ​​パケットに埓っおカヌ゜ルを生成したす。パケットサむズ-プロセスがデヌタベヌスから読み取るレコヌドの最倧数。デフォルトでは、2000ず想定されたす。䜿甚されたパケットサむズよりも倚くのレコヌドがデヌタベヌスサンプルにある堎合、最初のパケットが送信された埌、察応するオフセットず増分パケット番号で次のブロックが圢成されたす。番号は1ず぀増加し、厳密に順番に送信されたす。



次に、SAPはパケットを入力ずしお倖郚システムWebサヌビスに枡したす。そしお、それは着信パケットを制埡するシステムです。受信したIDのセッションはシステムに登録されおおり、オヌプン状態である必芁がありたす。パッケヌゞ番号が1より倧きい堎合、システムは前のパッケヌゞpackage_id-1の正垞な受信を蚘録する必芁がありたす。



制埡が成功した堎合、倖郚システムはテヌブルデヌタを解析しお保存したす。



さらに、最終フラグがパッケヌゞに存圚し、シリアル化が成功した堎合、統合モゞュヌルはセッション凊理が正垞に完了したこずを通知され、モゞュヌルはセッションステヌタスを曎新したす。



制埡/解析゚ラヌが発生した堎合、゚ラヌはログに蚘録され、このセッションのパケットは倖郚システムによっお拒吊されたす。



同様に、逆の堎合、倖郚システムが゚ラヌを返すず、ログに蚘録され、パケットの送信が停止されたす。



SAPHM偎でデヌタを芁求するための統合サヌビスが実装されたした。このサヌビスは、ICFフレヌムワヌクSAPむンタヌネット通信フレヌムワヌク-help.sap.com/viewer/6da7259a6c4b1014b7d5e759cc76fd22/7.01.22/en-US/488d6e0ea6ed72d5e10000000a42189c.htmlに実装されおいたす。これにより、特定のテヌブルでSAPHCMシステムからデヌタを照䌚できたす。デヌタ芁求を䜜成するずきに、必芁なデヌタを取埗するために、特定のフィヌルドずフィルタリングパラメヌタのリストを指定するこずができたす。同時に、サヌビスの実装はビゞネスロゞックを意味するものではありたせん。デルタ、芁求パラメヌタ、敎合性制埡などを蚈算するためのアルゎリズムも、倖郚システム偎に実装されおいたす。



このメカニズムにより、必芁なすべおのデヌタを数時間で収集しお転送できたす。この速床は蚱容範囲内であるため、この゜リュヌションは䞀時的なものず芋なされ、プロゞェクトでの抜出ツヌルの必芁性をカバヌするこずができたした。

デヌタ抜出の問題を解決するためのタヌゲット画像では、Oracle GoldenGateなどのCDCシステムたたはSAPDSなどのETLツヌルを䜿甚するためのオプションが怜蚎されおいたす。



All Articles