Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

Pred časom smo se soočili z vprašanjem izbire ETL orodja za delo z velikimi podatki. Prej uporabljena rešitev Informatica BDM nam zaradi omejene funkcionalnosti ni ustrezala. Njegova uporaba je bila zmanjšana na okvir za zagon ukazov spark-submit. Na trgu ni bilo veliko analogov, ki bi bili načeloma sposobni delati s količino podatkov, s katerimi imamo opravka vsak dan. Na koncu smo izbrali Ab Initio. Med pilotnimi predstavitvami je izdelek pokazal zelo visoko hitrost obdelave podatkov. O Ab Initio v ruščini skoraj ni informacij, zato smo se odločili, da o naši izkušnji spregovorimo na Habréju.

Ab Initio ima veliko klasičnih in nenavadnih transformacij, katerih kodo je mogoče razširiti z uporabo lastnega jezika PDL. Za malo podjetje bo tako zmogljivo orodje verjetno pretirano, večina njegovih zmogljivosti pa je lahko dragih in neizkoriščenih. Če pa je vaša lestvica blizu Sberove, potem vam bo Ab Initio morda zanimiv.

Pomaga podjetju, da globalno kopiči znanje in razvije ekosistem, razvijalcu pa izboljša svoje veščine v ETL, izboljša svoje znanje v lupini, ponuja priložnost za obvladovanje jezika PDL, daje vizualno sliko procesov nalaganja in poenostavlja razvoj zaradi obilice funkcionalnih komponent.

V tej objavi bom govoril o zmožnostih Ab Initio in podal primerjalne značilnosti njegovega dela s Hive in GreenPlum.

  • Opis ogrodja MDW in delo na njegovi prilagoditvi za GreenPlum
  • Ab Initio primerjava zmogljivosti med Hive in GreenPlum
  • Delo Ab Initio z GreenPlum v načinu skoraj realnega časa


Funkcionalnost tega izdelka je zelo široka in zahteva veliko časa za študij. Z ustreznimi delovnimi veščinami in pravilnimi nastavitvami delovanja pa so rezultati obdelave podatkov zelo impresivni. Uporaba Ab Initio za razvijalce lahko zagotovi zanimivo izkušnjo. To je nov pogled na razvoj ETL, hibrid med vizualnim okoljem in razvojem prenosov v jeziku, podobnem skriptu.

Podjetja razvijajo svoje ekosisteme in to orodje je bolj priročno kot kdaj koli prej. Z Ab Initio lahko zbirate znanje o svojem trenutnem poslu in to znanje uporabite za razširitev starih in odpiranje novih podjetij. Alternative za Ab Initio vključujejo vizualna razvojna okolja Informatica BDM in nevizualna razvojna okolja Apache Spark.

Opis aplikacije Ab Initio

Ab Initio je, tako kot druga orodja ETL, zbirka izdelkov.

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

Ab Initio GDE (Graphical Development Environment) je okolje za razvijalca, v katerem konfigurira transformacije podatkov in jih v obliki puščic povezuje s podatkovnimi tokovi. V tem primeru se tak niz transformacij imenuje graf:

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

Vhodne in izhodne povezave funkcionalnih komponent so vrata in vsebujejo polja, izračunana znotraj transformacij. Več grafov, povezanih s tokovi v obliki puščic v vrstnem redu njihove izvedbe, se imenuje načrt.

Funkcionalnih komponent je več sto, kar je veliko. Mnogi od njih so visoko specializirani. Zmožnosti klasičnih transformacij v Ab Initio so širše kot v drugih orodjih ETL. Na primer, Join ima več izhodov. Poleg rezultata povezovanja nizov podatkov lahko dobite izhodne zapise vhodnih nizov podatkov, katerih ključev ni bilo mogoče povezati. Dobite lahko tudi zavrnitve, napake in dnevnik operacije preoblikovanja, ki ga je mogoče brati v istem stolpcu kot besedilna datoteka in obdelati z drugimi preobrazbami:

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

Lahko pa na primer materializirate sprejemnik podatkov v obliki tabele in berete podatke iz nje v istem stolpcu.

Obstajajo izvirne preobrazbe. Na primer, transformacija skeniranja ima podobno funkcionalnost kot analitične funkcije. Obstajajo transformacije s samoumevnimi imeni: Ustvari podatke, Branje Excela, Normaliziraj, Razvrsti znotraj skupin, Zaženi program, Zaženi SQL, Združi z DB itd. Grafi lahko uporabljajo parametre izvajalnega časa, vključno z možnostjo posredovanja parametrov iz ali v operacijski sistem. Datoteke z že pripravljenim naborom parametrov, posredovanih grafu, se imenujejo nabori parametrov (psets).

Kot je bilo pričakovano, ima Ab Initio GDE lastno skladišče, imenovano EME (Enterprise Meta Environment). Razvijalci imajo možnost delati z lokalnimi različicami kode in preveriti svoj razvoj v osrednjem repozitoriju.

Med izvajanjem ali po izvajanju grafa je mogoče klikniti kateri koli tok, ki povezuje transformacijo, in si ogledati podatke, ki so prešli med temi transformacijami:

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

Možno je tudi klikniti kateri koli tok in si ogledati podrobnosti sledenja – v koliko vzporednicah je transformacija delovala, koliko vrstic in bajtov je bilo naloženih v katero od vzporednic:

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

Izvajanje grafa je mogoče razdeliti na faze in označiti, da je treba nekatere transformacije izvesti najprej (v ničelni fazi), naslednje v prvi fazi, naslednje v drugi fazi itd.

Za vsako transformacijo lahko izberete tako imenovano postavitev (kjer se bo izvajala): brez vzporednic ali v vzporednih nitih, katerih število lahko določite. Hkrati je mogoče začasne datoteke, ki jih Ab Initio ustvari med izvajanjem transformacij, postaviti v datotečni sistem strežnika in v HDFS.

Pri vsaki transformaciji lahko na podlagi privzete predloge ustvarite svoj skript v PDL, ki je nekoliko podoben lupini.

S PDL lahko razširite funkcionalnost transformacij in zlasti lahko dinamično (v času izvajanja) ustvarite poljubne fragmente kode, odvisno od parametrov izvajalnega okolja.

Ab Initio ima tudi dobro razvito integracijo z OS prek lupine. Natančneje, Sberbank uporablja linux ksh. Spremenljivke lahko izmenjate z lupino in jih uporabite kot parametre grafa. Iz lupine lahko pokličete izvajanje grafov Ab Initio in upravljate Ab Initio.

Poleg Ab Initio GDE so v dobavo vključeni številni drugi izdelki. Obstaja lasten Co>Operation System, ki se lahko imenuje operacijski sistem. Obstaja Control>Center, kjer lahko načrtujete in spremljate tokove prenosov. Obstajajo izdelki za razvoj na bolj primitivni ravni, kot jo omogoča Ab Initio GDE.

Opis ogrodja MDW in delo na njegovi prilagoditvi za GreenPlum

Prodajalec skupaj s svojimi izdelki dobavlja izdelek MDW (Metadata Driven Warehouse), ki je konfigurator grafov, zasnovan za pomoč pri tipičnih nalogah polnjenja podatkovnih skladišč ali podatkovnih trezorjev.

Vsebuje prilagojene (specifične za projekt) razčlenjevalnike metapodatkov in že pripravljene generatorje kode.

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum
MDW kot vhod prejme podatkovni model, konfiguracijsko datoteko za vzpostavitev povezave z bazo podatkov (Oracle, Teradata ali Hive) in nekatere druge nastavitve. Del, specifičen za projekt, na primer razmesti model v bazo podatkov. Del izdelka, ki je že pripravljen, generira grafe in konfiguracijske datoteke zanje z nalaganjem podatkov v tabele modelov. V tem primeru so grafi (in nabori) ustvarjeni za več načinov inicializacije in postopnega dela pri posodabljanju entitet.

V primerih Hive in RDBMS se ustvarijo različni grafi za inicializacijo in inkrementalne posodobitve podatkov.

V primeru Hive so dohodni delta podatki povezani prek Ab Initio Join s podatki, ki so bili v tabeli pred posodobitvijo. Nalagalniki podatkov v MDW (tako v Hive kot RDBMS) ne le vstavijo nove podatke iz delte, ampak tudi zaprejo obdobja pomembnosti podatkov, katerih primarni ključi so prejeli delto. Poleg tega morate prepisati nespremenjeni del podatkov. Toda to je treba storiti, ker Hive nima operacij brisanja ali posodabljanja.

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

V primeru RDBMS so grafi za inkrementalno posodabljanje podatkov videti bolj optimalni, ker imajo RDBMS resnične zmožnosti posodabljanja.

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

Prejeta delta se naloži v vmesno tabelo v bazi podatkov. Po tem se delta poveže s podatki, ki so bili v tabeli pred posodobitvijo. In to se izvede z uporabo SQL z uporabo ustvarjene poizvedbe SQL. Nato se z uporabo ukazov SQL delete+insert novi podatki iz delte vstavijo v ciljno tabelo in zaprejo se obdobja pomembnosti podatkov, katerih primarni ključi so prejeli delto.
Nespremenjenih podatkov ni treba prepisati.

Tako smo prišli do zaključka, da mora MDW v primeru Hive prepisati celotno tabelo, ker Hive nima funkcije posodabljanja. In nič boljšega od popolnega prepisovanja podatkov pri posodabljanju ni bilo izumljeno. Nasprotno, pri RDBMS se je ustvarjalcem izdelka zdelo potrebno povezovanje in posodabljanje tabel zaupati uporabi SQL.

Za projekt pri Sberbank smo ustvarili novo implementacijo nalagalnika baze podatkov za GreenPlum, ki jo je mogoče večkrat uporabiti. To je bilo narejeno na podlagi različice, ki jo MDW ustvari za Teradata. Teradata in ne Oracle se je pri tem najbolj približala in najboljša, ker... je tudi sistem MPP. Metode dela ter sintaksa Teradata in GreenPlum so se izkazale za podobne.

Primeri MDW kritičnih razlik med različnimi RDBMS so naslednji. V GreenPlum, za razliko od Teradata, morate pri ustvarjanju tabel napisati klavzulo

distributed by

Teradata piše:

delete <table> all

, in v GreenPlumu pišejo

delete from <table>

V Oracle za namene optimizacije pišejo

delete from t where rowid in (<соединение t с дельтой>)

, pišeta pa Teradata in GreenPlum

delete from t where exists (select * from delta where delta.pk=t.pk)

Opozarjamo tudi, da je bilo za delo Ab Initio z GreenPlum potrebno namestiti odjemalca GreenPlum na vsa vozlišča gruče Ab Initio. To je zato, ker smo se na GreenPlum povezali hkrati iz vseh vozlišč v naši gruči. In da bi bilo branje iz GreenPluma vzporedno in bi vsaka vzporedna nit Ab Initio prebrala svoj del podatkov iz GreenPluma, smo morali postaviti konstrukcijo, ki jo razume Ab Initio, v razdelek »kje« poizvedb SQL

where ABLOCAL()

in določite vrednost te konstrukcije s podajanjem odčitka parametra iz transformacijske baze podatkov

ablocal_expr=«string_concat("mod(t.", string_filter_out("{$TABLE_KEY}","{}"), ",", (decimal(3))(number_of_partitions()),")=", (decimal(3))(this_partition()))»

, ki se prevede v nekaj podobnega

mod(sk,10)=3

, tj. GreenPlum morate pozvati z eksplicitnim filtrom za vsako particijo. Za druge zbirke podatkov (Teradata, Oracle) lahko Ab Initio samodejno izvede to paralelizacijo.

Ab Initio primerjava zmogljivosti med Hive in GreenPlum

Sberbank je izvedla eksperiment za primerjavo delovanja grafov, ustvarjenih z MDW, glede na Hive in GreenPlum. Kot del eksperimenta je bilo v primeru Hive 5 vozlišč v istem grozdu kot Ab Initio, v primeru GreenPluma pa 4 vozlišča v ločenem grozdu. Tisti. Hive je imel nekaj strojne prednosti pred GreenPlumom.

Upoštevali smo dva para grafov, ki opravljata isto nalogo posodabljanja podatkov v Hive in GreenPlum. Istočasno so bili zagnani grafi, ki jih generira konfigurator MDW:

  • začetno nalaganje + postopno nalaganje naključno ustvarjenih podatkov v tabelo Hive
  • začetno nalaganje + postopno nalaganje naključno generiranih podatkov v isto tabelo GreenPlum

V obeh primerih (Hive in GreenPlum) so izvajali nalaganja v 10 vzporednih niti v isti gruči Ab Initio. Ab Initio je shranil vmesne podatke za izračune v HDFS (v smislu Ab Initio je bila uporabljena postavitev MFS z uporabo HDFS). Ena vrstica naključno generiranih podatkov je v obeh primerih zasedla 200 bajtov.

Rezultat je bil tak:

Panj:

Začetno nalaganje v Hive

Vrstice so vstavljene
6 000 000
60 000 000
600 000 000

Trajanje inicializacije
prenosi v nekaj sekundah
41
203
1 601

Postopno nalaganje v Hive

Število vrstic, ki so na voljo v
ciljno tabelo na začetku poskusa
6 000 000
60 000 000
600 000 000

Število črt delta, uporabljenih za
ciljno tabelo med poskusom
6 000 000
6 000 000
6 000 000

Trajanje prirastka
prenosi v nekaj sekundah
88
299
2 541

GreenPlum:

Začetno nalaganje v GreenPlum

Vrstice so vstavljene
6 000 000
60 000 000
600 000 000

Trajanje inicializacije
prenosi v nekaj sekundah
72
360
3 631

Postopno nalaganje v GreenPlum

Število vrstic, ki so na voljo v
ciljno tabelo na začetku poskusa
6 000 000
60 000 000
600 000 000

Število črt delta, uporabljenih za
ciljno tabelo med poskusom
6 000 000
6 000 000
6 000 000

Trajanje prirastka
prenosi v nekaj sekundah
159
199
321

Vidimo, da je hitrost začetnega nalaganja v Hive in GreenPlum linearno odvisna od količine podatkov in je zaradi boljše strojne opreme nekoliko hitrejša pri Hive kot pri GreenPlum.

Postopno nalaganje v Hive je tudi linearno odvisno od obsega predhodno naloženih podatkov, ki so na voljo v ciljni tabeli, in poteka precej počasi, ko obseg raste. To je posledica potrebe po popolnem prepisu ciljne tabele. To pomeni, da uporaba majhnih sprememb v velikih tabelah ni dobra uporaba za Hive.

Postopno nalaganje v GreenPlum je šibko odvisno od količine predhodno naloženih podatkov, ki so na voljo v ciljni tabeli, in poteka precej hitro. To se je zgodilo zahvaljujoč SQL Joins in arhitekturi GreenPlum, ki omogoča operacijo brisanja.

Torej GreenPlum doda delto z uporabo metode delete+insert, vendar Hive nima operacij brisanja ali posodabljanja, zato je bilo celotno podatkovno polje prisiljeno v celoti prepisati med inkrementalno posodobitvijo. Najbolj razkriva primerjava celic, označenih s krepkim tiskom, saj ustreza najpogostejši možnosti za uporabo prenosov, ki zahtevajo veliko virov. Vidimo, da je GreenPlum v tem testu 8-krat premagal Hive.

Delo Ab Initio z GreenPlum v načinu skoraj realnega časa

V tem poskusu bomo preizkusili sposobnost podjetja Ab Initio, da posodobi tabelo GreenPlum z naključno ustvarjenimi kosi podatkov v skoraj realnem času. Oglejmo si tabelo GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval, s katero bomo delali.

Za delo z njim bomo uporabili tri grafe Ab Initio:

1) Graf Create_test_data.mp – ustvari podatkovne datoteke v HDFS s 10 vrsticami v 6 vzporednih nitih. Podatki so naključni, njihova struktura je organizirana za vstavljanje v našo tabelo

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

2) Graf mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset – MDW ustvarjen graf z inicializacijo vstavljanja podatkov v našo tabelo v 10 vzporednih nitih (uporabljeni so testni podatki, ustvarjeni z grafom (1))

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

3) Graf mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset – graf, ki ga je ustvaril MDW za postopno posodabljanje naše tabele v 10 vzporednih nitih z uporabo dela sveže prejetih podatkov (delta), ki jih je ustvaril graf (1)

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum

Zaženimo spodnji skript v načinu NRT:

  • ustvari 6 testnih vrstic
  • izvedite začetno nalaganje, vstavite 6 testnih vrstic v prazno tabelo
  • ponovite inkrementalni prenos 5-krat
    • ustvari 6 testnih vrstic
    • izvedite postopno vstavljanje 6 testnih vrstic v tabelo (v tem primeru je čas veljavnosti valid_to_ts nastavljen na stare podatke in vstavljeni so novejši podatki z istim primarnim ključem)

Ta scenarij posnema način realnega delovanja določenega poslovnega sistema - dokaj velik del novih podatkov se pojavi v realnem času in se takoj vlije v GreenPlum.

Zdaj pa poglejmo dnevnik skripta:

Zaženite Create_test_data.input.pset ob 2020-06-04 11:49:11
Dokončaj Create_test_data.input.pset ob 2020-06-04 11:49:37
Začetek mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 11:49:37
Končajte mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 11:50:42
Zaženite Create_test_data.input.pset ob 2020-06-04 11:50:42
Dokončaj Create_test_data.input.pset ob 2020-06-04 11:51:06
Zaženite mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 11:51:06
Končajte mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 11:53:41
Zaženite Create_test_data.input.pset ob 2020-06-04 11:53:41
Dokončaj Create_test_data.input.pset ob 2020-06-04 11:54:04
Zaženite mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 11:54:04
Končajte mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 11:56:51
Zaženite Create_test_data.input.pset ob 2020-06-04 11:56:51
Dokončaj Create_test_data.input.pset ob 2020-06-04 11:57:14
Zaženite mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 11:57:14
Končajte mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 11:59:55
Zaženite Create_test_data.input.pset ob 2020-06-04 11:59:55
Dokončaj Create_test_data.input.pset ob 2020-06-04 12:00:23
Zaženite mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 12:00:23
Končajte mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 12:03:23
Zaženite Create_test_data.input.pset ob 2020-06-04 12:03:23
Dokončaj Create_test_data.input.pset ob 2020-06-04 12:03:49
Zaženite mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 12:03:49
Končajte mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset ob 2020-06-04 12:06:46

Izkazalo se je ta slika:

Graf
Začetni čas
Končni čas
dolžina

Create_test_data.input.pset
04.06.2020 11: 49: 11
04.06.2020 11: 49: 37
00:00:26

mdw_load.day_one.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 49: 37
04.06.2020 11: 50: 42
00:01:05

Create_test_data.input.pset
04.06.2020 11: 50: 42
04.06.2020 11: 51: 06
00:00:24

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 51: 06
04.06.2020 11: 53: 41
00:02:35

Create_test_data.input.pset
04.06.2020 11: 53: 41
04.06.2020 11: 54: 04
00:00:23

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 54: 04
04.06.2020 11: 56: 51
00:02:47

Create_test_data.input.pset
04.06.2020 11: 56: 51
04.06.2020 11: 57: 14
00:00:23

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 57: 14
04.06.2020 11: 59: 55
00:02:41

Create_test_data.input.pset
04.06.2020 11: 59: 55
04.06.2020 12: 00: 23
00:00:28

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12: 00: 23
04.06.2020 12: 03: 23
00:03:00

Create_test_data.input.pset
04.06.2020 12: 03: 23
04.06.2020 12: 03: 49
00:00:26

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12: 03: 49
04.06.2020 12: 06: 46
00:02:57

Vidimo, da je v 6 minutah obdelanih 000 inkrementalnih vrstic, kar je precej hitro.
Izkazalo se je, da so podatki v ciljni tabeli porazdeljeni na naslednji način:

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;

Ko imaš Sber tehtnico. Uporaba Ab Initio s Hive in GreenPlum
Vidite lahko ujemanje vstavljenih podatkov s časom zagona grafov.
To pomeni, da lahko izvajate inkrementalno nalaganje podatkov v GreenPlum v Ab Initio z zelo visoko frekvenco in opazujete visoko hitrost vstavljanja teh podatkov v GreenPlum. Seveda ga ne bo mogoče zagnati enkrat na sekundo, saj Ab Initio, tako kot vsako orodje ETL, ob zagonu potrebuje čas za »zagon«.

Zaključek

Ab Initio se trenutno uporablja v Sberbank za izgradnjo poenotene semantične podatkovne plasti (ESS). Ta projekt vključuje izgradnjo enotne različice stanja različnih bančnih poslovnih subjektov. Informacije prihajajo iz različnih virov, katerih replike pripravlja Hadoop. Na podlagi poslovnih potreb se pripravi podatkovni model in opišejo transformacije podatkov. Ab Initio naloži informacije v ESN in preneseni podatki sami po sebi niso zanimivi samo za podjetje, temveč služijo tudi kot vir za gradnjo podatkovnih borzov. Hkrati pa funkcionalnost produkta omogoča uporabo različnih sistemov kot sprejemnika (Hive, Greenplum, Teradata, Oracle), kar omogoča enostavno pripravo podatkov za podjetje v različnih formatih, ki jih zahteva.

Zmogljivosti Ab Initia so široke; vključeno ogrodje MDW na primer omogoča takojšnjo izdelavo tehničnih in poslovnih podatkov. Za razvijalce Ab Initio omogoča, da ne izumljajo kolesa na novo, ampak uporabljajo številne obstoječe funkcionalne komponente, ki so v bistvu knjižnice, potrebne pri delu s podatki.

Avtor je strokovnjak v strokovni skupnosti Sberbank SberProfi DWH/BigData. Strokovna skupnost SberProfi DWH/BigData skrbi za razvoj kompetenc na področjih, kot so ekosistem Hadoop, Teradata, Oracle DB, GreenPlum, pa tudi BI orodja Qlik, SAP BO, Tableau itd.

Vir: www.habr.com

Dodaj komentar