NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

För en tid sedan stod vi inför valet av ett ETL-verktyg för arbete med Big Data. Den tidigare anvÀnda lösningen Informatica BDM var inte tillfredsstÀllande pÄ grund av dess begrÀnsade funktionalitet. AnvÀndningen begrÀnsades till ett ramverk för att köra spark-submit-kommandon. Det fanns inte sÄ mÄnga analoger pÄ marknaden som egentligen kunde hantera den datamÀngd som vi arbetar med varje dag. I slutÀndan valde vi Ab Initio. Under pilotdemonstrationer visade produkten mycket hög hastighet vid databehandling. Det finns nÀstan ingen information om Ab Initio pÄ ryska, dÀrför beslutade vi att dela med oss av vÄr erfarenhet pÄ Habr.

Ab Initio har mÄnga klassiska och ovanliga transformationer, vars kod kan utvidgas med hjÀlp av sitt eget sprÄk PDL. För smÄ företag kan ett sÄ kraftfullt verktyg vara överflödigt, och de flesta av dess funktioner kan visa sig vara dyra och oanvÀndbara. Men om din verksamhet nÀrmar sig storleken pÄ Sberbank, kan Ab Initio vara intressant för er.

Det hjÀlper företag att globalt samla kunskap och utveckla ekosystemet, och för utvecklare ger det möjlighet att förbÀttra sina fÀrdigheter inom ETL, fördjupa sina kunskaper i shell, ger möjlighet att lÀra sig PDL-sprÄket, erbjuder en visuell bild av inlÀsningsprocesserna, och förenklar utvecklingen genom ett överflöd av funktionskomponenter.

I detta inlÀgg kommer jag att berÀtta om möjligheterna med Ab Initio och ge jÀmförande egenskaper för dess arbete med Hive och GreenPlum.

  • Beskrivning av ramverket MDW och arbeten med dess anpassning för GreenPlum
  • JĂ€mförande prestandakarakteristika för Ab Initio i arbetet med Hive och GreenPlum
  • Arbete med Ab Initio och GreenPlum i Near Real Time-lĂ€get


Funktionaliteten hos denna produkt Àr mycket bred och krÀver gott om tid för att lÀra sig. Men med rÀtt arbetsfÀrdigheter och optimala instÀllningar kan databehandlingsresultaten vara mycket imponerande. AnvÀndningen av Ab Initio kan ge utvecklaren en intressant erfarenhet. Det erbjuder ett nytt perspektiv pÄ ETL-utveckling, en hybrid mellan visuell miljö och utveckling av inlÀsningar med ett skriptliknande sprÄk.

Företag utvecklar sina ekosystem och det hĂ€r verktyget kommer som en aldrig tidigare skĂ„dad hjĂ€lp. Med hjĂ€lp av Ab Initio kan man samla kunskap om den aktuella affĂ€rsverksamheten och anvĂ€nda denna kunskap för att expandera gamla och öppna nya affĂ€rsmöjligheter. Alternativ till Ab Initio inkluderar de visuella utvecklingsmiljöerna Informatica BDM och de icke-visuella miljöerna – Apache Spark.

Beskrivning av Ab Initio

Ab Initio, precis som andra ETL-verktyg, Àr en uppsÀttning produkter.

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

Ab Initio GDE (Graphical Development Environment) Àr en miljö för utvecklare dÀr de konfigurerar datatransformationer och kopplar dem med datastreams i form av pilar. En sÄdan uppsÀttning transformationer kallas ett graf:

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

In- och utgÄngsanslutningar för funktionella komponenter Àr portar och innehÄller fÀlt som berÀknas inom transformationerna. Flera grafer, sammankopplade med strömmar i form av pilar i den ordning de utförs, kallas en plan.

Det finns flera hundra funktionella komponenter, vilket Àr mycket. MÄnga av dem Àr smal specialiserade. Möjligheterna för klassiska transformationer i Ab Initio Àr bredare Àn i andra ETL-verktyg. Till exempel har Join flera utgÄngar. Utöver resultatet av sammankopplingen av dataset kan man fÄ ut poster frÄn de inmatade dataset vars nycklar inte kunde koblas samman. Man kan ocksÄ fÄ rejects, errors och loggar frÄn transformationens arbete, som kan lÀsas i samma graf som en textfil och bearbetas med andra transformationer:

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

Eller, som exempel, kan man materialisera datamottagaren i form av en tabell och lÀsa data frÄn den i samma graf.

Det finns unika transformationer. Till exempel har transformationen Scan funktioner som liknar analytiska funktioner. Det finns transformationer med beskrivande namn: Create Data, Read Excel, Normalize, Sort within Groups, Run Program, Run SQL, Join with DB och fler. Grafer kan anvÀnda parametrar för körningen, inklusive överföring av parametrar frÄn operativsystemet eller till operativsystemet. Filer med en fÀrdig uppsÀttning parametrar som överförs till grafen kallas parameter sets (psets).

Som sig bör har Ab Initio GDE sitt eget repository, benÀmnt EME (Enterprise Meta Environment). Utvecklare har möjlighet att arbeta med lokala versioner av koden och checka in sina utvecklingar i det centrala repositoryt.

Det finns möjlighet att under körning eller efter att grafen har körts klicka pÄ vilket som helst anslutande transformationsflöde och se data som har passerat mellan dessa transformationer:

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

Det finns ocksĂ„ möjlighet att klicka pĂ„ vilket som helst flöde och se spĂ„rningsdetaljer – hur mĂ„nga paralleller transformationen har arbetat med, hur mĂ„nga rader och byte som laddades i vilken av parallellerna:

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

Det finns möjlighet att dela upp körningen av grafen i faser och markera vilka transformationer som ska utföras först (i nollfasen), följande i första fasen, nÀsta i andra fasen etc.

Varje transformation kan vÀlja en sÄ kallad layout (var den ska köras): utan paralleller eller i parallella flöden, vars antal kan anges. TemporÀra filer som Ab Initio skapar under transformationsarbetet kan placeras antingen i filsystemet servern, eller i HDFS.

I varje transformation baserad pÄ en standardmall kan man skapa sitt eget skript pÄ PDL-sprÄket, som pÄminner lite om shell.

Med hjÀlp av PDL-sprÄket kan du utöka funktionaliteten för transformationerna och specifikt kan du dynamiskt (under körning) generera godtyckliga kodfragment beroende pÄ körningsparametrarna.

Ab Initio har ocksÄ bra integration med operativsystemet via shell. Specifikt anvÀnds linux ksh pÄ Sberbank. Man kan utbyta variabler med shell och anvÀnda dem som parametrar för grafer. Man kan anropa körningen av Ab Initio-grafen frÄn shell och administrera Ab Initio.

Förutom Ab Initio GDE levereras mÄnga andra produkter. Det finns sin egen Co>Operation System som gör ansprÄk pÄ att vara ett operativsystem. Det finns Control>Center, dÀr man kan schemalÀgga och övervaka laddningsflöden. Det finns produkter för att utföra utveckling pÄ en mer primitiv nivÄ Àn vad Ab Initio GDE tillÄter.

Beskrivning av ramverket MDW och arbeten med dess anpassning för GreenPlum

Tillsammans med sina produkter levererar leverantören produkten MDW (Metadata Driven Warehouse), som Àr en grafkonfigurator avsedd att hjÀlpa till med typiska uppgifter för att fylla datalager eller data vaults.

Den innehĂ„ller anvĂ€ndardefinierade (projektspecifika) metadata-parse och fĂ€rdiga kodgeneratorer “ur lĂ„dan”.

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum
MDW tar emot en datamodell, en konfigurationsfil för anslutning till databasen (Oracle, Teradata eller Hive) och nÄgra andra instÀllningar. Projekt-specifika delar, som att distribuera modellen i databasen, hanteras ocksÄ. Produktens standarddel genererar grafer och konfigurationsfiler för dem nÀr data laddas in i modellens tabeller. Grafer (och psets) skapas för flera lÀgen av initierande och inkrementell uppdatering av entiteter.

För Hive och RDBMS genereras olika grafer för initierande och inkrementell datauppdatering.

I fallet med Hive sÄ kopplas de inkommande delta-data ihop med data som fanns i tabellen innan uppdateringen genom Ab Initio Join. Datainladdare i MDW (bÄde i Hive och RDBMS) injicerar inte bara nya data frÄn delta, utan stÀnger ocksÄ av perioder av datavaliditet baserat pÄ de primÀra nycklar som delta-data har kommit in via. Dessutom mÄste den oförÀndrade datadelen skrivas om. Men detta Àr nödvÀndigt eftersom Hive inte har delete- eller update-operationer.

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

