Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja

Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja

ETL komponenta skladišta podataka često se nalazi u sjeni samog skladišta i dobiva manje pažnje nego glavna baza podataka ili frontend komponenta, BI, izrada izvještaja. Ipak, s aspekta mehanike punjenja skladišta podacima, ETL igra ključnu ulogu i zahtijeva jednaku pažnju administratora kao i ostale komponente. Zovem se Aleksandar, trenutno administriram ETL u Rostelecomu i u ovom članku ću pokušati podijeliti nešto o tome s čime se suočava administrator jednog od najpoznatijih ETL sustava u velikom skladištu podataka kompanije Rostelecom.

Ako su poštovani čitatelji već u cjelini upoznati s našim projektom skladišta podataka i s proizvodom Informatica PowerCenter, mogu odmah preći na sljedeći odjeljak.

Prije nekoliko godina u Rostelecomu je sazrijela i počela se ostvarivati ideja jedinstvenog korporativnog skladišta podataka. Niz skladišta koja su rješavala posebne zadatke već je bio stvoren, ali broj scenarija je rastao, troškovi podrške su se također povećavali i postalo je jasno da je budućnost u centralizaciji. Arhitektonski, to skladište se sastoji od nekoliko slojeva, implementiranih na Hadoop i GreenPlum, pomoćne baze podataka, ETL mehanizmi i BI.

U tom smislu, zbog velikog broja teritorijalno raspoređenih, heterogenih izvora podataka, stvoren je poseban mehanizam za isporuku podataka, čiji rad upravlja Informatica. Kao rezultat toga, paketi s podacima dolaze u sučeljsko područje Hadoopa, nakon čega počinju procesi učitavanja podataka kroz slojeve skladišta, u Hadoop i GreenPlum, a njima upravlja takozvani upravljački mehanizam ETL, implementiran u Informatici. Tako, sustav Informatica je jedan od ključnih elemenata koji osiguravaju rad skladišta.

Detaljnije o našem skladištu bit će govoreno u jednom od sljedećih postova.

Informatica PowerCenter/Big Data Management se trenutno smatra vodećim softverom u području alata za integraciju podataka. To je proizvod američke tvrtke Informatica, koja je jedan od najjačih igrača u ETL (Extract Transform Load), upravljanju kvalitetom podataka, MDM (Master Data Management), ILM (Information Lifecycle Management) i ostalim.

Naš PowerCenter je integrirani aplikacijski poslužitelj Tomcat koji pokreće same Informatica aplikacije, koje implementiraju njene usluge:

Domena, to je u osnovi baza za sve ostalo, u okviru domene rade servisi, korisnici, GRID komponente.

Administrator Console, web alat za upravljanje i praćenje, osim Informatica Developer klijenta, osnovni alat za interakciju s proizvodom

MRS, Model Repository Service, skladište metapodataka, predstavlja sloj između baze u kojoj se metapodatki fizički pohranjuju i Informatica Developer klijenta, gdje se odvija razvoj. Repozitoriji pohranjuju i opis podataka i druge informacije, uključujući i informacije za brojne druge Informatica usluge, na primjer, raspored pokretanja zadataka (Schedules) ili podatke o nadzoru, kao i sets parametara aplikacija, koji omogućuju korištenje iste aplikacije za rad s različitim izvorima i odredištima podataka.

DIS, Data Integration Service, ovo je usluga u kojoj se odvijaju osnovni funkcionalni procesi, u njoj rade aplikacije i odvijaju se pokretanja Workflows-a (opis sekvenci mappings-a i njihovih interakcija) i Mappings-a (transformacija, blokova u kojima se odvijaju sama preuređenja, obrada podataka).

Konfiguracija GRID – to je u suštini varijanta izgradnje kompleksa korištenjem više poslužitelja, kada se opterećenje pokrenuto DIS-om distribuira među nodovima (tj. serverima unutar domene). U slučaju ove varijante, osim raspodjele opterećenja u DIS-u kroz dodatni sloj apstrakcije GRID-a, koji spaja više nodova, gdje DIS radi umjesto na konkretnoj jednoj nodu, mogu se također stvoriti dodatni rezervni primjerci MRS-a. Čak je moguće implementirati visoku dostupnost, kada se vanjski zahtjevi mogu ostvariti kroz rezervne nodove u slučaju otkaza glavne. Od ove varijante izgradnje zasad smo se odrekli.

Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja
Informatica PowerCenter, shematski

