KÄ zinÄms, SAP piedÄvÄ pilnu programmatÅ«ras klÄstu gan darÄ«jumu datu uzturÄÅ”anai, gan Å”o datu apstrÄdei analÄ«zes un atskaiÅ”u sistÄmÄs. KonkrÄti, SAP Business Warehouse (SAP BW) platforma ir rÄ«ku komplekts datu glabÄÅ”anai un analÄ«zei ar plaÅ”Äm tehniskÄm iespÄjÄm. Neskatoties uz visÄm objektÄ«vajÄm priekÅ”rocÄ«bÄm, SAP BW sistÄmai ir viens bÅ«tisks trÅ«kums. TÄs ir augstas datu glabÄÅ”anas un apstrÄdes izmaksas, kas ir Ä«paÅ”i pamanÄmas, ja vietnÄ Hana izmantojat mÄkoÅa bÄzes SAP BW.
Ko darÄ«t, ja kÄ krÄtuvi sÄkat izmantot kÄdu, kas nav SAP, un, vÄlams, atvÄrtÄ koda produktu? MÄs, X5 Retail Group, izvÄlÄjÄmies GreenPlum. Tas, protams, atrisina izmaksu jautÄjumu, taÄu tajÄ paÅ”Ä laikÄ uzreiz rodas problÄmas, kuras tika atrisinÄtas gandrÄ«z pÄc noklusÄjuma, izmantojot SAP BW.
KonkrÄti, kÄ izgÅ«t datus no avota sistÄmÄm, kas galvenokÄrt ir SAP risinÄjumi?
HR Metrics bija pirmais projekts, kurÄ bija nepiecieÅ”ams atrisinÄt Å”o problÄmu. MÅ«su mÄrÄ·is bija izveidot HR datu repozitoriju un veidot analÄ«tiskos pÄrskatus darba ar darbiniekiem jomÄ. Å ajÄ gadÄ«jumÄ galvenais datu avots ir SAP HCM darÄ«jumu sistÄma, kurÄ tiek veiktas visas personÄla, organizatoriskÄs un algu darbÄ«bas.
Datu ieguve
SAP BW ir standarta datu ekstraktori SAP sistÄmÄm. Å ie ekstraktori var automÄtiski savÄkt nepiecieÅ”amos datus, uzraudzÄ«t to integritÄti un noteikt izmaiÅu deltas. Å eit, piemÄram, ir standarta datu avots darbinieku atribÅ«tiem 0EMPLOYEE_ATTR:
Viena darbinieka datu iegÅ«Å”anas rezultÄts no tÄ:
Ja nepiecieÅ”ams, Å”Ädu nosÅ«cÄju var pÄrveidot atbilstoÅ”i savÄm prasÄ«bÄm vai izveidot savu nosÅ«cÄju.
PirmÄ ideja, kas radÄs, bija iespÄja tos izmantot atkÄrtoti. DiemžÄl tas izrÄdÄ«jÄs neiespÄjams uzdevums. LielÄkÄ daļa loÄ£ikas ir ieviesta SAP BW pusÄ, un nebija iespÄjams nesÄpÄ«gi atdalÄ«t nosÅ«cÄju avotÄ no SAP BW.
Kļuva skaidrs, ka mums bÅ«s jÄizstrÄdÄ savs mehÄnisms datu iegÅ«Å”anai no SAP sistÄmÄm.
Datu uzglabÄÅ”anas struktÅ«ra SAP HCM
Lai saprastu prasÄ«bas Å”Ädam mehÄnismam, mums vispirms ir jÄnosaka, kÄdi dati mums ir nepiecieÅ”ami.
LielÄkÄ daļa datu SAP HCM tiek glabÄti plakanÄs SQL tabulÄs. Pamatojoties uz Å”iem datiem, SAP lietojumprogrammas lietotÄjam vizualizÄ organizatoriskÄs struktÅ«ras, darbiniekus un citu personÄla informÄciju. PiemÄram, Å”Ädi izskatÄs organizatoriskÄ struktÅ«ra SAP HCM:
Fiziski Å”Äds koks tiek glabÄts divÄs tabulÄs - hrp1000 objektos un hrp1001 savienojumi starp Å”iem objektiem.
Objekti ā1. nodaļaā un ā1. birojsā:
Attiecības starp objektiem:
Var bÅ«t ļoti daudz abu veidu objektu un savienojumu veidu starp tiem. Ir gan standarta savienojumi starp objektiem, gan pielÄgoti jÅ«su Ä«paÅ”ajÄm vajadzÄ«bÄm. PiemÄram, standarta B012 attiecÄ«bas starp organizÄcijas struktÅ«rvienÄ«bu un pilnas slodzes amatu norÄda nodaļas vadÄ«tÄju.
PÄrziÅa displejs SAP:
UzglabÄÅ”ana datu bÄzes tabulÄ:
Darbinieku dati tiek glabÄti pa* tabulÄs. PiemÄram, dati par personÄla notikumiem darbiniekam tiek glabÄti tabulÄ pa0000
NolÄmÄm, ka GreenPlum Åems āneapstrÄdÄtusā datus, t.i. vienkÄrÅ”i nokopÄjiet tos no SAP tabulÄm. Un tieÅ”i GreenPlum tie tiks apstrÄdÄti un pÄrvÄrsti fiziskos objektos (piemÄram, departamentÄ vai darbiniekÄ) un metrikÄ (piemÄram, vidÄjais darbinieku skaits).
Tika definÄtas aptuveni 70 tabulas, no kurÄm dati jÄpÄrsÅ«ta uz GreenPlum. PÄc tam mÄs sÄkÄm izstrÄdÄt metodi Å”o datu pÄrsÅ«tÄ«Å”anai.
SAP piedÄvÄ diezgan lielu skaitu integrÄcijas mehÄnismu. Bet vienkÄrÅ”Äkais veids ir, ka tieÅ”a piekļuve datubÄzei ir aizliegta licencÄÅ”anas ierobežojumu dÄļ. TÄdÄjÄdi visas integrÄcijas plÅ«smas ir jÄievieÅ” lietojumprogrammu servera lÄ«menÄ«.
NÄkamÄ problÄma bija datu trÅ«kums par dzÄstiem ierakstiem SAP datu bÄzÄ. DzÄÅ”ot rindu datubÄzÄ, tÄ tiek fiziski izdzÄsta. Tie. pÄrmaiÅu deltas veidoÅ”anÄs, pamatojoties uz pÄrmaiÅu laiku, nebija iespÄjama.
Protams, SAP HCM ir datu izmaiÅu reÄ£istrÄÅ”anas mehÄnismi. PiemÄram, turpmÄkai pÄrsÅ«tÄ«Å”anai uz adresÄtu sistÄmÄm ir izmaiÅu norÄdes, kas fiksÄ visas izmaiÅas un uz kuru pamata tiek veidots Idoc (objekts pÄrsÅ«tÄ«Å”anai uz ÄrÄjÄm sistÄmÄm).
IDoc piemÄrs informÄcijas tipa 0302 maiÅai darbiniekam ar personÄla numuru 1251445:
Vai datu izmaiÅu žurnÄlu saglabÄÅ”ana tabulÄ DBTABLOG.
ŽurnÄla piemÄrs ieraksta dzÄÅ”anai ar atslÄgu QK53216375 no tabulas hrp1000:
Bet Å”ie mehÄnismi nav pieejami visiem nepiecieÅ”amajiem datiem, un to apstrÄde lietojumprogrammu servera lÄ«menÄ« var patÄrÄt diezgan daudz resursu. TÄpÄc masveida reÄ£istrÄÅ”anas iespÄjoÅ”ana visÄs nepiecieÅ”amajÄs tabulÄs var izraisÄ«t ievÄrojamu sistÄmas veiktspÄjas pasliktinÄÅ”anos.
NÄkamÄ galvenÄ problÄma bija klasteru tabulas. Laika aprÄÄ·inu un algu dati SAP HCM RDBMS versijÄ tiek glabÄti kÄ loÄ£isku tabulu kopa katram darbiniekam katram aprÄÄ·inam. Å Ä«s loÄ£iskÄs tabulas tiek saglabÄtas kÄ binÄrie dati tabulÄ pcl2.
Algu kopa:
Datus no klasterizÄtÄm tabulÄm nevar uzskatÄ«t par SQL komandu, bet tiem ir jÄizmanto SAP HCM makro vai Ä«paÅ”i funkciju moduļi. AttiecÄ«gi Å”Ädu tabulu lasÄ«Å”anas Ätrums bÅ«s diezgan zems. SavukÄrt Å”Ädos klasteros tiek glabÄti dati, kas nepiecieÅ”ami tikai reizi mÄnesÄ« ā galÄ«gais algu un laika aprÄÄ·ins. TÄtad Ätrums Å”ajÄ gadÄ«jumÄ nav tik kritisks.
IzvÄrtÄjot datu izmaiÅu delta veidoÅ”anas iespÄjas, nolÄmÄm apsvÄrt arÄ« pilnas izkrauÅ”anas iespÄju. IespÄja katru dienu pÄrsÅ«tÄ«t gigabaitus nemainÄ«tu datu starp sistÄmÄm var neizskatÄ«ties labi. TomÄr tam ir arÄ« vairÄkas priekÅ”rocÄ«bas - nav nepiecieÅ”ams gan ieviest delta avota pusÄ, gan Ä«stenot Ŕīs delta iegulÅ”anu uztvÄrÄja pusÄ. AttiecÄ«gi tiek samazinÄtas izmaksas un ievieÅ”anas laiks, kÄ arÄ« palielinÄs integrÄcijas uzticamÄ«ba. Vienlaikus tika noteikts, ka gandrÄ«z visas SAP HR izmaiÅas notiek trÄ«s mÄneÅ”u laikÄ pirms paÅ”reizÄjÄ datuma. TÄdÄjÄdi tika nolemts izvÄlÄties ikdienas pilnu datu lejupielÄdi no SAP HR N mÄneÅ”us pirms paÅ”reizÄjÄ datuma un ikmÄneÅ”a pilnu lejupielÄdi. N parametrs ir atkarÄ«gs no konkrÄtÄs tabulas
un svÄrstÄs no 1 lÄ«dz 15.
Datu ieguvei tika piedÄvÄta Å”Äda shÄma:
ÄrÄjÄ sistÄma Ä£enerÄ pieprasÄ«jumu un nosÅ«ta to SAP HCM, kur Å”is pieprasÄ«jums tiek pÄrbaudÄ«ts attiecÄ«bÄ uz datu pilnÄ«gumu un atļaujÄm piekļūt tabulÄm. Ja pÄrbaude ir veiksmÄ«ga, SAP HCM palaiž programmu, kas apkopo nepiecieÅ”amos datus un pÄrsÅ«ta tos uz Fuse integrÄcijas risinÄjumu. Fuse nosaka nepiecieÅ”amo tÄmu KafkÄ un pÄrsÅ«ta datus uz turieni. PÄc tam Kafkas dati tiek pÄrsÅ«tÄ«ti uz Stage Area GP.
Å ajÄ Ä·ÄdÄ mÅ«s interesÄ jautÄjums par datu ieguvi no SAP HCM. ApskatÄ«sim to sÄ«kÄk.
SAP HCM-FUSE mijiedarbības diagramma.
ÄrÄjÄ sistÄma nosaka pÄdÄjÄ veiksmÄ«gÄ pieprasÄ«juma laiku SAP.
Procesu var palaist taimeris vai cits notikums, tostarp iestatÄ«t taimautu, lai gaidÄ«tu atbildi ar datiem no SAP un sÄktu atkÄrtotu pieprasÄ«jumu. PÄc tam tas Ä£enerÄ delta pieprasÄ«jumu un nosÅ«ta to SAP.
PieprasÄ«juma dati tiek nosÅ«tÄ«ti pamattekstam json formÄtÄ.
Metode http: POST.
PieprasÄ«juma piemÄrs:
SAP pakalpojums uzrauga pieprasÄ«jumu pilnÄ«gumu, atbilstÄ«bu paÅ”reizÄjai SAP struktÅ«rai un piekļuves atļaujas pieejamÄ«bu pieprasÄ«tajai tabulai.
Kļūdu gadÄ«jumÄ pakalpojums atgriež atbildi ar atbilstoÅ”u kodu un aprakstu. Ja vadÄ«ba ir veiksmÄ«ga, tÄ izveido fona procesu, lai Ä£enerÄtu paraugu, Ä£enerÄ un sinhroni atgriež unikÄlu sesijas ID.
Kļūdas gadÄ«jumÄ ÄrÄjÄ sistÄma to ieraksta žurnÄlÄ. VeiksmÄ«gas atbildes gadÄ«jumÄ tas nosÅ«ta sesijas ID un tÄs tabulas nosaukumu, kurai tika veikts pieprasÄ«jums.
ÄrÄjÄ sistÄma reÄ£istrÄ paÅ”reizÄjo sesiju kÄ atvÄrtu. Ja Å”ai tabulai ir citas sesijas, tÄs tiek aizvÄrtas ar reÄ£istrÄtu brÄ«dinÄjumu.
SAP fona darbs Ä£enerÄ kursoru, pamatojoties uz norÄdÄ«tajiem parametriem un norÄdÄ«tÄ izmÄra datu paketi. Partijas lielums ir maksimÄlais ierakstu skaits, ko process nolasa no datu bÄzes. PÄc noklusÄjuma tiek pieÅemts, ka tas ir vienÄds ar 2000. Ja datu bÄzes izlasÄ ir vairÄk ierakstu nekÄ izmantotais paketes lielums, pÄc pirmÄs paketes pÄrsÅ«tÄ«Å”anas tiek veidots nÄkamais bloks ar atbilstoÅ”o nobÄ«di un palielinÄto paketes numuru. Skaitļi tiek palielinÄti par 1 un tiek nosÅ«tÄ«ti stingri secÄ«gi.
PÄc tam SAP nodod paketi kÄ ievadi ÄrÄjÄs sistÄmas tÄ«mekļa pakalpojumam. Un sistÄma kontrolÄ ienÄkoÅ”o paketi. Sesija ar saÅemto id ir jÄreÄ£istrÄ sistÄmÄ un tai jÄbÅ«t atvÄrtÄ statusÄ. Ja pakas numurs ir > 1, sistÄmai jÄreÄ£istrÄ veiksmÄ«ga iepriekÅ”ÄjÄs pakas saÅemÅ”ana (package_id-1).
Ja vadÄ«ba ir veiksmÄ«ga, ÄrÄjÄ sistÄma parsÄ un saglabÄ tabulas datus.
TurklÄt, ja pakotnÄ ir pÄdÄjais karodziÅÅ” un serializÄcija bija veiksmÄ«ga, integrÄcijas modulis tiek informÄts par veiksmÄ«gu sesijas apstrÄdes pabeigÅ”anu un modulis atjaunina sesijas statusu.
VadÄ«bas/parsÄÅ”anas kļūdas gadÄ«jumÄ kļūda tiek reÄ£istrÄta, un ÄrÄjÄ sistÄma noraidÄ«s Ŕīs sesijas paketes.
TÄpat pretÄjÄ gadÄ«jumÄ, kad ÄrÄjÄ sistÄma atgriež kļūdu, tÄ tiek reÄ£istrÄta un pakeÅ”u pÄrraide apstÄjas.
Lai pieprasÄ«tu datus SAP HŠ”M pusÄ, tika ieviests integrÄcijas pakalpojums. Pakalpojums ir ieviests uz ICF ietvara (SAP Internet Communication Framework -
Å is mehÄnisms ļauj apkopot un pÄrsÅ«tÄ«t visus nepiecieÅ”amos datus dažu stundu laikÄ. Å is Ätrums ir uz pieÅemama robežas, tÄpÄc mÄs uzskatÄm Å”o risinÄjumu par pagaidu risinÄjumu, kas ļÄva aizpildÄ«t vajadzÄ«bu pÄc ieguves rÄ«ka projektÄ.
MÄrÄ·a attÄlÄ, lai atrisinÄtu datu ieguves problÄmu, tiek pÄtÄ«tas iespÄjas izmantot CDC sistÄmas, piemÄram, Oracle Golden Gate vai ETL rÄ«kus, piemÄram, SAP DS.
Avots: www.habr.com