I fallet RDBMS ser graferna för inkrementell datauppdatering mer optimala ut eftersom RDBMS faktiskt har uppdateringsmöjligheter.

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

Det inkommande delta laddas in i en mellanliggande tabell i databasen. DÀrefter kopplas delta ihop med data som fanns i tabellen innan uppdateringen, och detta görs med hjÀlp av SQL via en genererad SQL-frÄga. Sedan utförs en insert av nya data frÄn delta till den mÄltabellen och perioderna för datavaliditet baserat pÄ de primÀra nycklar som delta-data har kommit in via, stÀngs av med SQL-kommandon delete+insert.
Det finns ingen anledning att skriva om oförÀndrad data.

DÀrmed drar vi slutsatsen att nÀr det gÀller Hive, sÄ mÄste MDW gÄ till att skriva om hela tabellen eftersom Hive inte har nÄgon uppdateringsfunktion. Inga bÀttre metoder för full dataskrivning vid uppdatering har hittats. I fallet med RDBMS, dÀremot, beslöt produktens skapare att överlÄta ansvaret för koppling och uppdatering av tabeller till anvÀndningen av SQL.

För projektet pÄ Sberbank skapade vi en ny, ÄteranvÀndbar implementering av databasladdaren för GreenPlum. Detta baserades pÄ den version som MDW genererar för Teradata. Just Teradata, inte Oracle, passade bÀst och var nÀrmast, eftersom det ocksÄ Àr ett MPP-system. Arbetsmetoder samt syntaxen för Teradata och GreenPlum visade sig vara liknande.

Exempel pÄ kritiska skillnader för MDW mellan olika RDBMS Àr följande. I GreenPlum, till skillnad frÄn Teradata, mÄste en klausul skrivas vid skapande av tabeller.

distributed by

I Teradata skriver man

ta bort <table> all

, medan i GreenPlum skriver man

ta bort från <table>

I Oracle skriver man för att optimera

delete from t where rowid in ()

, medan i Teradata och GreenPlum skriver man

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

Vi noterade ocksÄ att för att Ab Initio skulle fungera med GreenPlum krÀvdes installation av GreenPlum-klienten pÄ alla noder i Ab Initio-klustret. Detta berodde pÄ att vi anslöt oss till GreenPlum samtidigt frÄn alla noder i vÄrt kluster. För att möjliggöra parallell lÀsning frÄn GreenPlum, sÄ att varje parallell ström av Ab Initio skulle lÀsa sin portion data frÄn GreenPlum, var vi tvungna att införa en konstruktion som Ab Initio förstÄr i sektionen «where» i SQL-frÄgorna.

where ABLOCAL()

och definiera vÀrdet av denna konstruktion genom att ange parameter för databasinlÀsande transformationer

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

, vilket kompileras till nÄgot liknande

mod(sk,10)=3

, det vill sÀga vi mÄste ge GreenPlum ett explicit filter för varje partition. För andra databaser (Teradata, Oracle) kan Ab Initio automatiskt utföra denna parallellisering.

JÀmförande prestandakarakteristika för Ab Initio i arbetet med Hive och GreenPlum

PÄ Sberbank genomfördes ett experiment för att jÀmföra prestanda av de genererade MDW-grafarna i förhÄllande till Hive och GreenPlum. Inom ramen för experimentet fanns det 5 noder för Hive i samma kluster som Ab Initio, medan det för GreenPlum fanns 4 noder pÄ ett separat kluster. Det vill sÀga, Hive hade en viss fördel över GreenPlum vad gÀller hÄrdvaran.

TvÄ par grafar som utförde samma datauppdateringsuppgift i Hive och GreenPlum granskades. Dessa kördes med grafar som genererats av MDW-konfiguratorn:

  • initiell laddning + inkrementell laddning av slumpmĂ€ssigt genererade data till en Hive-tabell
  • initiell laddning + inkrementell laddning av slumpmĂ€ssigt genererade data till en liknande GreenPlum-tabell

I bÄda fallen (Hive och GreenPlum) kördes dataladdningar i 10 parallella strömmar pÄ samma Ab Initio-kluster. IntermediÀra data för berÀkningarna sparades i HDFS (i termer av Ab Initio anvÀndes MFS layout using HDFS). En rad slumpmÀssigt genererade data tog i bÄda fallen 200 byte.