U prvim fazama rada unutar lanca opskrbe podacima redovito su se javljali problemi, neki od njih zbog tada nestabilnog rada Informatica-e. Planiram podijeliti neka od nezaboravnih trenutaka ove sage o usvajanju Informatica 10.

Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja
Stari logo Informatica-e

Naša odgovornost obuhvata i druge okruženja Informatica, koja imaju svoje specifičnosti zbog drugačijeg opterećenja. Za sada ću se fokusirati na razvoj Informatica kao ETL komponente samog skladišta podataka.

Kako se to dogodilo

U 2016. godini, kada smo preuzeli odgovornost za rad Informatica, dostigla je verziju 10.0, a za optimistički nastrojene kolege koje su donosile odluke o korišćenju proizvoda sa manjom verzijom, sve je delovalo očigledno — treba koristiti novu verziju! Što se tiče hardverskih resursa, situacija je u tom trenutku bila odlična.

Od proleća 2016. godine, rad Informatica preuzeo je izvođač, a prema rečima malobrojnih korisnika sistema, 'radila je nekoliko puta nedeljno'. Potrebno je objasniti da je skladište de facto bilo u fazi PoC, nije bilo administratora u timu i sistem je često padao iz različitih razloga, nakon čega ga je inženjer izvođača ponovo pokretao.

Na jesen su se u timu pojavila tri administratora, koji su raspodelili između sebe sfere odgovornosti i počeli su da razvijaju normalan rad na eksploataciji sistema u projektu, uključujući Informatica. Treba posebno napomenuti da ovaj proizvod nije široko rasprostranjen i nema veliku zajednicu u kojoj možete pronaći odgovore na sva pitanja i rešiti bilo koji problem. Stoga je veoma važna bila puna tehnička podrška od ruskog partnera Informatica, uz čiju pomoć su ispravljene sve naše greške i greške tada još mlade Informatica 10.

Prvo što smo morali da uradimo za programere naše ekipe i izvođača — stabilizovati rad same Informatica i postići funkcionalnost web konzole za administraciju (Informatica Administrator).

Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja
Tako su nam često pristupali programeri Informatica.

Izostavljajući proces utvrđivanja uzroka, glavni razlog pada bio je shema interakcije softvera Informatica s bazom podataka repozitorija, koja se nalazila na relativno udaljenom serveru u pogledu mrežnog pejzaža. To je dovodilo do kašnjenja i ometalo rad mehanizama koji osiguravaju kontrolu stanja domena Informatica. Nakon određenih podešavanja baze podataka i promjene parametara Informatica, koji su je učinili tolerantnijom na kašnjenja baze podataka, kao i nadogradnje verzije Informatica na 10.1 i premještanja baze podataka sa prethodnog servera na server bliži Informatica, problem je postao nerelevantan, i od tada ne zapažamo padove slične prirode.

Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja
Jedan od pokušaja da se uspešno pokrene Informatica Monitor

Situacija sa administrativnom konzolom takođe je bila kritična. Pošto se aktivno razvijalo direktno u uslovno produktivnom okruženju, kolegama je neprekidno bilo potrebno da analiziraju rad mappings, workflow „u hodu“. U novoj Informatica, u Data Integration Service ne postoji poseban alat za takvo praćenje, ali se u web-konzoli za administraciju pojavio deo za monitoring (Informatica Administrator Monitor), gde je moguće pratiti rad aplikacija, workflow i mappings, pokretanja, logove. Povremeno je konzola postajala potpuno nedostupna, ili su prestajali da se ažuriraju podaci o trenutnim procesima u DIS, ili su se javljale greške prilikom učitavanja stranica.

Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja
Podešavanje java parametara za stabilizaciju rada

Reševanje problema išlo je na više načina, sprovođeni su eksperimenti sa promenom parametara, prikupljani su logovi, jstack, slati su podršci, paralelno je bilo aktivnog pretraživanja na Guglu i jednostavno unošenje uvida.

Na prvom mestu, kreiran je poseban MRS za monitoring, kako se kasnije ispostavilo, to je jedan od osnovnih potrošača resursa u našim okruženjima, pošto se pokretanje mappingsa odvijalo veoma intenzivno. Promenjeni su parametri vezani za java heap, kao i niz drugih.
Kao rezultat, do sledeće nadogradnje Informatica 10.1.1 uspeli smo da stabilizujemo rad konzole i monitora, developeri su postali efikasniji, a redovni procesi postajali su sve redovniji.

Zanimivo je lahko izkušnja interakcije med razvojem in administracijo. Vprašanje splošnega razumevanja, kako vse deluje, kaj je mogoče narediti in kaj ne, je vedno pomembno pri uporabi zapletenih sistemov. Zato je smiselno najprej usposobiti ekipo administratorjev, kako naj upravljajo programsko opremo, in ekipo razvijalcev, kako naj pišejo kodo in oblikujejo procese v sistemu, ter šele nato poslati obe skupini, da delata na rezultatu. To je res pomembno, ko čas ni neskončen vir. Mnogo težav je mogoče rešiti tudi s slučajnimi poskusi, nekatera pa za to zahtevajo apriorno znanje — naš primer potrjuje pomembnost razumevanja te aksiome.

Na primer, pri poskusu vključitve različic v MRS (kot se je na koncu izkazalo, je bila potrebna druga različica SVN), smo po neki dobi s skrbjo odkrili, da se je čas ponovnega zagona sistema podaljšal na več deset minut. Ko smo ugotovili vzrok za zamudo pri zagonu in onemogočili različic, se je situacija znova izboljšala.

Iz opaznih ovir, povezanih z Informatica, lahko omenimo epsko bitko z rastočimi java-pretoki. Prišel je trenutek za razširitev, torej za prenos usklajenih procesov na veliko število sistemov virov. Pri tem se je izkazalo, da vsi procesi v 10.1.1 niso delovali dobro, in po določeni dobi je DIS postal neuporaben. Odkritih je bilo na tisoče pretokov, njihovo število je še posebej naraščalo med postopkom prenosa aplikacij. Včasih je bilo potrebno večkrat na dan izvesti ponovni zagon za obnovitev delovanja.

Tu je treba pohvaliti podporo, težave so bile razmeroma hitro lokalizirane in odpravljene s pomočjo EBF (Emergency Bug Fix) – po tem so vsi dobili občutek, da orodje dejansko deluje.

Res deluje!

Ob začetku dela v ciljnem načinu je Informatica izgledala takole. Različica Informatica 10.1.1HF1 (HF1 je HotFix1, različica od prodajalca iz kompleta EBF) z dodatno nameščenimi EBF, ki odpravljajo naše težave z zmogljivostjo in druge, na enem od treh strežnikov, ki so bili del GRID, 20 jeder x86_64 in shranjevanje na ogromnem, počasnem nizu lokalnih diskov — to konfiguracija strežnika za Hadoop klaster. Na drugem enakem strežniku je sistem za upravljanje baz podatkov Oracle, s katerim delata tudi domena Informatica in upravljalni mehanizem ETL. Vse to spremljajo običajna orodja za nadzor, ki jih uporablja ekipa (Zabbix + Grafana), obeh strani – Informatica s svojimi storitvami in procesi nalaganja, ki tečejo vanjo. Trenutno sta tako zmogljivost kot stabilnost delovanja, ne upoštevajoč zunanje dejavnike, odvisni od nastavitev, ki omejujejo obremenitev.

Ločeno lahko govorimo o GRID-u. Sredina je bila zgrajena na treh vozliščih, s možnostjo uravnoteženja obremenitve. Vendar pa je bilo med testiranjem ugotovljeno, da zaradi težav pri interakciji med zaganjanimi primerki naših aplikacij takšna konfiguracija ni delovala po pričakovanjih, zato smo se začasno odločili, da se odpovemo temu načrtu in izključimo dve od treh vozlišč iz domene. Pri tem je sama shema ostala nespremenjena in sedaj gre za GRID storitev, ki pa je degenerirana do enega vozlišča.

Trenutno ostaja težava, povezana s padcem zmogljivosti med rednim čiščenjem sheme monitorja – ko potekajo vzporedni procesi v ČNN in je čiščenje aktivno, lahko pride do napak v delu upravljalnega mehanizma ETL. Ta problem se zaenkrat rešuje "na hitro" – s ročnim čiščenjem sheme monitorja, ob izgubi vseh prejšnjih podatkov. To ni preveč kritično za produkcijo, ob normalnem delovanju, vendar se še vedno išče ustrezna rešitev.

Iz te situacije izhaja še en problem – občasno prihaja do večkratnih zagonov našega upravljalnega mehanizma.

Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja
Večkratni zagoni aplikacije, ki privedejo do okvare mehanizma.

Ob zagonu po razporedu v trenutkih velike obremenitve sistema se kdaj pojavijo takšne situacije, ki privedejo do okvare mehanizma. Do sedaj se ta problem rešuje ročno, išče se stalna rešitev.

Na splošno lahko povzamemo, da je ob močnih obremenitvah zelo pomembno zagotoviti ustrezne vire, kar se nanaša tako na strojne vire za samo Informatico, kot tudi na njen DB-repository, poleg tega pa zagotoviti optimalne nastavitve. Poleg tega ostaja odprto vprašanje, katera shema postavitve baze podatkov je boljša — na ločenem gostitelju ali na istem, kjer deluje programska oprema Informatica. Po eni strani je na eni strežniku cenejše, in ob sočasni uporabi se praktično odpravlja možna težava s omrežno interakcijo, po drugi strani pa se obremenitev gostitelja od baze podatkov dopolnjuje s obremenitvijo Informatice.

Kot pri vsakem resnem produktu, v Informatica obstajajo tudi zanimivi trenutki.
Nekega dne, ko sem preučil neko okvaro, sem opazil, da so v dnevnikih MRS čudno zabeleženi časi dogodkov.

Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja
Časovni dualizem v dnevnikih MRS „po zasnovi“

Izkazalo se je, da se časovne oznake zapisujejo v 12-urnem formatu, brez označevanja AM/PM, torej pred in po poldnevu. O tem je bila celo odprta prijava, in dobili smo uraden odgovor — tako je bilo zasnovano, oznake v dnevnikih MRS se zapisujejo prav v tem formatu. To pomeni, da ostaja občasno malo intrig o času nastanka kakšne napake…

Težiti k boljšemu

Danes je Informatica dovolj stabilno orodje, primerno za administratorje in uporabnike, izjemno močno glede na trenutne možnosti in potencial. Njene funkcionalnosti večkrat presegajo naše potrebe in dejansko se trenutno uporablja v projektu na način, ki ni najbolj tipičen. Težave so deloma povezane s tem, kako delujejo mehanizmi — specifika je v tem, da se v kratkem času zažene veliko število niti, ki intenzivno posodabljajo parametersete in delajo z DB repozitorijem, pri tem pa se strojni viri strežnika skoraj popolnoma izrabijo.

Trenutno se že bližamo prehodu na Informatica 10.2.1 ali 10.2.2, v katerih so bili predelani nekateri notranji mehanizmi, in podpora obljublja odsotnost nekaterih zdajšnjih težav z zmogljivostjo in delovanjem. Tudi z vidika strojne opreme se pričakujejo strežniki optimalne konfiguracije za nas, ob upoštevanju rezerv na bližnje obdobje zaradi rasti in razvoja skladišča.

Seveda, še nas čaka testiranje, preverjanje združljivosti in morda arhitekturne spremembe na področju HA GRID. Razvoj znotraj Informatica se bo nadaljeval, saj v kratkoročni perspektivi ne moremo namestiti ničesar, kar bi nadomestilo trenutno sistem.
In tisti, ki bodo v prihodnje odgovorni za ta sistem, bodo zagotovo sposobni doseči zahtevane kazalnike zanesljivosti in zmogljivosti, ki jih postavljajo naročniki.

Članek je pripravila ekipa za upravljanje podatkov podjetja Rostelecom.

Od vsakodnevnih napak do stabilnosti: Informatica 10 skozi oči administratorja
Trenutni logotip Informatica

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster