Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

Mõni aeg tagasi seisime silmitsi ETL-tööriista valimise küsimusega BigData töötlemiseks. Varem kasutatud lahendus Informatica BDM ei rahuldanud meid oma piiratud funktsionaalsuse tõttu. Selle kasutamine piirdus spark-submit käsurea käivitamise raamistikuga. Turul oli väga vähe analooge, mis suudaksid töötada meie iga päevaga kokku puutuvate andmehulkadega. Lõpuks valisime Ab Initio. Pilootdemonstratsioonide käigus näitas toode väga suurt andmete töötlemise kiirus. Informatioon Ab Initio kohta eesti keeles on peaaegu olematu, seetõttu otsustasime jagada oma kogemust Habrise.

Ab Initio'l on palju klassikalisi ja ebatavalisi teisendusi, mille koodi saab laiendada oma PDL-keelega. Väikese ettevõtte jaoks on see mainekas tööriist tõenäoliselt üleliigne, ja enamik selle funktsioone võib osutuda kalliks ja kasutamata. Kuid kui teie ulatus läheneb suurte ettevõtete tasemele, siis võib Ab Initio teile huvi pakkuda.

See aitab ettevõttel globaalselt teadmisi koguda ja ökosüsteemi arendada, samuti arendajal oma ETL-oskusi täiustada, teadmisi shelli valdkonnas täiendada, pakub võimalust PDL-keelt omandada, annab visuaalse pildi laadimisprotsessidest ning lihtsustab arendust tänu paljudele funktsionaalsetele komponentidele.

Postituses räägin Ab Initio võimalustest ja toon välja võrdlussiledused selle töö kohta Hive'i ja GreenPlumiga.

  • MDW raamistik ja tööd selle kohandamiseks GreenPlumiga
  • Võrdlussiledused Ab Initio tootlikkuse kohta Hive'i ja GreenPlumiga töö tegemisel
  • Ab Initio töö Near Real Time režiimis GreenPlumiga


Selle toote funktsionaalsus on väga ulatuslik ja selleks, et sellega tutvuda, on vajalik mitu aega. Siiski, piisavate tööoskuste ja õigete tootlikkuse seadistustega saadud andmete töötlemise tulemused on väga muljetavaldavad. Ab Initio kasutamine arendaja jaoks võib pakkuda huvitavat kogemust. See on uus lähenemine ETL-arendusele, hübriid visuaalse keskkonna ja laadimisprotseduuride skriptikeeles arendamise vahel.

Ettevõtted arendavad oma ökosüsteeme ja see tööriist osutub neile praegu äärmiselt kasulikuks. Ab Initio abil saab koguda teadmisi praegusest ärist ja kasutada neid teadmisi vanade laiendamiseks ja uute äride avamiseks. Alternatiivideks Ab Initio-le on visuaalsed arenduskeskkonnad nagu Informatica BDM ja mittevisuaalsed keskkonnad nagu Apache Spark.

Ab Initio kirjeldus

Ab Initio, nagu teised ETL-tööriistade komplektid, on tooteportfell.

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

Ab Initio GDE (Graphical Development Environment) on arenduskeskkond, kus arendaja seadistab andmete transformatsioonid ja ühendab need andmevoogudega noolteta. Sellist transformatsioonide komplekti nimetatakse graafiks:

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

Funktsionaalsete komponentide sissetulevad ja väljaminevad ühendused on pordid ja need sisaldavad valemeid, mis arvutatakse transformatsioonide raames. Mitmed graafid, mis on ühendatud noolteta voogudega nende täitmise järjekorras, nimetatakse plaaniks.

Saadaval on mitu sada funktsionaalset komponenti, mis on väga palju. Paljud neist on kitsalt spetsialiseeritud. Ab Initio klassikaliste transformatsioonide võimalused on laiemad kui teistes ETL-tööriistades. Näiteks Join-il on mitu väljundit. Lisaks andmesettide ühendamise tulemusele on võimalik saada välja sissetulevate andmesettide kirjeid, mille võtmete järgi ei õnnestunud ühendust luua. Samuti on võimalik saada rejects, errors ja transformatsiooni töölugu, mille saab samas graafis lugeda tekstifailina ja töödelda teiste transformatsioonidega:

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