Resultatet blev följande:

Hive:

Initierande laddning i Hive

Satts in rader
6 000 000
60 000 000
600 000 000

Varaktighet av den initierande
laddningen i sekunder
41
203
1 601

Inkrementell laddning i Hive

Antal rader som fanns i
mÄltabellen vid experimentets början
6 000 000
60 000 000
600 000 000

Antal delta-rader som tillÀmpades pÄ
mÄltabellen under experimentet
6 000 000
6 000 000
6 000 000

Varaktighet av den inkrementella
laddningen i sekunder
88
299
2 541

GreenPlum:

Initierande laddning i GreenPlum

Satts in rader
6 000 000
60 000 000
600 000 000

Varaktighet av den initierande
laddningen i sekunder
72
360
3 631

Inkrementell laddning i GreenPlum

Antal rader som fanns i
mÄltabellen vid experimentets början
6 000 000
60 000 000
600 000 000

Antal delta-rader som tillÀmpades pÄ
mÄltabellen under experimentet
6 000 000
6 000 000
6 000 000

Varaktighet av den inkrementella
laddningen i sekunder
159
199
321

Vi ser att hastigheten pÄ den initierande laddningen, bÄde i Hive och GreenPlum, linjÀrt beror pÄ datamÀngden och pÄ grund av bÀttre hÄrdvara Àr den nÄgot snabbare för Hive Àn för GreenPlum.

Den inkrementella laddningen i Hive beror ocksĂ„ linjĂ€rt pĂ„ mĂ€ngden tidigare inlĂ€sta data i mĂ„ltabellen och gĂ„r ganska lĂ„ngsamt i takt med att volymen ökar. Detta orsakas av behovet av att skriva om hela mĂ„ltabellen. Det betyder att tillĂ€mpningen av smĂ„ förĂ€ndringar pĂ„ stora tabeller – inte Ă€r ett sĂ€rskilt bra anvĂ€ndningsalternativ för Hive.

Den inkrementella laddningen i GreenPlum beror svagt pÄ mÀngden tidigare inlÀsta data i mÄltabellen och gÄr ganska snabbt. Detta beror pÄ SQL Joins och GreenPlums arkitektur, som tillÄter delete-operationer.

SÄledes injicerar GreenPlum delta med delete+insert-metoden, medan det inte finns nÄgra delete- eller update-operationer i Hive, vilket innebÀr att hela datamÀngden vid inkrementell uppdatering var tvungen att skrivas om helt. Det mest exempelaktiga jÀmförelsen av de fetmarkerade cellerna, eftersom de motsvarar det vanligaste anvÀndningsalternativet för resurskrÀvande laddningar. Vi ser att GreenPlum vann över Hive i detta test med 8 gÄnger.

Arbete med Ab Initio och GreenPlum i Near Real Time-lÀget

I detta experiment kommer vi att undersöka möjligheten för Ab Initio att uppdatera GreenPlum-tabellen med slumpmÀssigt genererade datamÀngder i ett lÀge som Àr nÀra realtidsbehandling. Vi kommer att titta pÄ GreenPlum-tabellen dev42_1_db_usl.TESTING_SUBJ_org_finval, som kommer att arbete med.

Vi kommer att anvÀnda tre Ab Initio-grafer för att arbeta med den:

1) Graf Create_test_data.mp – skapar i 10 parallella flöden filer med data i HDFS med 6 000 000 rader. Data Ă€r slumpmĂ€ssiga, deras struktur Ă€r organiserad för insĂ€ttning i vĂ„r tabell.

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

2) Graf mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset – genererad MDW graf för initierande insĂ€ttning av data i vĂ„r tabell i 10 parallella flöden (testdata som genererats av graf (1) anvĂ€nds).

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

3) Graf mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset – genererad MDW graf för inkrementell uppdatering av vĂ„r tabell i 10 parallella flöden med anvĂ€ndning av en portion fĂ€rska inkommande data (delta), genererade av graf (1).

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum

Vi kommer att utföra det nedanstÄende scenariot i NRT-lÀge:

  • generera 6 000 000 testrader.
  • utföra initierande laddning och sĂ€tta in 6 000 000 testrader i en tom tabell.
  • upprepa inkrementell laddning 5 gĂ„nger.
    • generera 6 000 000 testrader.
    • utföra inkrementell insĂ€ttning av 6 000 000 testrader i tabellen (vid detta tillfĂ€lle sĂ€tts gammal data med ett utgĂ„ngsdatum valid_to_ts och mer fĂ€rsk data med samma primĂ€ra nyckel sĂ€tts in).

Detta scenario emulerar lĂ€get för verkligt arbete i ett affĂ€rssystem – en tillrĂ€ckligt stor portion nya data dyker upp i realtid och flödar in i GreenPlum.

Nu ser vi loggen för scenariets arbete:

Starta Create_test_data.input.pset vid 2020-06-04 11:49:11.
Avsluta Create_test_data.input.pset vid 2020-06-04 11:49:37.
Starta mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:49:37.
Avsluta mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:50:42.
Starta Create_test_data.input.pset vid 2020-06-04 11:50:42.
Avsluta Create_test_data.input.pset vid 2020-06-04 11:51:06.
Starta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:51:06.
Avsluta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:53:41.
Starta Create_test_data.input.pset vid 2020-06-04 11:53:41.
Avsluta Create_test_data.input.pset vid 2020-06-04 11:54:04.
Starta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:54:04.
Avsluta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:56:51.
Starta Create_test_data.input.pset vid 2020-06-04 11:56:51.
Avsluta Create_test_data.input.pset vid 2020-06-04 11:57:14.
Starta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:57:14.
Avsluta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:59:55.
Starta Create_test_data.input.pset vid 2020-06-04 11:59:55.
Avsluta Create_test_data.input.pset vid 2020-06-04 12:00:23.
Starta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 12:00:23.
Avsluta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 12:03:23.
Starta Create_test_data.input.pset vid 2020-06-04 12:03:23.
Avsluta Create_test_data.input.pset vid 2020-06-04 12:03:49.
Start mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 12:03:49
Finish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 12:06:46

Det ser ut sÄ hÀr:

Diagram
Starttid
Sluttid
LĂ€ngd

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

Vi ser att 6 000 000 rader av inkrementet behandlas pÄ 3 minuter, vilket Àr ganska snabbt.
Data i mÄltabellen har delats upp pÄ följande sÀtt:

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;

NÀr ni har St. Petersburg-skala. AnvÀndning av Ab Initio vid arbete med Hive och GreenPlum
Man kan se överensstÀmmelsen mellan de insatta uppgifterna och tidpunkterna för grafstart.
Det innebÀr att man kan köra en inkrementell dataladdning i GreenPlum med Ab Initio med mycket hög frekvens och observera en hög hastighet pÄ insÀttning av dessa data i GreenPlum. SjÀlvklart Àr det inte möjligt att köra varje sekund, eftersom Ab Initio, liksom alla ETL-verktyg, krÀver tid för att "komma igÄng".

Slutsats

För nÀrvarande anvÀnds Ab Initio pÄ Sberbank för att bygga en enhetlig semantisk datalager (ESL). Detta projekt innebÀr att skapa en enhetlig version av tillstÄndet för olika bankaffÀrsenheter. Informationen kommer frÄn olika kÀllor, vars repliker förbereds pÄ Hadoop. Beroende pÄ affÀrens behov förbereds en datamodell och datatransformationer beskrivs. Ab Initio laddar informationen i ESL och de laddade uppgifterna Àr inte bara av intresse för verksamheten i sig, utan fungerar ocksÄ som kÀlla för att bygga datavitriner. Samtidigt gör produktens funktionalitet det möjligt att anvÀnda olika system som mottagare (Hive, Greenplum, Teradata, Oracle), vilket möjliggör att förbereda data för verksamheten i olika önskade format utan större anstrÀngning.

Möjligheterna med Ab Initio Àr omfattande, till exempel ger det medföljande MDW-ramverket möjligheten att bygga teknisk och affÀrshistorik för data "ur lÄdan". För utvecklare ger Ab Initio möjligheten att "inte uppfinna hjulet", utan att anvÀnda mÄnga befintliga funktionella komponenter, som i grunden Àr bibliotek som behövs vid arbete med data.

Författaren Àr expert inom det professionella samfundet Sberbank SberProfi DWH/BigData. Det professionella SberProfi DWH/BigData-samhÀllet ansvarar för utvecklingen av kompetenser inom omrÄden som Hadoop-ekosystemet, Teradata, Oracle DB, GreenPlum samt BI-verktyg som Qlik, SAP BO, Tableau och andra.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster