{"id":87609,"date":"2020-07-09T01:42:11","date_gmt":"2020-07-08T23:42:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum"},"modified":"2020-07-09T01:42:11","modified_gmt":"2020-07-08T23:42:11","slug":"kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","title":{"rendered":"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Pred nejak\u00fdm \u010dasom sme sa ocitli pred ot\u00e1zkou v\u00fdberu ETL n\u00e1stroja pre pr\u00e1cu s BigData. Predt\u00fdm pou\u017e\u00edvan\u00e9 rie\u0161enie Informatica BDM n\u00e1m nevyhovovalo kv\u00f4li obmedzenej funkcionalite. Jej pou\u017eitie sa z\u00fa\u017eilo na r\u00e1mec na sp\u00fa\u0161\u0165anie pr\u00edkazov spark-submit. Na trhu nebolo ve\u013ea anal\u00f3gov, ktor\u00e9 by vo v\u0161eobecnosti boli schopn\u00e9 pracova\u0165 s objemom \u00fadajov, s ktor\u00fdmi sa dennodenne stret\u00e1vame. Nakoniec sme si vybrali Ab Initio. Po\u010das pilotn\u00fdch prezent\u00e1ci\u00ed produkt uk\u00e1zal ve\u013emi vysok\u00fa r\u00fdchlos\u0165 spracovania \u00fadajov. Inform\u00e1cie o Ab Initio v sloven\u010dine s\u00fa takmer nemo\u017en\u00e9 n\u00e1js\u0165, preto sme sa rozhodli podeli\u0165 o svoje sk\u00fasenosti na Habbre.<\/p>\n<p>Ab Initio disponuje mno\u017estvom klasick\u00fdch a neobvykl\u00fdch transform\u00e1ci\u00ed, ktor\u00fdch k\u00f3d m\u00f4\u017ee by\u0165 roz\u0161\u00edren\u00fd pomocou vlastn\u00e9ho jazyka PDL. Pre mal\u00e9 podniky je tento mocn\u00fd n\u00e1stroj pravdepodobne nadbyto\u010dn\u00fd a v\u00e4\u010d\u0161ina jeho funkci\u00ed m\u00f4\u017ee by\u0165 n\u00e1kladn\u00e1 a nevyu\u017e\u00edvan\u00e1. Ale ak sa va\u0161e rozsahy bl\u00ed\u017eia k sberovsk\u00fdm, Ab Initio by v\u00e1s mohlo zauj\u00edma\u0165. <\/p>\n<p>Pom\u00e1ha podnikom glob\u00e1lne zhroma\u017e\u010fova\u0165 poznatky a rozv\u00edja\u0165 ekosyst\u00e9m, zatia\u013e \u010do v\u00fdvoj\u00e1rovi umo\u017e\u0148uje zlep\u0161ova\u0165 svoje zru\u010dnosti v ETL, zdokona\u013eova\u0165 znalosti v shell, poskytuje mo\u017enos\u0165 osvojenia si jazyka PDL, d\u00e1va vizu\u00e1lny preh\u013ead o procesoch nahr\u00e1vania a zjednodu\u0161uje v\u00fdvoj v\u010faka mno\u017estvu funk\u010dn\u00fdch komponentov.<\/p>\n<p>V tomto pr\u00edspevku sa podel\u00edm o mo\u017enosti Ab Initio a poskytnem porovn\u00e1vacie charakteristiky pr\u00e1ce s Hive a GreenPlum.<\/p>\n<ul>\n<li>Popis r\u00e1mca MDW a pr\u00e1ce na jeho doladen\u00ed k GreenPlum<\/li>\n<li>Porovn\u00e1vacie charakteristiky v\u00fdkonu Ab Initio pri pr\u00e1ci s Hive a GreenPlum<\/li>\n<li>Pr\u00e1ca Ab Initio s GreenPlum v re\u017eime Near Real Time<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nFunkcionalita tohto produktu je ve\u013emi \u0161irok\u00e1 a vy\u017eaduje nemalo \u010dasu na jeho \u0161t\u00fadium. Av\u0161ak so spr\u00e1vnymi zru\u010dnos\u0165ami a spr\u00e1vnymi nastaveniami v\u00fdkonnosti s\u00fa v\u00fdsledky spracovania \u00fadajov mimoriadne p\u00f4sobiv\u00e9. Pou\u017eitie Ab Initio pre v\u00fdvoj\u00e1ra m\u00f4\u017ee poskytn\u00fa\u0165 zauj\u00edmav\u00e9 sk\u00fasenosti. Je to nov\u00fd poh\u013ead na ETL v\u00fdvoj, hybrid medzi vizu\u00e1lnym prostred\u00edm a v\u00fdvojom nahr\u00e1vania v skriptovskom jazyku.<\/p>\n<p>Biznis rozv\u00edja svoje ekosyst\u00e9my a tento n\u00e1stroj sa mu hod\u00ed ako nikdy predt\u00fdm. S pomocou Ab Initio je mo\u017en\u00e9 zhroma\u017e\u010fova\u0165 vedomosti o aktu\u00e1lnom biznise a vyu\u017e\u00edva\u0165 tieto vedomosti na roz\u0161\u00edrenie star\u00fdch a otvorenie nov\u00fdch biznisov. Alternat\u00edvami k Ab Initio s\u00fa vizu\u00e1lne prostredia ako Informatica BDM a nevidite\u013en\u00e9 prostredia ako Apache Spark.<\/p>\n<h3>Popis Ab Initio<\/h3>\n<p>\nAb Initio, rovnako ako in\u00e9 ETL n\u00e1stroje, predstavuje s\u00fabor produktov.<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c467fe1e8455805075856967b577f8b7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAb Initio GDE (Graphical Development Environment) je prostredie pre v\u00fdvoj\u00e1rov, v ktorom si nastavuj\u00fa transform\u00e1cie d\u00e1t a sp\u00e1jaj\u00fa ich tokmi d\u00e1t vo forme \u0161\u00edpok. Tak\u00fdto s\u00fabor transform\u00e1ci\u00ed sa naz\u00fdva graf:<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/7b0c19a82ae8b461a9bd85117555e106.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVstupn\u00e9 a v\u00fdstupn\u00e9 spojenia funk\u010dn\u00fdch komponentov s\u00fa porty a obsahuj\u00fa polia, vypo\u010d\u00edtan\u00e9 v r\u00e1mci transform\u00e1ci\u00ed. Nieko\u013eko grafov, spojen\u00fdch tokmi vo forme \u0161\u00edpok v porad\u00ed ich vykonania, sa naz\u00fdva pl\u00e1n.<\/p>\n<p>Existuje nieko\u013eko stoviek funk\u010dn\u00fdch komponentov, \u010do je ve\u013emi ve\u013ea. Mnoh\u00e9 z nich s\u00fa \u00fazko \u0161pecializovan\u00e9. Mo\u017enosti klasick\u00fdch transform\u00e1ci\u00ed v Ab Initio s\u00fa \u0161ir\u0161ie ako v in\u00fdch ETL n\u00e1strojoch. Napr\u00edklad Join m\u00e1 nieko\u013eko v\u00fdstupov. Okrem v\u00fdsledku spojenia datasetov je mo\u017en\u00e9 na vstupe z\u00edska\u0165 z\u00e1znamy vstupn\u00fdch datasetov, pod\u013ea ktor\u00fdch sa nepodarilo spoji\u0165. Tie\u017e je mo\u017en\u00e9 z\u00edska\u0165 rejects, errors a log pracovnej transform\u00e1cie, ktor\u00fd je mo\u017en\u00e9 v rovnakom grafe pre\u010d\u00edta\u0165 ako textov\u00fd s\u00fabor a spracova\u0165 in\u00fdmi transform\u00e1ciami:<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c7d70879daad364a3d4aa41a0a1b738d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlebo, napr\u00edklad, je mo\u017en\u00e9 materializova\u0165 prij\u00edma\u010d d\u00e1t vo forme tabu\u013eky a v rovnakom grafe z neho \u010d\u00edta\u0165 d\u00e1ta.<\/p>\n<p>Existuj\u00fa origin\u00e1lne transform\u00e1cie. Napr\u00edklad, transform\u00e1cia Scan m\u00e1 funk\u010dnos\u0165 ako analytick\u00e9 funkcie. Existuj\u00fa transform\u00e1cie s hovorov\u00fdmi n\u00e1zvami: Create Data, Read Excel, Normalize, Sort within Groups, Run Program, Run SQL, Join with DB a \u010fal\u0161ie. Grafy m\u00f4\u017eu vyu\u017e\u00edva\u0165 parametre vykon\u00e1vania, vr\u00e1tane mo\u017enosti prenosu parametrov z opera\u010dn\u00e9ho syst\u00e9mu alebo do opera\u010dn\u00e9ho syst\u00e9mu. Soubory s pripravenou sadou pren\u00e1\u0161an\u00fdch parametrov sa naz\u00fdvaj\u00fa parameter sets (psets).<\/p>\n<p>Ako sa patr\u00ed, Ab Initio GDE m\u00e1 svoj repozit\u00e1r, naz\u00fdvan\u00fd EME (Enterprise Meta Environment). V\u00fdvoj\u00e1ri maj\u00fa mo\u017enos\u0165 pracova\u0165 s lok\u00e1lnymi verziami k\u00f3du a robi\u0165 check in svojich v\u00fdvojov do centr\u00e1lneho repozit\u00e1ra.<\/p>\n<p>Po\u010das alebo po dokon\u010den\u00ed grafu m\u00e1te mo\u017enos\u0165 klikn\u00fa\u0165 na ak\u00fako\u013evek spojnicu transform\u00e1cie toku a pozrie\u0165 si \u00fadaje, ktor\u00e9 pre\u0161li medzi t\u00fdmito transform\u00e1ciami:<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/a674507b2cd25b980cb862bda2e10cbe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTakisto je mo\u017en\u00e9 klikn\u00fa\u0165 na ak\u00fdko\u013evek tok a pozrie\u0165 si podrobnosti sledovania \u2013 ko\u013eko paralelne pracovalo transform\u00e1ci\u00ed, ko\u013eko riadkov a bajtov sa na\u010d\u00edtalo v ktorej z paralel pod\u013ea:<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/6188d17bebe756ee59e6956f9a40ec43.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe mo\u017en\u00e9 rozdeli\u0165 vykonanie grafu na f\u00e1zy a ozna\u010di\u0165, \u017ee niektor\u00e9 transform\u00e1cie treba vykon\u00e1va\u0165 ako prv\u00e9 (v nulovej f\u00e1ze), nasleduj\u00face v prvej f\u00e1ze, nasleduj\u00face v druhej f\u00e1ze a tak \u010falej.<\/p>\n<p>Ka\u017ed\u00fa transform\u00e1ciu je mo\u017en\u00e9 vybra\u0165 takzvan\u00fd layout (kde bude vykon\u00e1van\u00e1): bez paralel alebo v paraleln\u00fdch tokoch, ktor\u00fdch po\u010det je mo\u017en\u00e9 zada\u0165. Pri tom do\u010dasn\u00e9 s\u00fabory, ktor\u00e9 vytv\u00e1ra Ab Initio pri pr\u00e1ci transform\u00e1ci\u00ed, je mo\u017en\u00e9 umiestni\u0165 ako do s\u00faborov\u00e9ho syst\u00e9mu <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sk\/server\/dts-los-angeles\/\"   title=\"servera\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3635\">servera<\/a>, tak aj do HDFS.<\/p>\n<p>V ka\u017edej transform\u00e1cii na z\u00e1klade \u0161abl\u00f3ny je mo\u017en\u00e9 vytvori\u0165 svoj vlastn\u00fd skript v jazyku PDL, ktor\u00fd sa trochu podob\u00e1 shell. <\/p>\n<p>Pomocou jazyka PDL m\u00f4\u017eete roz\u0161irova\u0165 funk\u010dnos\u0165 transform\u00e1ci\u00ed a konkr\u00e9tne m\u00f4\u017eete dynamicky (po\u010das vykon\u00e1vania) generova\u0165 \u013eubovo\u013en\u00e9 \u00fatr\u017eky k\u00f3du v z\u00e1vislosti od parametrov \u010dasu vykon\u00e1vania.<\/p>\n<p>V Ab Initio je tie\u017e dobre vyvinut\u00e1 integr\u00e1cia s opera\u010dn\u00fdm syst\u00e9mom cez shell. Konkr\u00e9tne v Sberbanke sa pou\u017e\u00edva linux ksh. Je mo\u017en\u00e9 zdie\u013ea\u0165 s shellom premenn\u00e9 a pou\u017e\u00edva\u0165 ich ako parametre grafov. Je mo\u017en\u00e9 z shellu sp\u00fa\u0161\u0165a\u0165 vykon\u00e1vanie grafov Ab Initio a spravova\u0165 Ab Initio.<\/p>\n<p>Okrem Ab Initio GDE dod\u00e1vka obsahuje mnoho in\u00fdch produktov. Existuje vlastn\u00fd Co&gt;Operation System, ktor\u00fd sa sna\u017e\u00ed naz\u00fdva\u0165 opera\u010dn\u00fdm syst\u00e9mom. Existuje Control&gt;Center, v ktorom je mo\u017en\u00e9 pl\u00e1nova\u0165 a monitorova\u0165 toky na\u010d\u00edtania. Existuj\u00fa produkty na realiz\u00e1ciu v\u00fdvoja na primit\u00edvnej\u0161ej \u00farovni, ako umo\u017e\u0148uje Ab Initio GDE.<\/p>\n<h3>Popis r\u00e1mca MDW a pr\u00e1ce na jeho doladen\u00ed k GreenPlum<\/h3>\n<p>\nSpolu so svojimi produktmi dod\u00e1vate\u013e poskytuje produkt MDW (Metadata Driven Warehouse), ktor\u00fd predstavuje konfigur\u00e1tor grafov ur\u010den\u00fd na pomoc pri typick\u00fdch \u00faloh\u00e1ch plnenia d\u00e1tov\u00fdch skladov alebo data vaults.<\/p>\n<p>Obsahuje vlastn\u00e9 (\u0161pecifick\u00e9 pre projekt) parsery metadat a hotov\u00e9 gener\u00e1tory k\u00f3du 'ihne\u010f'.<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/0842ecb9550f369875103ccb23cdf121.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNa vstupe MDW prij\u00edma model d\u00e1t, konfigura\u010dn\u00fd s\u00fabor na nastavenie pripojenia k datab\u00e1ze (Oracle, Teradata alebo Hive) a niektor\u00e9 in\u00e9 nastavenia. Projektovo \u0161pecifick\u00e1 \u010das\u0165, napr\u00edklad nasadzuje model v datab\u00e1ze. Krabicov\u00e1 \u010das\u0165 produktu generuje grafy a konfigura\u010dn\u00e9 s\u00fabory k nim pri na\u010d\u00edtan\u00ed d\u00e1t do tabu\u013eiek modelu. Pri tom sa vytv\u00e1raj\u00fa grafy (a psets) pre nieko\u013eko re\u017eimov inicializa\u010dnej a inkrement\u00e1lnej pr\u00e1ce na aktualiz\u00e1cii ent\u00edt.<\/p>\n<p>Vo pr\u00edpadoch Hive a RDBMS sa generuj\u00fa r\u00f4zne grafy pre inicializa\u010dn\u00fa a inkrement\u00e1lnu aktualiz\u00e1ciu d\u00e1t.<\/p>\n<p>V pr\u00edpade Hive sa prijat\u00e9 d\u00e1ta delty kombinuj\u00fa pomocou Ab Initio Join s d\u00e1tami, ktor\u00e9 boli v tabu\u013eke pred aktualiz\u00e1ciou. Na\u010d\u00edtava\u010de d\u00e1t v MDW (\u010di u\u017e v Hive alebo RDBMS) nielen\u017ee vkladaj\u00fa nov\u00e9 d\u00e1ta z delty, ale aj uzatv\u00e1raj\u00fa obdobia aktu\u00e1lnosti d\u00e1t pod\u013ea prim\u00e1rnych k\u013e\u00fa\u010dov, z ktor\u00fdch pri\u0161la delta. Okrem toho je potrebn\u00e9 nanovo prep\u00edsa\u0165 nezmenen\u00fa \u010das\u0165 d\u00e1t. Ale mus\u00edme to robi\u0165, preto\u017ee v Hive neexistuj\u00fa oper\u00e1cie delete alebo update.<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/36b6dd7c4d45727ad7d7aa1183fdd5fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV pr\u00edpade RDBMS grafy pre inkrement\u00e1lnu aktualiz\u00e1ciu d\u00e1t vyzeraj\u00fa omnoho optim\u00e1lnej\u0161ie, preto\u017ee RDBMS maj\u00fa re\u00e1lne mo\u017enosti aktualiz\u00e1cie.<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b62ac222bed575a60b632b13e012f603.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrijat\u00e1 delta sa na\u010d\u00edtava do do\u010dasnej tabu\u013eky v datab\u00e1ze. Potom sa delta spoj\u00ed s d\u00e1tami, ktor\u00e9 boli v tabu\u013eke pred aktualiz\u00e1ciou. A to sa rob\u00ed za pomoci SQL s pou\u017eit\u00edm vygenerovan\u00e9ho SQL dotazu. \u010ealej pomocou SQL pr\u00edkazov delete+insert prebieha vkladanie nov\u00fdch d\u00e1t z delty do cie\u013eovej tabu\u013eky a uzatv\u00e1ranie obdob\u00ed aktu\u00e1lnosti d\u00e1t pod\u013ea prim\u00e1rnych k\u013e\u00fa\u010dov, z ktor\u00fdch pri\u0161la delta. <br \/>\nNie je potrebn\u00e9 prep\u00edsa\u0165 nezmenen\u00e9 d\u00e1ta.<\/p>\n<p>Tak sme dospeli k z\u00e1veru, \u017ee v pr\u00edpade Hive mus\u00ed MDW prejs\u0165 na prep\u00edsanie celej tabu\u013eky, preto\u017ee Hive nem\u00e1 funkciu aktualiz\u00e1cie. A ni\u010d lep\u0161ieho, ne\u017e \u00fapln\u00e9 prep\u00edsanie d\u00e1t pri aktualiz\u00e1cii, nebolo vymyslen\u00e9. V pr\u00edpade RDBMS, naopak, tvorcovia produktu sa rozhodli zveri\u0165 spojenie a aktualiz\u00e1ciu tabuliek vyu\u017e\u00edvaniu SQL.<\/p>\n<p>Pre projekt v Sberbanke sme vytvorili nov\u00fa opakovane pou\u017eite\u013en\u00fa implement\u00e1ciu na\u010d\u00edtava\u010da datab\u00e1zy pre GreenPlum. To bolo vykonan\u00e9 na z\u00e1klade verzie, ktor\u00fa MDW generuje pre Teradata. Pr\u00e1ve Teradata, a nie Oracle, bola v tomto pr\u00edpade najvhodnej\u0161ia a najbli\u017e\u0161ia, preto\u017ee je taktie\u017e MPP syst\u00e9mom. Sp\u00f4soby pr\u00e1ce a syntax Teradata a GreenPlum sa uk\u00e1zali ako \u00fazko pr\u00edbuzn\u00e9.<\/p>\n<p>Pr\u00edklady kritick\u00fdch rozdielov pre MDW medzi r\u00f4znymi RDBMS s\u00fa nasleduj\u00face. V GreenPlum, na rozdiel od Teradata, pri vytv\u00e1ran\u00ed tabuliek je potrebn\u00e9 p\u00edsa\u0165 klauzulu<\/p>\n<pre><code class=\"sql\">distributed by<\/code><\/pre>\n<p>\nV Teradata p\u00ed\u0161u<\/p>\n<pre><code class=\"sql\">vymaza\u0165 &lt;table&gt; v&scaron;etko<\/code><\/pre>\n<p>\n, a v GreenPlum p\u00ed\u0161u<\/p>\n<pre><code class=\"sql\">vymaza\u0165 z &lt;table&gt;<\/code><\/pre>\n<p>\nV Oracle s cie\u013eom optimaliz\u00e1cie p\u00ed\u0161u<\/p>\n<pre><code class=\"sql\">delete from t where rowid in ()<\/code><\/pre>\n<p>\n, a v Teradata a GreenPlum p\u00ed\u0161u<\/p>\n<pre><code class=\"sql\">delete from t where exists (select * from delta where delta.pk=t.pk)<\/code><\/pre>\n<p>\nE\u0161te by sme chceli poznamena\u0165, \u017ee na pr\u00e1cu Ab Initio s GreenPlum bolo potrebn\u00e9 nain\u0161talova\u0165 klienta GreenPlum na v\u0161etky uzly klastra Ab Initio. D\u00f4vodom je, \u017ee sme sa pripojili k GreenPlum s\u00fa\u010dasne zo v\u0161etk\u00fdch uzlov n\u00e1\u0161ho klastra. A pre to, aby bolo \u010d\u00edtanie z GreenPlum paraleln\u00e9 a ka\u017ed\u00fd paraleln\u00fd tok Ab Initio \u010d\u00edtal svoju \u010das\u0165 \u00fadajov z GreenPlum, sme museli do sekcie \u201ewhere\u201c SQL dotazov vlo\u017ei\u0165 Ab Initio zrozumite\u013en\u00fa kon\u0161trukciu<\/p>\n<pre><code class=\"sql\">where ABLOCAL()<\/code><\/pre>\n<p>\na definova\u0165 hodnotu tejto kon\u0161trukcie, ur\u010den\u00edm parametra pre transform\u00e1ciu, ktor\u00e1 \u010d\u00edta z DB<\/p>\n<pre><code class=\"sql\">ablocal_expr=\u00abstring_concat(&quot;mod(t.&quot;, string_filter_out(&quot;{$TABLE_KEY}&quot;,&quot;{}&quot;), &quot;,&quot;, (decimal(3))(number_of_partitions()),&quot;)=&quot;, (decimal(3))(this_partition()))\u00bb<\/code><\/pre>\n<p>\n, ktor\u00e1 sa kompiluje na nie\u010do ako<\/p>\n<pre><code class=\"sql\">mod(sk,10)=3<\/code><\/pre>\n<p>\n, t.j. je potrebn\u00e9 da\u0165 GreenPlum explicitn\u00fd filter pre ka\u017ed\u00fa part\u00edciu. Pre in\u00e9 datab\u00e1zy (Teradata, Oracle) m\u00f4\u017ee Ab Initio vykona\u0165 toto rozdelenie automaticky.<\/p>\n<h3>Porovn\u00e1vacie charakteristiky v\u00fdkonu Ab Initio pri pr\u00e1ci s Hive a GreenPlum<\/h3>\n<p>\nV Sberbanke bol vykonan\u00fd experiment na porovnanie v\u00fdkonu generovan\u00fdch MDW grafov v s\u00favislosti s Hive a GreenPlum. V r\u00e1mci experimentu malo Hive 5 uzlov na tej istej klastri ako Ab Initio, zatia\u013e \u010do GreenPlum malo 4 uzly na samostatnej klastri. T.j. Hive malo ur\u010dit\u00e9 v\u00fdhody oproti GreenPlum \u201ena hardv\u00e9ri\u201c.<\/p>\n<p>Boli zv\u00e1\u017een\u00e9 dve p\u00e1ry grafov, ktor\u00e9 vykon\u00e1vali rovnak\u00fa \u00falohu aktualiz\u00e1cie \u00fadajov v Hive a GreenPlum. Pri tom sa sp\u00fa\u0161\u0165ali grafy generovan\u00e9 konfigur\u00e1torom MDW:<\/p>\n<ul>\n<li>inicializa\u010dn\u00e9 na\u010d\u00edtanie + inkrement\u00e1lne na\u010d\u00edtanie n\u00e1hodne generovan\u00fdch \u00fadajov do tabu\u013eky Hive<\/li>\n<li>inicializa\u010dn\u00e9 na\u010d\u00edtanie + inkrement\u00e1lne na\u010d\u00edtanie n\u00e1hodne generovan\u00fdch \u00fadajov do rovnakej tabu\u013eky GreenPlum<\/li>\n<\/ul>\n<p>\nV oboch pr\u00edpadoch (Hive a GreenPlum) sa sp\u00fa\u0161\u0165ali nahr\u00e1vky v 10 paraleln\u00fdch pr\u00fadoch na rovnakom klastri Ab Initio. Medzi \u00fadaje pre v\u00fdpo\u010dty Ab Initio sa uchov\u00e1vali v HDFS (v term\u00ednoch Ab Initio bol pou\u017eit\u00fd MFS layout using HDFS). Jeden riadok n\u00e1hodne generovan\u00fdch d\u00e1t mal v oboch pr\u00edpadoch 200 bajtov.<\/p>\n<p>V\u00fdsledok bol tak\u00fdto:<\/p>\n<p><b>Hive:<\/b><\/p>\n<p><b>Inicializa\u010dn\u00e1 nahr\u00e1vka v Hive<\/b><\/p>\n<p>Vlo\u017een\u00e9 riadky<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Trvanie inicializa\u010dnej<br \/>\nnahr\u00e1vky v sekund\u00e1ch<br \/>\n41<br \/>\n203<br \/>\n1 601<\/p>\n<p><b>Pr\u00edrastkov\u00e1 nahr\u00e1vka v Hive<\/b><\/p>\n<p>Po\u010det riadkov, ktor\u00e9 boli v<br \/>\ncie\u013eovej tabu\u013eke na za\u010diatku experimentu<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Po\u010det riadkov delty, aplikovan\u00fdch na<br \/>\ncie\u013eov\u00fa tabu\u013eku po\u010das experimentu<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Trvanie pr\u00edrastkovej<br \/>\nnahr\u00e1vky v sekund\u00e1ch<br \/>\n88<br \/>\n299<br \/>\n<b>2 541<\/b><\/p>\n<p>\n<b>GreenPlum:<\/b><\/p>\n<p><b>Inicializa\u010dn\u00e1 nahr\u00e1vka v GreenPlum<\/b><\/p>\n<p>Vlo\u017een\u00e9 riadky<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Trvanie inicializa\u010dnej<br \/>\nnahr\u00e1vky v sekund\u00e1ch<br \/>\n72<br \/>\n360<br \/>\n3 631<\/p>\n<p><b>Pr\u00edrastkov\u00e1 nahr\u00e1vka v GreenPlum<\/b><\/p>\n<p>Po\u010det riadkov, ktor\u00e9 boli v<br \/>\ncie\u013eovej tabu\u013eke na za\u010diatku experimentu<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Po\u010det riadkov delty, aplikovan\u00fdch na<br \/>\ncie\u013eov\u00fa tabu\u013eku po\u010das experimentu<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Trvanie pr\u00edrastkovej<br \/>\nnahr\u00e1vky v sekund\u00e1ch<br \/>\n159<br \/>\n199<br \/>\n<b>321<\/b><\/p>\n<p>\nVid\u00edme, \u017ee r\u00fdchlos\u0165 inicializa\u010dnej nahr\u00e1vky ako v Hive, tak aj v GreenPlum line\u00e1rne z\u00e1vis\u00ed od objemu d\u00e1t a z d\u00f4vodov lep\u0161ieho hardv\u00e9ru je trochu r\u00fdchlej\u0161ia pre Hive, ne\u017e pre GreenPlum.<\/p>\n<p>Pr\u00edrastkov\u00e1 nahr\u00e1vka v Hive tie\u017e line\u00e1rne z\u00e1vis\u00ed od objemu u\u017e predt\u00fdm nahran\u00fdch d\u00e1t v cie\u013eovej tabu\u013eke a prebieha dos\u0165 pomaly s rastom objemu. To je sp\u00f4soben\u00e9 potrebou \u00faplne prep\u00edsa\u0165 cie\u013eov\u00fa tabu\u013eku. To znamen\u00e1, \u017ee aplik\u00e1cia mal\u00fdch zmien na obrovsk\u00fdch tabu\u013ek\u00e1ch \u2013 nie je ve\u013emi dobr\u00fd variant pou\u017eitia pre Hive.<\/p>\n<p>Naopak, pr\u00edrastkov\u00e1 nahr\u00e1vka v GreenPlum slab\u0161ie z\u00e1vis\u00ed od objemu predt\u00fdm nahran\u00fdch d\u00e1t v cie\u013eovej tabu\u013eke a prebieha pomerne r\u00fdchlo. To bolo dosiahnut\u00e9 v\u010faka SQL Joins a architekt\u00fare GreenPlum, ktor\u00e1 umo\u017e\u0148uje oper\u00e1cie delete.<\/p>\n<p>Tak\u017ee GreenPlum nalieva deltu met\u00f3dou delete+insert, zatia\u013e \u010do v Hive neexistuj\u00fa oper\u00e1cie delete alebo update, preto bol cel\u00fd s\u00fabor \u00fadajov pri pr\u00edrastkovom aktualizovan\u00ed n\u00faten\u00fd prep\u00edsa\u0165 kompletne. Najv\u00fdsti\u017enej\u0161ie je porovna\u0165 vyzna\u010den\u00e9 tu\u010dn\u00fdmi p\u00edsmenami bunky, ke\u010f\u017ee zodpovedaj\u00fa naj\u010dastej\u0161iemu variantu pou\u017e\u00edvania n\u00e1ro\u010dn\u00fdch nahr\u00e1vok. Vid\u00edme, \u017ee GreenPlum vyhral u Hive v tomto teste 8-kr\u00e1t.<\/p>\n<h3>Pr\u00e1ca Ab Initio s GreenPlum v re\u017eime Near Real Time<\/h3>\n<p>\nV tomto experimente over\u00edme mo\u017enos\u0165 Ab Initio aktualizova\u0165 tabu\u013eku GreenPlum n\u00e1hodne generovan\u00fdmi d\u00e1vkami d\u00e1t v re\u017eime bl\u00edzkom re\u00e1lnemu \u010dasu. Budeme sa zaobera\u0165 tabu\u013ekou GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval, s ktorou sa bude pracova\u0165.<\/p>\n<p>Budeme pou\u017e\u00edva\u0165 tri grafy Ab Initio na pr\u00e1cu s \u0148ou:<\/p>\n<p>1) Graf Create_test_data.mp \u2013 vytv\u00e1ra v 10 paraleln\u00fdch tokoch s\u00fabory s \u00fadajmi v HDFS s 6 000 000 riadkami. \u00dadaje s\u00fa n\u00e1hodn\u00e9, \u0161trukt\u00fara je organizovan\u00e1 na vlo\u017eenie do na\u0161ej tabu\u013eky.<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/8cac605c1c5931313bd016a48fb6384e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b86988bf1722329bde60013ba025d600.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n2) Graf mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset \u2013 generovan\u00fd MDW graf pre inicia\u010dn\u00e9 vlo\u017eenie \u00fadajov do na\u0161ej tabu\u013eky v 10 paraleln\u00fdch tokoch (pou\u017e\u00edvaj\u00fa sa testovacie \u00fadaje, generovan\u00e9 grafom (1)).<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b4228a13c088c6b96abba35e9e58fe8e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n3) Graf mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u2013 generovan\u00fd MDW graf pre inkrement\u00e1lne aktualizovanie na\u0161ej tabu\u013eky v 10 paraleln\u00fdch tokoch s pou\u017eit\u00edm \u010dasti \u010derstvo prijat\u00fdch \u00fadajov (delta), generovan\u00fdch grafom (1).<\/p>\n<p><img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/714a901616cf84e5a1fd7a764373e30f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVykon\u00e1me ni\u017e\u0161ie uveden\u00fd scen\u00e1r v re\u017eime NRT:<\/p>\n<ul>\n<li>vygenerova\u0165 6 000 000 testovac\u00edch riadkov.<\/li>\n<li>vykona\u0165 inicia\u010dn\u00e9 na\u010d\u00edtanie, vlo\u017ei\u0165 6 000 000 testovac\u00edch riadkov do pr\u00e1zdnej tabu\u013eky.<\/li>\n<li>opakova\u0165 5-kr\u00e1t inkrement\u00e1lne na\u010d\u00edtanie.\n<ul>\n<li>vygenerova\u0165 6 000 000 testovac\u00edch riadkov.<\/li>\n<li>vykona\u0165 inkrement\u00e1lne vlo\u017eenie 6 000 000 testovac\u00edch riadkov do tabu\u013eky (pritom star\u00fdm \u00fadajom sa nastav\u00ed \u010das expir\u00e1cie valid_to_ts a vlo\u017eia sa \u010derstvej\u0161ie \u00fadaje s t\u00fdm ist\u00fdm prim\u00e1rnym k\u013e\u00fa\u010dom).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nTak\u00fdto scen\u00e1r emuluje re\u017eim re\u00e1lnej pr\u00e1ce ur\u010ditej biznis-syst\u00e9my \u2013 v re\u00e1lnom \u010dase sa objav\u00ed dos\u0165 ve\u013ek\u00e9 mno\u017estvo nov\u00fdch \u00fadajov a okam\u017eite sa vprav\u00ed do GreenPlum.<\/p>\n<p>Teraz sa pozrime na log pr\u00e1ce scen\u00e1ra:<\/p>\n<p><i>Start Create_test_data.input.pset at 2020-06-04 11:49:11<br \/>\nFinish Create_test_data.input.pset at 2020-06-04 11:49:37<br \/>\nStart mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:49:37<br \/>\nFinish mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:50:42<br \/>\nStart Create_test_data.input.pset at 2020-06-04 11:50:42<br \/>\nFinish Create_test_data.input.pset at 2020-06-04 11:51:06<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:51:06<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:53:41<br \/>\nStart Create_test_data.input.pset at 2020-06-04 11:53:41<br \/>\nFinish Create_test_data.input.pset at 2020-06-04 11:54:04<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:54:04<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:56:51<br \/>\nStart Create_test_data.input.pset at 2020-06-04 11:56:51<br \/>\nFinish Create_test_data.input.pset at 2020-06-04 11:57:14<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:57:14<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:59:55<br \/>\nStart Create_test_data.input.pset at 2020-06-04 11:59:55<br \/>\nFinish Create_test_data.input.pset at 2020-06-04 12:00:23<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 12:00:23<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 12:03:23<br \/>\nStart Create_test_data.input.pset at 2020-06-04 12:03:23<br \/>\nFinish Create_test_data.input.pset at 2020-06-04 12:03:49<br \/>\nSpustite mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset d\u0148a 2020-06-04 12:03:49<br \/>\nUkon\u010dite mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset d\u0148a 2020-06-04 12:06:46<\/i><\/p>\n<p>Vytv\u00e1ra sa tak\u00fdto obraz:<\/p>\n<p>Graf<br \/>\n\u010cas za\u010diatku<br \/>\n\u010cas ukon\u010denia<br \/>\nD\u013a\u017eka<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:49:11<br \/>\n04.06.2020 11:49:37<br \/>\n00:00:26<\/p>\n<p>mdw_load.day_one.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:49:37<br \/>\n04.06.2020 11:50:42<br \/>\n00:01:05<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:50:42<br \/>\n04.06.2020 11:51:06<br \/>\n00:00:24<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:51:06<br \/>\n04.06.2020 11:53:41<br \/>\n00:02:35<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:53:41<br \/>\n04.06.2020 11:54:04<br \/>\n00:00:23<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:54:04<br \/>\n04.06.2020 11:56:51<br \/>\n00:02:47<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:56:51<br \/>\n04.06.2020 11:57:14<br \/>\n00:00:23<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:57:14<br \/>\n04.06.2020 11:59:55<br \/>\n00:02:41<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:59:55<br \/>\n04.06.2020 12:00:23<br \/>\n00:00:28<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 12:00:23<br \/>\n04.06.2020 12:03:23<br \/>\n00:03:00<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 12:03:23<br \/>\n04.06.2020 12:03:49<br \/>\n00:00:26<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 12:03:49<br \/>\n04.06.2020 12:06:46<br \/>\n00:02:57<\/p>\n<p>\nVid\u00edme, \u017ee 6 000 000 z\u00e1znamov sa spracov\u00e1va za 3 min\u00faty, \u010do je dos\u0165 r\u00fdchlo.<br \/>\n\u00dadaje v cie\u013eovej tabu\u013eke sa rozdelili nasledovne:<\/p>\n<pre><code class=\"sql\">select valid_from_ts, valid_to_ts, count(1), min(sk), max(sk) from dev42_1_db_usl.TESTING_SUBJ_org_finval group by valid_from_ts, valid_to_ts order by 1,2;<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Ke\u010f m\u00e1te rozsah ako Sberbank. Pou\u017e\u00edvanie Ab Initio pri pr\u00e1ci s Hive a GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/baefcfd8142f4ad6275333e3dcfccf94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nM\u00f4\u017eeme vidie\u0165 zhodu vlo\u017een\u00fdch \u00fadajov s \u010dasmi spustenia grafov.<br \/>\nTak\u017ee je mo\u017en\u00e9 spusti\u0165 v Ab Initio inkrement\u00e1lne na\u010d\u00edtavanie \u00fadajov do GreenPlum s ve\u013emi vysokou frekvenciou a sledova\u0165 vysok\u00fa r\u00fdchlos\u0165 vkladania t\u00fdchto \u00fadajov do GreenPlum. Samozrejme, nespust\u00ed sa ka\u017ed\u00fa sekundu, preto\u017ee Ab Initio, rovnako ako ak\u00fdko\u013evek ETL n\u00e1stroj, pri spusten\u00ed vy\u017eaduje \u010das na \"rozbehnutie\".<\/p>\n<h2>Z\u00e1ver<\/h2>\n<p>\nV s\u00fa\u010dasnosti sa Ab Initio pou\u017e\u00edva v Sberbank na vybudovanie Jedn\u00e9ho semantick\u00e9ho vrstvy \u00fadajov (E\u0160\u00da). Tento projekt predpoklad\u00e1 vybudovanie jedinej verzie stavu r\u00f4znych bankov\u00fdch obchodn\u00fdch ent\u00edt. Inform\u00e1cie prich\u00e1dzaj\u00fa z r\u00f4znych zdrojov, ktor\u00fdch repliky s\u00fa pripraven\u00e9 na Hadoop. Na z\u00e1klade potrieb podnikania je pripraven\u00fd model \u00fadajov a pop\u00edsan\u00e9 transform\u00e1cie \u00fadajov. Ab Initio na\u010d\u00edtava inform\u00e1cie do E\u0160\u00da a na\u010d\u00edtan\u00e9 \u00fadaje nielen\u017ee predstavuj\u00fa z\u00e1ujem pre podnikanie sam\u00e9 o sebe, ale aj sl\u00fa\u017eia ako zdroj na vytvorenie d\u00e1tov\u00fdch vitr\u00edn. Funkcionalita produktu pritom umo\u017e\u0148uje pou\u017e\u00edva\u0165 ako prij\u00edma\u010d r\u00f4zne syst\u00e9my (Hive, Greenplum, Teradata, Oracle), \u010do umo\u017e\u0148uje bez v\u00e4\u010d\u0161\u00edch n\u00e1mahy pripravova\u0165 \u00fadaje pre podnikanie v r\u00f4znych po\u017eadovan\u00fdch form\u00e1toch.<\/p>\n<p>Mo\u017enosti Ab Initio s\u00fa \u0161irok\u00e9, napr\u00edklad integrovan\u00fd r\u00e1mec MDW umo\u017e\u0148uje budova\u0165 technick\u00fa a obchodn\u00fa historickos\u0165 \u00fadajov \"z krabice\". Pre v\u00fdvoj\u00e1rov Ab Initio poskytuje mo\u017enos\u0165 \"neobjavova\u0165 koleso\", ale vyu\u017e\u00edva\u0165 mno\u017estvo existuj\u00facich funk\u010dn\u00fdch komponentov, ktor\u00e9 s\u00fa v podstate kni\u017enicami potrebn\u00fdmi pri pr\u00e1ci s \u00fadajmi.<\/p>\n<blockquote><p>Autor \u2014 expert profesion\u00e1lneho spolo\u010denstva Sberbank SberProfi DWH\/BigData. Profesion\u00e1lne spolo\u010denstvo SberProfi DWH\/BigData zodpoved\u00e1 za rozvoj kompetenci\u00ed v tak\u00fdch oblastiach, ako s\u00fa ekosyst\u00e9m Hadoop, Teradata, Oracle DB, GreenPlum, ako aj v BI n\u00e1strojoch Qlik, SAP BO, Tableau a \u010fal\u0161\u00edch.<\/p><\/blockquote>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sberbank\/blog\/509936\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0415\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u0435\u043b\u043e\u0441\u044c \u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434 spark-submit. \u041d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0438\u043c\u0435\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0441\u0431\u0435\u0440\u043e\u0432\u0441\u043a\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Ab Initio \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Hive \u0438 GreenPlum | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-08T23:42:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-08T23:42:11+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ke\u010f m\u00e1te obrovsk\u00e9 rozsahy. Pou\u017eitie Ab Initio pri pr\u00e1ci s Hive a GreenPlum | ProHoster","description":"Pred nejak\u00fdm \u010dasom sme sa stretli s ot\u00e1zkou v\u00fdberu ETL n\u00e1stroja pre pr\u00e1cu s BigData. Predt\u00fdm pou\u017e\u00edvan\u00e9 rie\u0161enie Informatica BDM n\u00e1s neuspokojovalo kv\u00f4li obmedzenej funk\u010dnosti.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0441\u0431\u0435\u0440\u043e\u0432\u0441\u043a\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Ab Initio \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Hive \u0438 GreenPlum | ProHoster","og:description":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-08T23:42:11+00:00","article:modified_time":"2020-07-08T23:42:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87609","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:47:29","updated":"2026-02-22 15:29:30","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/87609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=87609"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/87609\/revisions"}],"predecessor-version":[{"id":162163,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/87609\/revisions\/162163"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/87610"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=87609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=87609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=87609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}