{"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\/sv\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","title":{"rendered":"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>F\u00f6r en tid sedan stod vi inf\u00f6r valet av ett ETL-verktyg f\u00f6r arbete med Big Data. Den tidigare anv\u00e4nda l\u00f6sningen Informatica BDM var inte tillfredsst\u00e4llande p\u00e5 grund av dess begr\u00e4nsade funktionalitet. Anv\u00e4ndningen begr\u00e4nsades till ett ramverk f\u00f6r att k\u00f6ra spark-submit-kommandon. Det fanns inte s\u00e5 m\u00e5nga analoger p\u00e5 marknaden som egentligen kunde hantera den datam\u00e4ngd som vi arbetar med varje dag. I slut\u00e4ndan valde vi Ab Initio. Under pilotdemonstrationer visade produkten mycket h\u00f6g hastighet vid databehandling. Det finns n\u00e4stan ingen information om Ab Initio p\u00e5 ryska, d\u00e4rf\u00f6r beslutade vi att dela med oss av v\u00e5r erfarenhet p\u00e5 Habr.<\/p>\n<p>Ab Initio har m\u00e5nga klassiska och ovanliga transformationer, vars kod kan utvidgas med hj\u00e4lp av sitt eget spr\u00e5k PDL. F\u00f6r sm\u00e5 f\u00f6retag kan ett s\u00e5 kraftfullt verktyg vara \u00f6verfl\u00f6digt, och de flesta av dess funktioner kan visa sig vara dyra och oanv\u00e4ndbara. Men om din verksamhet n\u00e4rmar sig storleken p\u00e5 Sberbank, kan Ab Initio vara intressant f\u00f6r er. <\/p>\n<p>Det hj\u00e4lper f\u00f6retag att globalt samla kunskap och utveckla ekosystemet, och f\u00f6r utvecklare ger det m\u00f6jlighet att f\u00f6rb\u00e4ttra sina f\u00e4rdigheter inom ETL, f\u00f6rdjupa sina kunskaper i shell, ger m\u00f6jlighet att l\u00e4ra sig PDL-spr\u00e5ket, erbjuder en visuell bild av inl\u00e4sningsprocesserna, och f\u00f6renklar utvecklingen genom ett \u00f6verfl\u00f6d av funktionskomponenter.<\/p>\n<p>I detta inl\u00e4gg kommer jag att ber\u00e4tta om m\u00f6jligheterna med Ab Initio och ge j\u00e4mf\u00f6rande egenskaper f\u00f6r dess arbete med Hive och GreenPlum.<\/p>\n<ul>\n<li>Beskrivning av ramverket MDW och arbeten med dess anpassning f\u00f6r GreenPlum<\/li>\n<li>J\u00e4mf\u00f6rande prestandakarakteristika f\u00f6r Ab Initio i arbetet med Hive och GreenPlum<\/li>\n<li>Arbete med Ab Initio och GreenPlum i Near Real Time-l\u00e4get<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nFunktionaliteten hos denna produkt \u00e4r mycket bred och kr\u00e4ver gott om tid f\u00f6r att l\u00e4ra sig. Men med r\u00e4tt arbetsf\u00e4rdigheter och optimala inst\u00e4llningar kan databehandlingsresultaten vara mycket imponerande. Anv\u00e4ndningen av Ab Initio kan ge utvecklaren en intressant erfarenhet. Det erbjuder ett nytt perspektiv p\u00e5 ETL-utveckling, en hybrid mellan visuell milj\u00f6 och utveckling av inl\u00e4sningar med ett skriptliknande spr\u00e5k.<\/p>\n<p>F\u00f6retag utvecklar sina ekosystem och det h\u00e4r verktyget kommer som en aldrig tidigare sk\u00e5dad hj\u00e4lp. Med hj\u00e4lp av Ab Initio kan man samla kunskap om den aktuella aff\u00e4rsverksamheten och anv\u00e4nda denna kunskap f\u00f6r att expandera gamla och \u00f6ppna nya aff\u00e4rsm\u00f6jligheter. Alternativ till Ab Initio inkluderar de visuella utvecklingsmilj\u00f6erna Informatica BDM och de icke-visuella milj\u00f6erna \u2013 Apache Spark.<\/p>\n<h3>Beskrivning av Ab Initio<\/h3>\n<p>\nAb Initio, precis som andra ETL-verktyg, \u00e4r en upps\u00e4ttning produkter.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c467fe1e8455805075856967b577f8b7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAb Initio GDE (Graphical Development Environment) \u00e4r en milj\u00f6 f\u00f6r utvecklare d\u00e4r de konfigurerar datatransformationer och kopplar dem med datastreams i form av pilar. En s\u00e5dan upps\u00e4ttning transformationer kallas ett graf:<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/7b0c19a82ae8b461a9bd85117555e106.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn- och utg\u00e5ngsanslutningar f\u00f6r funktionella komponenter \u00e4r portar och inneh\u00e5ller f\u00e4lt som ber\u00e4knas inom transformationerna. Flera grafer, sammankopplade med str\u00f6mmar i form av pilar i den ordning de utf\u00f6rs, kallas en plan.<\/p>\n<p>Det finns flera hundra funktionella komponenter, vilket \u00e4r mycket. M\u00e5nga av dem \u00e4r smal specialiserade. M\u00f6jligheterna f\u00f6r klassiska transformationer i Ab Initio \u00e4r bredare \u00e4n i andra ETL-verktyg. Till exempel har Join flera utg\u00e5ngar. Ut\u00f6ver resultatet av sammankopplingen av dataset kan man f\u00e5 ut poster fr\u00e5n de inmatade dataset vars nycklar inte kunde koblas samman. Man kan ocks\u00e5 f\u00e5 rejects, errors och loggar fr\u00e5n transformationens arbete, som kan l\u00e4sas i samma graf som en textfil och bearbetas med andra transformationer:<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c7d70879daad364a3d4aa41a0a1b738d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEller, som exempel, kan man materialisera datamottagaren i form av en tabell och l\u00e4sa data fr\u00e5n den i samma graf.<\/p>\n<p>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\u00e4nda parametrar f\u00f6r k\u00f6rningen, inklusive \u00f6verf\u00f6ring av parametrar fr\u00e5n operativsystemet eller till operativsystemet. Filer med en f\u00e4rdig upps\u00e4ttning parametrar som \u00f6verf\u00f6rs till grafen kallas parameter sets (psets).<\/p>\n<p>Som sig b\u00f6r har Ab Initio GDE sitt eget repository, ben\u00e4mnt EME (Enterprise Meta Environment). Utvecklare har m\u00f6jlighet att arbeta med lokala versioner av koden och checka in sina utvecklingar i det centrala repositoryt.<\/p>\n<p>Det finns m\u00f6jlighet att under k\u00f6rning eller efter att grafen har k\u00f6rts klicka p\u00e5 vilket som helst anslutande transformationsfl\u00f6de och se data som har passerat mellan dessa transformationer:<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/a674507b2cd25b980cb862bda2e10cbe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet finns ocks\u00e5 m\u00f6jlighet att klicka p\u00e5 vilket som helst fl\u00f6de och se sp\u00e5rningsdetaljer \u2013 hur m\u00e5nga paralleller transformationen har arbetat med, hur m\u00e5nga rader och byte som laddades i vilken av parallellerna:<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/6188d17bebe756ee59e6956f9a40ec43.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet finns m\u00f6jlighet att dela upp k\u00f6rningen av grafen i faser och markera vilka transformationer som ska utf\u00f6ras f\u00f6rst (i nollfasen), f\u00f6ljande i f\u00f6rsta fasen, n\u00e4sta i andra fasen etc.<\/p>\n<p>Varje transformation kan v\u00e4lja en s\u00e5 kallad layout (var den ska k\u00f6ras): utan paralleller eller i parallella fl\u00f6den, vars antal kan anges. Tempor\u00e4ra filer som Ab Initio skapar under transformationsarbetet kan placeras antingen i filsystemet <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sv\/server\/dts-los-angeles\/\"   title=\"servern\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3635\">servern<\/a>, eller i HDFS.<\/p>\n<p>I varje transformation baserad p\u00e5 en standardmall kan man skapa sitt eget skript p\u00e5 PDL-spr\u00e5ket, som p\u00e5minner lite om shell. <\/p>\n<p>Med hj\u00e4lp av PDL-spr\u00e5ket kan du ut\u00f6ka funktionaliteten f\u00f6r transformationerna och specifikt kan du dynamiskt (under k\u00f6rning) generera godtyckliga kodfragment beroende p\u00e5 k\u00f6rningsparametrarna.<\/p>\n<p>Ab Initio har ocks\u00e5 bra integration med operativsystemet via shell. Specifikt anv\u00e4nds linux ksh p\u00e5 Sberbank. Man kan utbyta variabler med shell och anv\u00e4nda dem som parametrar f\u00f6r grafer. Man kan anropa k\u00f6rningen av Ab Initio-grafen fr\u00e5n shell och administrera Ab Initio.<\/p>\n<p>F\u00f6rutom Ab Initio GDE levereras m\u00e5nga andra produkter. Det finns sin egen Co&gt;Operation System som g\u00f6r anspr\u00e5k p\u00e5 att vara ett operativsystem. Det finns Control&gt;Center, d\u00e4r man kan schemal\u00e4gga och \u00f6vervaka laddningsfl\u00f6den. Det finns produkter f\u00f6r att utf\u00f6ra utveckling p\u00e5 en mer primitiv niv\u00e5 \u00e4n vad Ab Initio GDE till\u00e5ter.<\/p>\n<h3>Beskrivning av ramverket MDW och arbeten med dess anpassning f\u00f6r GreenPlum<\/h3>\n<p>\nTillsammans med sina produkter levererar leverant\u00f6ren produkten MDW (Metadata Driven Warehouse), som \u00e4r en grafkonfigurator avsedd att hj\u00e4lpa till med typiska uppgifter f\u00f6r att fylla datalager eller data vaults.<\/p>\n<p>Den inneh\u00e5ller anv\u00e4ndardefinierade (projektspecifika) metadata-parse och f\u00e4rdiga kodgeneratorer \u201cur l\u00e5dan\u201d.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/0842ecb9550f369875103ccb23cdf121.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMDW tar emot en datamodell, en konfigurationsfil f\u00f6r anslutning till databasen (Oracle, Teradata eller Hive) och n\u00e5gra andra inst\u00e4llningar. Projekt-specifika delar, som att distribuera modellen i databasen, hanteras ocks\u00e5. Produktens standarddel genererar grafer och konfigurationsfiler f\u00f6r dem n\u00e4r data laddas in i modellens tabeller. Grafer (och psets) skapas f\u00f6r flera l\u00e4gen av initierande och inkrementell uppdatering av entiteter.<\/p>\n<p>F\u00f6r Hive och RDBMS genereras olika grafer f\u00f6r initierande och inkrementell datauppdatering.<\/p>\n<p>I fallet med Hive s\u00e5 kopplas de inkommande delta-data ihop med data som fanns i tabellen innan uppdateringen genom Ab Initio Join. Datainladdare i MDW (b\u00e5de i Hive och RDBMS) injicerar inte bara nya data fr\u00e5n delta, utan st\u00e4nger ocks\u00e5 av perioder av datavaliditet baserat p\u00e5 de prim\u00e4ra nycklar som delta-data har kommit in via. Dessutom m\u00e5ste den of\u00f6r\u00e4ndrade datadelen skrivas om. Men detta \u00e4r n\u00f6dv\u00e4ndigt eftersom Hive inte har delete- eller update-operationer.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/36b6dd7c4d45727ad7d7aa1183fdd5fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI fallet RDBMS ser graferna f\u00f6r inkrementell datauppdatering mer optimala ut eftersom RDBMS faktiskt har uppdateringsm\u00f6jligheter.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b62ac222bed575a60b632b13e012f603.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet inkommande delta laddas in i en mellanliggande tabell i databasen. D\u00e4refter kopplas delta ihop med data som fanns i tabellen innan uppdateringen, och detta g\u00f6rs med hj\u00e4lp av SQL via en genererad SQL-fr\u00e5ga. Sedan utf\u00f6rs en insert av nya data fr\u00e5n delta till den m\u00e5ltabellen och perioderna f\u00f6r datavaliditet baserat p\u00e5 de prim\u00e4ra nycklar som delta-data har kommit in via, st\u00e4ngs av med SQL-kommandon delete+insert. <br \/>\nDet finns ingen anledning att skriva om of\u00f6r\u00e4ndrad data.<\/p>\n<p>D\u00e4rmed drar vi slutsatsen att n\u00e4r det g\u00e4ller Hive, s\u00e5 m\u00e5ste MDW g\u00e5 till att skriva om hela tabellen eftersom Hive inte har n\u00e5gon uppdateringsfunktion. Inga b\u00e4ttre metoder f\u00f6r full dataskrivning vid uppdatering har hittats. I fallet med RDBMS, d\u00e4remot, besl\u00f6t produktens skapare att \u00f6verl\u00e5ta ansvaret f\u00f6r koppling och uppdatering av tabeller till anv\u00e4ndningen av SQL.<\/p>\n<p>F\u00f6r projektet p\u00e5 Sberbank skapade vi en ny, \u00e5teranv\u00e4ndbar implementering av databasladdaren f\u00f6r GreenPlum. Detta baserades p\u00e5 den version som MDW genererar f\u00f6r Teradata. Just Teradata, inte Oracle, passade b\u00e4st och var n\u00e4rmast, eftersom det ocks\u00e5 \u00e4r ett MPP-system. Arbetsmetoder samt syntaxen f\u00f6r Teradata och GreenPlum visade sig vara liknande.<\/p>\n<p>Exempel p\u00e5 kritiska skillnader f\u00f6r MDW mellan olika RDBMS \u00e4r f\u00f6ljande. I GreenPlum, till skillnad fr\u00e5n Teradata, m\u00e5ste en klausul skrivas vid skapande av tabeller.<\/p>\n<pre><code class=\"sql\">distributed by<\/code><\/pre>\n<p>\nI Teradata skriver man<\/p>\n<pre><code class=\"sql\">ta bort &lt;table&gt; all<\/code><\/pre>\n<p>\n, medan i GreenPlum skriver man<\/p>\n<pre><code class=\"sql\">ta bort fr&aring;n &lt;table&gt;<\/code><\/pre>\n<p>\nI Oracle skriver man f\u00f6r att optimera<\/p>\n<pre><code class=\"sql\">delete from t where rowid in ()<\/code><\/pre>\n<p>\n, medan i Teradata och GreenPlum skriver man<\/p>\n<pre><code class=\"sql\">delete from t where exists (select * from delta where delta.pk=t.pk)<\/code><\/pre>\n<p>\nVi noterade ocks\u00e5 att f\u00f6r att Ab Initio skulle fungera med GreenPlum kr\u00e4vdes installation av GreenPlum-klienten p\u00e5 alla noder i Ab Initio-klustret. Detta berodde p\u00e5 att vi ansl\u00f6t oss till GreenPlum samtidigt fr\u00e5n alla noder i v\u00e5rt kluster. F\u00f6r att m\u00f6jligg\u00f6ra parallell l\u00e4sning fr\u00e5n GreenPlum, s\u00e5 att varje parallell str\u00f6m av Ab Initio skulle l\u00e4sa sin portion data fr\u00e5n GreenPlum, var vi tvungna att inf\u00f6ra en konstruktion som Ab Initio f\u00f6rst\u00e5r i sektionen \u00abwhere\u00bb i SQL-fr\u00e5gorna.<\/p>\n<pre><code class=\"sql\">where ABLOCAL()<\/code><\/pre>\n<p>\noch definiera v\u00e4rdet av denna konstruktion genom att ange parameter f\u00f6r databasinl\u00e4sande transformationer<\/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, vilket kompileras till n\u00e5got liknande<\/p>\n<pre><code class=\"sql\">mod(sk,10)=3<\/code><\/pre>\n<p>\n, det vill s\u00e4ga vi m\u00e5ste ge GreenPlum ett explicit filter f\u00f6r varje partition. F\u00f6r andra databaser (Teradata, Oracle) kan Ab Initio automatiskt utf\u00f6ra denna parallellisering.<\/p>\n<h3>J\u00e4mf\u00f6rande prestandakarakteristika f\u00f6r Ab Initio i arbetet med Hive och GreenPlum<\/h3>\n<p>\nP\u00e5 Sberbank genomf\u00f6rdes ett experiment f\u00f6r att j\u00e4mf\u00f6ra prestanda av de genererade MDW-grafarna i f\u00f6rh\u00e5llande till Hive och GreenPlum. Inom ramen f\u00f6r experimentet fanns det 5 noder f\u00f6r Hive i samma kluster som Ab Initio, medan det f\u00f6r GreenPlum fanns 4 noder p\u00e5 ett separat kluster. Det vill s\u00e4ga, Hive hade en viss f\u00f6rdel \u00f6ver GreenPlum vad g\u00e4ller h\u00e5rdvaran.<\/p>\n<p>Tv\u00e5 par grafar som utf\u00f6rde samma datauppdateringsuppgift i Hive och GreenPlum granskades. Dessa k\u00f6rdes med grafar som genererats av MDW-konfiguratorn:<\/p>\n<ul>\n<li>initiell laddning + inkrementell laddning av slumpm\u00e4ssigt genererade data till en Hive-tabell<\/li>\n<li>initiell laddning + inkrementell laddning av slumpm\u00e4ssigt genererade data till en liknande GreenPlum-tabell<\/li>\n<\/ul>\n<p>\nI b\u00e5da fallen (Hive och GreenPlum) k\u00f6rdes dataladdningar i 10 parallella str\u00f6mmar p\u00e5 samma Ab Initio-kluster. Intermedi\u00e4ra data f\u00f6r ber\u00e4kningarna sparades i HDFS (i termer av Ab Initio anv\u00e4ndes MFS layout using HDFS). En rad slumpm\u00e4ssigt genererade data tog i b\u00e5da fallen 200 byte.<\/p>\n<p>Resultatet blev f\u00f6ljande:<\/p>\n<p><b>Hive:<\/b><\/p>\n<p><b>Initierande laddning i Hive<\/b><\/p>\n<p>Satts in rader<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Varaktighet av den initierande<br \/>\nladdningen i sekunder<br \/>\n41<br \/>\n203<br \/>\n1 601<\/p>\n<p><b>Inkrementell laddning i Hive<\/b><\/p>\n<p>Antal rader som fanns i<br \/>\nm\u00e5ltabellen vid experimentets b\u00f6rjan<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Antal delta-rader som till\u00e4mpades p\u00e5<br \/>\nm\u00e5ltabellen under experimentet<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Varaktighet av den inkrementella<br \/>\nladdningen i sekunder<br \/>\n88<br \/>\n299<br \/>\n<b>2 541<\/b><\/p>\n<p>\n<b>GreenPlum:<\/b><\/p>\n<p><b>Initierande laddning i GreenPlum<\/b><\/p>\n<p>Satts in rader<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Varaktighet av den initierande<br \/>\nladdningen i sekunder<br \/>\n72<br \/>\n360<br \/>\n3 631<\/p>\n<p><b>Inkrementell laddning i GreenPlum<\/b><\/p>\n<p>Antal rader som fanns i<br \/>\nm\u00e5ltabellen vid experimentets b\u00f6rjan<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Antal delta-rader som till\u00e4mpades p\u00e5<br \/>\nm\u00e5ltabellen under experimentet<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Varaktighet av den inkrementella<br \/>\nladdningen i sekunder<br \/>\n159<br \/>\n199<br \/>\n<b>321<\/b><\/p>\n<p>\nVi ser att hastigheten p\u00e5 den initierande laddningen, b\u00e5de i Hive och GreenPlum, linj\u00e4rt beror p\u00e5 datam\u00e4ngden och p\u00e5 grund av b\u00e4ttre h\u00e5rdvara \u00e4r den n\u00e5got snabbare f\u00f6r Hive \u00e4n f\u00f6r GreenPlum.<\/p>\n<p>Den inkrementella laddningen i Hive beror ocks\u00e5 linj\u00e4rt p\u00e5 m\u00e4ngden tidigare inl\u00e4sta data i m\u00e5ltabellen och g\u00e5r ganska l\u00e5ngsamt i takt med att volymen \u00f6kar. Detta orsakas av behovet av att skriva om hela m\u00e5ltabellen. Det betyder att till\u00e4mpningen av sm\u00e5 f\u00f6r\u00e4ndringar p\u00e5 stora tabeller \u2013 inte \u00e4r ett s\u00e4rskilt bra anv\u00e4ndningsalternativ f\u00f6r Hive.<\/p>\n<p>Den inkrementella laddningen i GreenPlum beror svagt p\u00e5 m\u00e4ngden tidigare inl\u00e4sta data i m\u00e5ltabellen och g\u00e5r ganska snabbt. Detta beror p\u00e5 SQL Joins och GreenPlums arkitektur, som till\u00e5ter delete-operationer.<\/p>\n<p>S\u00e5ledes injicerar GreenPlum delta med delete+insert-metoden, medan det inte finns n\u00e5gra delete- eller update-operationer i Hive, vilket inneb\u00e4r att hela datam\u00e4ngden vid inkrementell uppdatering var tvungen att skrivas om helt. Det mest exempelaktiga j\u00e4mf\u00f6relsen av de fetmarkerade cellerna, eftersom de motsvarar det vanligaste anv\u00e4ndningsalternativet f\u00f6r resurskr\u00e4vande laddningar. Vi ser att GreenPlum vann \u00f6ver Hive i detta test med 8 g\u00e5nger.<\/p>\n<h3>Arbete med Ab Initio och GreenPlum i Near Real Time-l\u00e4get<\/h3>\n<p>\nI detta experiment kommer vi att unders\u00f6ka m\u00f6jligheten f\u00f6r Ab Initio att uppdatera GreenPlum-tabellen med slumpm\u00e4ssigt genererade datam\u00e4ngder i ett l\u00e4ge som \u00e4r n\u00e4ra realtidsbehandling. Vi kommer att titta p\u00e5 GreenPlum-tabellen dev42_1_db_usl.TESTING_SUBJ_org_finval, som kommer att arbete med.<\/p>\n<p>Vi kommer att anv\u00e4nda tre Ab Initio-grafer f\u00f6r att arbeta med den:<\/p>\n<p>1) Graf Create_test_data.mp \u2013 skapar i 10 parallella fl\u00f6den filer med data i HDFS med 6 000 000 rader. Data \u00e4r slumpm\u00e4ssiga, deras struktur \u00e4r organiserad f\u00f6r ins\u00e4ttning i v\u00e5r tabell.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/8cac605c1c5931313bd016a48fb6384e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och 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 genererad MDW graf f\u00f6r initierande ins\u00e4ttning av data i v\u00e5r tabell i 10 parallella fl\u00f6den (testdata som genererats av graf (1) anv\u00e4nds).<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och 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 genererad MDW graf f\u00f6r inkrementell uppdatering av v\u00e5r tabell i 10 parallella fl\u00f6den med anv\u00e4ndning av en portion f\u00e4rska inkommande data (delta), genererade av graf (1).<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/714a901616cf84e5a1fd7a764373e30f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVi kommer att utf\u00f6ra det nedanst\u00e5ende scenariot i NRT-l\u00e4ge:<\/p>\n<ul>\n<li>generera 6 000 000 testrader.<\/li>\n<li>utf\u00f6ra initierande laddning och s\u00e4tta in 6 000 000 testrader i en tom tabell.<\/li>\n<li>upprepa inkrementell laddning 5 g\u00e5nger.\n<ul>\n<li>generera 6 000 000 testrader.<\/li>\n<li>utf\u00f6ra inkrementell ins\u00e4ttning av 6 000 000 testrader i tabellen (vid detta tillf\u00e4lle s\u00e4tts gammal data med ett utg\u00e5ngsdatum valid_to_ts och mer f\u00e4rsk data med samma prim\u00e4ra nyckel s\u00e4tts in).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nDetta scenario emulerar l\u00e4get f\u00f6r verkligt arbete i ett aff\u00e4rssystem \u2013 en tillr\u00e4ckligt stor portion nya data dyker upp i realtid och fl\u00f6dar in i GreenPlum.<\/p>\n<p>Nu ser vi loggen f\u00f6r scenariets arbete:<\/p>\n<p><i>Starta Create_test_data.input.pset vid 2020-06-04 11:49:11.<br \/>\nAvsluta Create_test_data.input.pset vid 2020-06-04 11:49:37.<br \/>\nStarta mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:49:37.<br \/>\nAvsluta mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:50:42.<br \/>\nStarta Create_test_data.input.pset vid 2020-06-04 11:50:42.<br \/>\nAvsluta Create_test_data.input.pset vid 2020-06-04 11:51:06.<br \/>\nStarta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:51:06.<br \/>\nAvsluta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:53:41.<br \/>\nStarta Create_test_data.input.pset vid 2020-06-04 11:53:41.<br \/>\nAvsluta Create_test_data.input.pset vid 2020-06-04 11:54:04.<br \/>\nStarta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:54:04.<br \/>\nAvsluta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:56:51.<br \/>\nStarta Create_test_data.input.pset vid 2020-06-04 11:56:51.<br \/>\nAvsluta Create_test_data.input.pset vid 2020-06-04 11:57:14.<br \/>\nStarta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:57:14.<br \/>\nAvsluta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 11:59:55.<br \/>\nStarta Create_test_data.input.pset vid 2020-06-04 11:59:55.<br \/>\nAvsluta Create_test_data.input.pset vid 2020-06-04 12:00:23.<br \/>\nStarta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 12:00:23.<br \/>\nAvsluta mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset vid 2020-06-04 12:03:23.<br \/>\nStarta Create_test_data.input.pset vid 2020-06-04 12:03:23.<br \/>\nAvsluta Create_test_data.input.pset vid 2020-06-04 12:03:49.<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 12:03:49<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 12:06:46<\/i><\/p>\n<p>Det ser ut s\u00e5 h\u00e4r:<\/p>\n<p>Diagram<br \/>\nStarttid<br \/>\nSluttid<br \/>\nL\u00e4ngd<\/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>\nVi ser att 6 000 000 rader av inkrementet behandlas p\u00e5 3 minuter, vilket \u00e4r ganska snabbt.<br \/>\nData i m\u00e5ltabellen har delats upp p\u00e5 f\u00f6ljande s\u00e4tt:<\/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=\"N\u00e4r ni har St. Petersburg-skala. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/baefcfd8142f4ad6275333e3dcfccf94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMan kan se \u00f6verensst\u00e4mmelsen mellan de insatta uppgifterna och tidpunkterna f\u00f6r grafstart.<br \/>\nDet inneb\u00e4r att man kan k\u00f6ra en inkrementell dataladdning i GreenPlum med Ab Initio med mycket h\u00f6g frekvens och observera en h\u00f6g hastighet p\u00e5 ins\u00e4ttning av dessa data i GreenPlum. Sj\u00e4lvklart \u00e4r det inte m\u00f6jligt att k\u00f6ra varje sekund, eftersom Ab Initio, liksom alla ETL-verktyg, kr\u00e4ver tid f\u00f6r att \"komma ig\u00e5ng\".<\/p>\n<h2>Slutsats<\/h2>\n<p>\nF\u00f6r n\u00e4rvarande anv\u00e4nds Ab Initio p\u00e5 Sberbank f\u00f6r att bygga en enhetlig semantisk datalager (ESL). Detta projekt inneb\u00e4r att skapa en enhetlig version av tillst\u00e5ndet f\u00f6r olika bankaff\u00e4rsenheter. Informationen kommer fr\u00e5n olika k\u00e4llor, vars repliker f\u00f6rbereds p\u00e5 Hadoop. Beroende p\u00e5 aff\u00e4rens behov f\u00f6rbereds en datamodell och datatransformationer beskrivs. Ab Initio laddar informationen i ESL och de laddade uppgifterna \u00e4r inte bara av intresse f\u00f6r verksamheten i sig, utan fungerar ocks\u00e5 som k\u00e4lla f\u00f6r att bygga datavitriner. Samtidigt g\u00f6r produktens funktionalitet det m\u00f6jligt att anv\u00e4nda olika system som mottagare (Hive, Greenplum, Teradata, Oracle), vilket m\u00f6jligg\u00f6r att f\u00f6rbereda data f\u00f6r verksamheten i olika \u00f6nskade format utan st\u00f6rre anstr\u00e4ngning.<\/p>\n<p>M\u00f6jligheterna med Ab Initio \u00e4r omfattande, till exempel ger det medf\u00f6ljande MDW-ramverket m\u00f6jligheten att bygga teknisk och aff\u00e4rshistorik f\u00f6r data \"ur l\u00e5dan\". F\u00f6r utvecklare ger Ab Initio m\u00f6jligheten att \"inte uppfinna hjulet\", utan att anv\u00e4nda m\u00e5nga befintliga funktionella komponenter, som i grunden \u00e4r bibliotek som beh\u00f6vs vid arbete med data.<\/p>\n<blockquote><p>F\u00f6rfattaren \u00e4r expert inom det professionella samfundet Sberbank SberProfi DWH\/BigData. Det professionella SberProfi DWH\/BigData-samh\u00e4llet ansvarar f\u00f6r utvecklingen av kompetenser inom omr\u00e5den som Hadoop-ekosystemet, Teradata, Oracle DB, GreenPlum samt BI-verktyg som Qlik, SAP BO, Tableau och andra.<\/p><\/blockquote>\n<p>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47N\u00e4r ni har sparbanksstora ambitioner. Anv\u00e4ndning av Ab Initio vid arbete med Hive och GreenPlum | ProHoster","description":"F\u00f6r en tid sedan stod vi inf\u00f6r fr\u00e5gan om val av ETL-verktyg f\u00f6r arbete med BigData. Den tidigare anv\u00e4nda l\u00f6sningen Informatica BDM motsvarade inte v\u00e5ra f\u00f6rv\u00e4ntningar p\u00e5 grund av dess begr\u00e4nsade funktionalitet.","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/87609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=87609"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/87609\/revisions"}],"predecessor-version":[{"id":162163,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/87609\/revisions\/162163"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/87610"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=87609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=87609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=87609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}