Või näiteks saab andmete vastuvõtjat materialiseerida tabelina ning samas graafis lugeda sealt andmeid.

On originaalsed transformatsioonid. Näiteks on Scani transformatsioonil funktsioon, nagu analüütilistel funktsioonidel. On transformatsioone kõlavate nimedega: Create Data, Read Excel, Normalize, Sort within Groups, Run Program, Run SQL, Join with DB jne. Graafid võivad kasutada täitmise ajalisi parameetreid, sealhulgas on võimalik edastada parameetreid opsüsteemist või operatsioonisüsteemi. Failid valmisparameetrite komplektiga, mida antakse graafile, nimetatakse parameter sets (psets).

Kuna Ab Initio GDE-l on oma repository, tuntud kui EME (Enterprise Meta Environment). Arendajatel on võimalus töötada kohalike koodiversioonidega ja teha oma arengute check in keskusse.

On execution or after running the graph, you have the option to click on any connection transforming the stream and view the data that passed between these transformations:

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

You can also click on any stream to see tracking details – how many parallel processes the transformation worked in, how many rows and bytes were loaded in each of the parallels:

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

It is possible to break down the execution of the graph into phases and mark some transformations to be executed first (in the zero phase), the next in the first phase, the next in the second phase, and so on.

For each transformation, you can choose what is called a layout (where it will be executed): without parallels or in parallel streams, the number of which can be specified. Temporary files created by Ab Initio during transformation work can be placed both in the file system serverilt, as well as in HDFS.

In each transformation based on the default template, you can create your own script in the PDL language, which somewhat resembles shell scripting.

With the help of the PDL language, you can extend transformation functionality and, in particular, dynamically (during execution) generate arbitrary code fragments depending on runtime parameters.

Ab Initio also has well-developed integration with the OS through the shell. Specifically, Linux ksh is used at Sberbank. It is possible to exchange shell variables and use them as graph parameters. You can invoke the execution of Ab Initio graphs from the shell and manage Ab Initio.

In addition to Ab Initio GDE, many other products are included in the delivery. There is its own Co>Operation System, which claims to be an operating system. There is Control>Center, where you can schedule and monitor load streams. There are products for development at a more primitive level than what Ab Initio GDE allows.

MDW raamistik ja tööd selle kohandamiseks GreenPlumiga

Along with its products, the vendor supplies the MDW (Metadata Driven Warehouse) product, which is a graph configurator designed to assist with typical tasks for filling data warehouses or data vaults.

It contains user-specific (project-specific) metadata parsers and ready-made code generators 'out of the box.'

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel
MDW saab mudeli andmed, konfiguratsioonifaili andmebaasi ühenduse seadistamiseks (Oracle, Teradata või Hive) ja mõned muud seadistused. Projekti spetsiifiline osa, näiteks mudeli juurutamine andmebaasi. Toote kastiversioon genereerib graafikuid ja nende seadistamisfaile andmete laadimisel mudeli tabelitesse. Selle käigus luuakse graafikud (ja psets) mitmesuguste algatamise ja inkrementaalsete töötamise režiimide jaoks, et uuendada entiteete.

Hive'i ja RDBMS'i puhul genereeritakse erinevad graafikud algatava ja inkrementaalse andmete uuendamise jaoks.

Hive'i puhul ühendatakse tulnud delta Ab Initio Join kaudu andmetega, mis olid tabelis enne uuendust. MDW andmepraktikud (nii Hive'is kui RDBMS'is) mitte ainult ei sisesta uusi andmeid deltast, vaid suletakse ka andmete kehtivuse perioodid, mille põhjalikest võtmetest delta saabus. Lisaks tuleb üle kirjutada muutumatud andmed. Kuid see on vajalik, kuna Hive'is ei ole kustutamise või uuendamise operatsioone.

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

RDBMS'i puhul näevad inkrementaalsete andmete uuendamise graafikud optimaalsemad välja, sest RDBMS'id omavad reaalset uuendamise võimalust.

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

Tulnud delta laaditakse andmebaasi vahepealsesse tabelisse. Pärast seda toimub delta ühendamine andmetega, mis olid tabelis enne uuendust. See toimub SQL abil genereeritud SQL-päringu kaudu. Edasi toimub SQL käskude delete+insert abil uute andmete sisestamine sihttabelisse ning andmete kehtivuse perioodide sulgemine, mille põhjalikest võtmetest delta saabus.
Muutumatuid andmeid ei ole vaja üle kirjutada.

Nii oleme järeldusele jõudnud, et Hive'i puhul peab MDW minema kogu tabeli üle kirjutamise juurde, kuna Hive'il ei ole uuendamise funktsiooni. Ja midagi paremat kui andmete täielik ümberkirjutamine uuendamise ajal ei ole võimalik. RDBMS'i puhul otsustasid toote loojad vastupidi, et usaldada tabelite ühendamine ja uuendamine SQL kasutamisele.

Sberbanki projekti raames lõime GreenPlumi jaoks uue korduvalt kasutatava andmebaasi laadija rakenduse. See põhines versioonil, mille MDW genereerib Teradata jaoks. Just Teradata, mitte Oracle sobis selleks paremini ja oli kõige lähemal, kuna on samuti MPP-süsteem. Töömeetodid ja Teradata ning GreenPlumi süntaks osutusid sarnaseks.

MDW jaoks kriitilised erinevused erinevate RDBMSide vahel on järgmised. GreenPlumis tuleb tabelite loomisel, erinevalt Teradatast, kirjutada klausli

distributed by

Teradataks kirjutatakse

delete <table> all

, samas kui GreenPlumis kirjutatakse

kustuta <table>

Oracle'is optimeerimise eesmärgil kirjutatakse

delete from t where rowid in ()

, aga Teradatast ja GreenPlumist kirjutatakse

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

Samuti märgime, et Ab Initio tööks GreenPlumiga tuli GreenPlumi klient installida kõikidele Ab Initio klastrite sõlmedele. See oli vajalik, kuna me ühendasime GreenPlumiga samaaegselt kõikidest meie klastrite sõlmedest. Ja et lugemine GreenPlumist oleks paralleelne ning iga Ab Initio paralleelne käik loeks oma andmepartiid GreenPlumist, tuli SQL-päringute „where” sektsiooni lisada Ab Initio mõistetav konstruktsioon

where ABLOCAL()

ja määrata selle konstruktsiooni väärtus, osutades andmebaasist luges transformatsiooniparameeter

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

, mis kompileeritakse millekski sarnaseks

mod(sk,10)=3

, st tuleb GreenPlumile anda selge filter iga partitsiooni jaoks. Muude andmebaaside (Teradata, Oracle) puhul võib Ab Initio seda paralleelse laadimise automaatselt teostada.

Võrdlussiledused Ab Initio tootlikkuse kohta Hive'i ja GreenPlumiga töö tegemisel

Sberbankis viidi läbi katse, et võrrelda MDW graafide jõudlust Hive'i ja GreenPlumi vahel. Katse raames oli Hive puhul 5 sõlme samas klastris, kus Ab Initio, ja GreenPlumi puhul 4 sõlme eraldi klastris. See tähendab, et Hive'il oli rohkelt eeliseid GreenPlumiga "riistvara" osas.

Käsitleti kahte graafipaari, mis teostasid sama andmete uuendamise ülesannet Hive'is ja GreenPlumis. Samal ajal käivitati MDW konfigureerija genereeritud graafid:

  • alguslaadimine + juhuslikult genereeritud andmete inkrementaalne laadimine Hive tabelisse
  • alguslaadimine + juhuslikult genereeritud andmete inkrementaalne laadimine identse tabelisse GreenPlumis

Mõlemal juhul (Hive ja GreenPlum) käivitasime laadimised 10 paralleelses voos ühesuguses Ab Initio klastris. Vaheandmed Ab Initio arvutuste jaoks salvestati HDFS-sse (Ab Initio termini järgi kasutati MFS paigutust HDFS-i abil). Üks juhuslikult genereeritud rida andmeid võttis mõlemal juhul 200 baiti.

Tulemus oli järgmine:

Hive:

Hive'i alglaadimine

Sisestatud ridu
6 000 000
60 000 000
600 000 000

Alglaadimise kestus
sekundites
41
203
1 601

Hive'i inkremendiline laadimine

Ridade arv, mis olid
sihtotstarbelises tabelis eksperimendi alguses
6 000 000
60 000 000
600 000 000

Delta ridade arv, mis rakendati
sihtotstarbeline tabel eksamite käigus
6 000 000
6 000 000
6 000 000

Inkremendilise laadimise kestus
sekundites
88
299
2 541

GreenPlum:

GreenPlum'i alglaadimine

Sisestatud ridu
6 000 000
60 000 000
600 000 000

Alglaadimise kestus
sekundites
72
360
3 631

GreenPlum'i inkremendiline laadimine

Ridade arv, mis olid
sihtotstarbelises tabelis eksperimendi alguses
6 000 000
60 000 000
600 000 000

Delta ridade arv, mis rakendati
sihtotstarbeline tabel eksamite käigus
6 000 000
6 000 000
6 000 000

Inkremendilise laadimise kestus
sekundites
159
199
321

Näeme, et alglaadimise kiirus nii Hive'is kui ka GreenPlum'is sõltub lineaarselt andmete mahust ja tänu paremale riistvarale on see Hive'is veidi kiirem kui GreenPlum'is.

Hive'i inkremendiline laadimine sõltub samuti lineaarselt sihtotstarbelises tabelis varasemalt laaditud andmete mahust ja toimub piisavalt aeglaselt mahu suurenedes. Seda põhjustab vajalikus täielikult sihtotstarbelist tabelit ümber kirjutada. See tähendab, et väikeste muudatuste rakendamine suurtes tabelites ei ole Hive'i jaoks kuigi hea kasutus.

GreenPlum'i inkremendiline laadimine sõltub nõrgalt sihtotstarbelises tabelis varasemalt laaditud andmete mahust ja toimub piisavalt kiiresti. See on võimalik SQL Join'ide ja GreenPlum'i arhitektuuri tõttu, mis lubab kustutamisoperatsiooni.

Seega voolab GreenPlum delta kustutamis+lisamise meetodil, samas kui Hive'is pole kustutamis- ega uuendamisoperatsioone, mistõttu pidi inkremendilise uuendamise käigus kogu andmebaas täielikult ümber kirjutama. Kõige silmatorkavam on rasvases kirjas olevate lahtrite võrdlemine, kuna see vastab kõige tavalisemale ressursimahukate laadimiste kasutusvariandile. Näeme, et GreenPlum võitis Hive'i selles testis 8 korda.

Ab Initio töö Near Real Time režiimis GreenPlumiga

Selles eksperimendis kontrollime Ab Initio võimalust uuendada GreenPlum tabelit juhuslikult genereeritud andmepakkidena reaalajas lähedases režiimis. Vaatame GreenPlum'i tabelit dev42_1_db_usl.TESTING_SUBJ_org_finval, millega töötame.

Kasutame selle töötlemiseks kolme Ab Initio graafikut:

1) Graaf Create_test_data.mp – loob 10 paralleelses voos andmed failid HDFS-s 6 000 000 rida. Andmed on juhuslikud, nende struktuur on korraldatud meie tabelisse sisestamiseks.

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

2) Graaf mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset – genereeritud MDW graaf, mis teostab algse andmete sisestamise meie tabelisse 10 paralleelses voos (kasutatakse testandmeid, genereeritud graafi (1) abil).

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

3) Graaf mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset – genereeritud MDW graaf, mis teostab meie tabeli inkrementaalset uuendamist 10 paralleelses voos, kasutades värskeid andmeid (delta), genereeritud graafi (1) abil.

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel

Teeme allpool toodud stsenaariumi NRT režiimis:

  • genereerida 6 000 000 testirida
  • teostada alglaadimine, sisestada 6 000 000 testirida tühjasse tabelisse
  • korrata 5 korda inkrementaalset laadimist
    • genereerida 6 000 000 testirida
    • teostada inkrementaalne sisestamine 6 000 000 testirida tabelisse (sel juhul määratakse vanadele andmetele aegumise aeg valid_to_ts ja sisestatakse värskemad andmed sama primaarkilluga).

Selline stsenaarium simuleerib tegeliku töö režiimi mõnes ärisüsteemis – reaalajas ilmub piisavalt suur kogus uusi andmeid ja see voolab kohe GreenPlum-i.

Nüüd vaatame stsenaariumi töölogi:

Alustamine Create_test_data.input.pset 2020-06-04 11:49:11-l
Lõpetamine Create_test_data.input.pset 2020-06-04 11:49:37-l
Alustamine mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:49:37-l
Lõpetamine mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:50:42-l
Alustamine Create_test_data.input.pset 2020-06-04 11:50:42-l
Lõpetamine Create_test_data.input.pset 2020-06-04 11:51:06-l
Alustamine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:51:06-l
Lõpetamine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:53:41-l
Alustamine Create_test_data.input.pset 2020-06-04 11:53:41-l
Lõpetamine Create_test_data.input.pset 2020-06-04 11:54:04-l
Alustamine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:54:04-l
Lõpetamine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:56:51-l
Alustamine Create_test_data.input.pset 2020-06-04 11:56:51-l
Lõpetamine Create_test_data.input.pset 2020-06-04 11:57:14-l
Alustamine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:57:14-l
Lõpetamine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:59:55-l
Alustamine Create_test_data.input.pset 2020-06-04 11:59:55-l
Lõpetamine Create_test_data.input.pset 2020-06-04 12:00:23-l
Alustamine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 12:00:23-l
Lõpetamine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 12:03:23-l
Alustamine Create_test_data.input.pset 2020-06-04 12:03:23-l
Lõpetamine Create_test_data.input.pset 2020-06-04 12:03:49-l
Käivita mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 12:03:49
Lõpeta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 12:06:46

Nii et olukord on järgmine:

Graafik
Start time
Lõpetamise aeg
Pikkus

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

Näeme, et 6 000 000 rida inkrementi töödeldakse 3 minutiga, mis on piisavalt kiire.
Siht tabelis saadud andmed jaotuvad järgmiselt:

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;

Kui teil on Sberbanki ulatus. Ab Initio kasutamine Hive'i ja GreenPlumiga töötamisel
Saame näha, kuidas sisestatud andmed vastavad graafikute käivitamise hetkedele.
See tähendab, et saab käivitada Ab Initios inkrementaalset andme laadimist GreenPlum'i väga kõrge sagedusega ja jälgida nende andmete laadimise suurt kiirus GreenPlum'i. Loomulikult ei õnnestu käivitada iga sekundi tagant, kuna Ab Initio, nagu iga ETL vahend, vajab käivitamiseks «sissekäigu» aega.

Kokkuvõte

Praegu kasutatakse Ab Initio Sberbankis Ühtse Semantilise Andmekihi (ÜSAS) loomiseks. See projekt hõlmab erinevate panganduse äriolukordade ühise versiooni koostamist. Teave tuleb erinevatest allikatest, mille koopiad valmistatakse Hadoopis. Äri vajadustest lähtuvalt valmistatakse andmemudel ja kirjeldatakse andmete muutmisi. Ab Initio laadib teabe ÜSASse ning laaditud andmed ei ole mitte ainult äri jaoks huvitavad, vaid ka allikaks andmemagasiinide koostamisel. Toote funktsionaalsus võimaldab kasutada vastuvõtjatena erinevaid süsteeme (Hive, Greenplum, Teradata, Oracle), võimaldades seeläbi andmete valmistamist äri jaoks erinevates vajalikes vormingutes.

Ab Initio võimalused on ulatuslikud, näiteks kaasasolev raamistik MDW võimaldab ehitada tehnilist ja äri ajaloo andmeid “kastist välja”. Ab Initio pakub arendajatele võimaluse “ratast uuesti leiutada” ja kasutada paljusid süstemaatilisi komponente, mis on tegelikult raamatukogud, mida on vajalik andmetega töötamiseks.

Autor - Sberbanki professionaalse kogukonna SberProfi DWH/BigData ekspert. Professionaalne kogukond SberProfi DWH/BigData vastutab teadlikkuse arendamise eest sellistes valdkondades nagu Hadoopi ökosüsteem, Teradata, Oracle DB, GreenPlum, samuti BI tööriistad Qlik, SAP BO, Tableau jt.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster