{"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\/it\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","title":{"rendered":"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Qualche tempo fa ci siamo trovati di fronte alla necessit\u00e0 di scegliere uno strumento ETL per lavorare con Big Data. La soluzione precedente, Informatica BDM, non ci soddisfaceva a causa delle sue funzionalit\u00e0 limitate. Il suo utilizzo si era ridotto a un framework per l'esecuzione di comandi spark-submit. Sul mercato non c'erano molti analoghi in grado di gestire il volume di dati con cui abbiamo a che fare ogni giorno. Alla fine, abbiamo scelto Ab Initio. Durante le dimostrazioni pilota, il prodotto ha dimostrato di avere una velocit\u00e0 di elaborazione molto elevata. Le informazioni su Ab Initio in lingua russa sono quasi assenti, quindi abbiamo deciso di condividere la nostra esperienza su Habra.<\/p>\n<p>Ab Initio offre molte trasformazioni classiche e insolite, il cui codice pu\u00f2 essere esteso utilizzando il proprio linguaggio PDL. Per le piccole imprese, uno strumento cos\u00ec potente potrebbe essere eccessivo, con la maggior parte delle sue funzionalit\u00e0 che potrebbero risultare costose e non richieste. Ma se le tue operazioni si avvicinano a quelle di Sberbank, Ab Initio potrebbe interessarti. <\/p>\n<p>Aiuta le aziende a raccogliere conoscenze globalmente e a sviluppare ecosistemi, mentre consente agli sviluppatori di migliorare le proprie competenze in ETL, approfondire le proprie conoscenze in shell, offre la possibilit\u00e0 di apprendere il linguaggio PDL, fornisce una visione visiva dei processi di caricamento e semplifica lo sviluppo grazie a una vasta gamma di componenti funzionali.<\/p>\n<p>In questo articolo parler\u00f2 delle funzionalit\u00e0 di Ab Initio e fornir\u00f2 caratteristiche comparative del suo funzionamento con Hive e GreenPlum.<\/p>\n<ul>\n<li>Descrizione del framework MDW e dei lavori di personalizzazione per GreenPlum<\/li>\n<li>Caratteristiche comparative delle prestazioni di Ab Initio nell'interazione con Hive e GreenPlum<\/li>\n<li>Funzionamento di Ab Initio con GreenPlum in modalit\u00e0 Near Real Time<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nLa funzionalit\u00e0 di questo prodotto \u00e8 molto ampia e richiede tempo per essere studiata. Tuttavia, con le giuste abilit\u00e0 e impostazioni di prestazione, i risultati dell'elaborazione dei dati possono essere davvero impressionanti. L'uso di Ab Initio per uno sviluppatore pu\u00f2 fornire un'esperienza interessante, rappresentando una nuova prospettiva sullo sviluppo ETL, una fusione tra un ambiente visivo e lo sviluppo di caricamenti in un linguaggio simile a uno script.<\/p>\n<p>Le aziende stanno sviluppando i propri ecosistemi e questo strumento si rivela pi\u00f9 utile che mai. Con Ab Initio \u00e8 possibile accumulare conoscenze sul business attuale e utilizzare queste conoscenze per espandere le attivit\u00e0 esistenti e aprire nuove. Alternative ad Ab Initio includono gli ambienti di sviluppo visivi come Informatica BDM e quelli non visivi come Apache Spark.<\/p>\n<h3>Descrizione di Ab Initio<\/h3>\n<p>\nAb Initio, come altri strumenti ETL, \u00e8 un insieme di prodotti.<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c467fe1e8455805075856967b577f8b7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAb Initio GDE (Graphical Development Environment) \u00e8 l'ambiente per gli sviluppatori, in cui configurano le trasformazioni dei dati e le collegano tramite flussi di dati rappresentati con frecce. Questo insieme di trasformazioni \u00e8 chiamato grafo:<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/7b0c19a82ae8b461a9bd85117555e106.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe connessioni in ingresso e in uscita dei componenti funzionali sono porte e contengono campi calcolati all'interno delle trasformazioni. Pi\u00f9 grafi collegati tramite flussi di dati in un ordine di esecuzione sono chiamati piano.<\/p>\n<p>Ci sono diverse centinaia di componenti funzionali, il che \u00e8 notevole. Molti di loro sono specializzati. Le possibilit\u00e0 delle trasformazioni classiche in Ab Initio sono pi\u00f9 ampie rispetto ad altri strumenti ETL. Ad esempio, il Join ha pi\u00f9 output. Oltre al risultato della fusione dei dataset, \u00e8 possibile ottenere in output le registrazioni dei dataset di input per le chiavi che non sono riuscite a unirsi. Inoltre, \u00e8 possibile ottenere rejects, errors e il log del lavoro di trasformazione, che pu\u00f2 essere letto in quel grafico come file di testo e lavorato con altre trasformazioni:<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c7d70879daad364a3d4aa41a0a1b738d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOppure, ad esempio, \u00e8 possibile materializzare il ricevitore dati come una tabella e leggere i dati da essa in quel grafico.<\/p>\n<p>Ci sono trasformazioni originali. Ad esempio, la trasformazione Scan ha funzionalit\u00e0 simili a quelle delle funzioni analitiche. Ci sono trasformazioni con nomi parlanti: Create Data, Read Excel, Normalize, Sort within Groups, Run Program, Run SQL, Join with DB, e altre. I grafi possono utilizzare parametri di runtime, compresa la possibilit\u00e0 di passare parametri dal sistema operativo o al sistema operativo. I file con un set predefinito di parametri da passare al grafo vengono chiamati set di parametri (psets).<\/p>\n<p>Come da prassi, Ab Initio GDE ha il suo repository, denominato EME (Enterprise Meta Environment). Gli sviluppatori possono lavorare con versioni locali del codice e fare check-in delle loro modifiche nel repository centrale.<\/p>\n<p>\u00c8 possibile, durante o dopo l'esecuzione del grafo, cliccare su qualsiasi flusso che collega le trasformazioni e visualizzare i dati che sono passati tra queste trasformazioni:<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/a674507b2cd25b980cb862bda2e10cbe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c8 anche possibile cliccare su qualsiasi flusso e visualizzare i dettagli del tracciamento: quante parallelismi ha lavorato la trasformazione, quante righe e byte sono stati caricati in ciascuna delle parallelismi:<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/6188d17bebe756ee59e6956f9a40ec43.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi pu\u00f2 suddividere l'esecuzione del grafo in fasi e indicare quali trasformazioni devono essere eseguite per prime (nella fase zero), le successive nella prima fase, le successive nella seconda fase e cos\u00ec via.<\/p>\n<p>Per ogni trasformazione \u00e8 possibile scegliere il cosiddetto layout (dove verr\u00e0 eseguita): senza parallelismi o in flussi paralleli, il cui numero pu\u00f2 essere specificato. In questo caso, i file temporanei creati da Ab Initio durante l'esecuzione delle trasformazioni possono essere collocati sia nel file system <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/dts-los-angeles\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3635\">server<\/a>, sia in HDFS.<\/p>\n<p>In ogni trasformazione basata sul template predefinito, \u00e8 possibile creare il proprio script in PDL, che ricorda un po' il shell. <\/p>\n<p>Con il linguaggio PDL puoi estendere le funzionalit\u00e0 delle trasformazioni e, in particolare, puoi generare dinamicamente (durante l'esecuzione) frammenti di codice arbitrari in base ai parametri di runtime.<\/p>\n<p>In Ab Initio \u00e8 anche molto sviluppata l'integrazione con il sistema operativo tramite shell. In particolare, in Sberbank si utilizza il linux ksh. \u00c8 possibile scambiare variabili con la shell e usarle come parametri per i grafici. Dalla shell \u00e8 possibile avviare l'esecuzione dei grafi di Ab Initio e gestire Ab Initio.<\/p>\n<p>Oltre ad Ab Initio GDE, la fornitura include molti altri prodotti. C'\u00e8 il proprio Co&gt;Operation System che ambisce a essere un sistema operativo. C'\u00e8 Control&gt;Center, in cui \u00e8 possibile pianificare e monitorare i flussi di caricamento. Ci sono prodotti per lo sviluppo a un livello pi\u00f9 primitivo di quanto consentito da Ab Initio GDE.<\/p>\n<h3>Descrizione del framework MDW e dei lavori di personalizzazione per GreenPlum<\/h3>\n<p>\nInsieme ai propri prodotti, il fornitore offre il prodotto MDW (Metadata Driven Warehouse), che funge da configuratore di grafi, progettato per assistere nelle tipiche attivit\u00e0 di popolamento di data warehouse o data vault.<\/p>\n<p>Include parser di metadati personalizzati (specifici per il progetto) e generatori di codice pronti all'uso.<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/0842ecb9550f369875103ccb23cdf121.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMDW riceve in input un modello di dati, un file di configurazione per impostare la connessione al database (Oracle, Teradata o Hive) e alcune altre impostazioni. La parte specifica del progetto, ad esempio, distribuisce il modello nel database. La parte standard del prodotto genera grafi e file di configurazione per questi ultimi in base al caricamento dei dati nelle tabelle del modello. Vengono creati grafi (e psets) per diverse modalit\u00e0 di lavoro iniziale e incrementale per l'aggiornamento delle entit\u00e0.<\/p>\n<p>Nei casi di Hive e RDBMS, vengono generati grafi differenti per l'aggiornamento iniziale e incrementale dei dati.<\/p>\n<p>Nel caso di Hive, i dati della delta in arrivo vengono uniti tramite Ab Initio Join con i dati che erano nella tabella prima dell'aggiornamento. I caricamenti dei dati in MDW (sia in Hive che in RDBMS) non solo inseriscono nuovi dati dalla delta, ma chiudono anche i periodi di validit\u00e0 dei dati basati sulle chiavi primarie tramite le quali \u00e8 arrivata la delta. Inoltre, \u00e8 necessario riscrivere nuovamente la parte di dati che non \u00e8 cambiata. Questo \u00e8 necessario poich\u00e9 in Hive non ci sono operazioni di delete o update.<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/36b6dd7c4d45727ad7d7aa1183fdd5fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNel caso degli RDBMS, le colonne per l'aggiornamento incrementale dei dati appaiono pi\u00f9 ottimizzate, poich\u00e9 gli RDBMS hanno vere capacit\u00e0 di aggiornamento.<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b62ac222bed575a60b632b13e012f603.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa delta in arrivo viene caricata in una tabella intermedia nel database. Dopo di che, la delta viene unita con i dati che erano nella tabella prima dell'aggiornamento. Questo avviene tramite SQL tramite una query SQL generata. Successivamente, utilizzando i comandi SQL delete+insert, vengono inseriti i nuovi dati dalla delta nella tabella di destinazione e chiusi i periodi di validit\u00e0 dei dati basati sulle chiavi primarie tramite le quali \u00e8 arrivata la delta. <br \/>\nNon \u00e8 necessario riscrivere i dati invariati.<\/p>\n<p>Pertanto, siamo giunti alla conclusione che nel caso di Hive, MDW deve procedere alla riscrittura dell'intera tabella, poich\u00e9 Hive non dispone di funzionalit\u00e0 di aggiornamento. Non esiste soluzione migliore della completa riscrittura dei dati durante un aggiornamento. Nel caso degli RDBMS, al contrario, i creatori del prodotto hanno ritenuto opportuno affidare la connessione e l'aggiornamento delle tabelle all'uso di SQL.<\/p>\n<p>Per il progetto presso Sberbank, abbiamo creato una nuova implementazione di caricatore di database riutilizzabile per GreenPlum. Questo \u00e8 stato fatto sulla base di una versione generata da MDW per Teradata. \u00c8 stata proprio Teradata, e non Oracle, la scelta migliore, poich\u00e9 \u00e8 anch'essa un sistema MPP. Le modalit\u00e0 operative, cos\u00ec come la sintassi di Teradata e GreenPlum, si sono rivelate simili.<\/p>\n<p>Ecco alcuni esempi di differenze critiche per MDW tra diversi RDBMS. In GreenPlum, a differenza di Teradata, quando si creano tabelle \u00e8 necessario scrivere la clausola<\/p>\n<pre><code class=\"sql\">distributed by<\/code><\/pre>\n<p>\nIn Teradata si scrive<\/p>\n<pre><code class=\"sql\">elimina &lt;table&gt; all<\/code><\/pre>\n<p>\n, mentre in GreenPlum si scrive<\/p>\n<pre><code class=\"sql\">elimina da &lt;table&gt;<\/code><\/pre>\n<p>\nIn Oracle, a scopo di ottimizzazione si scrive<\/p>\n<pre><code class=\"sql\">delete from t where rowid in ()<\/code><\/pre>\n<p>\n, mentre in Teradata e GreenPlum si scrive<\/p>\n<pre><code class=\"sql\">delete from t where exists (select * from delta where delta.pk=t.pk)<\/code><\/pre>\n<p>\nInoltre, va notato che per l'utilizzo di Ab Initio con GreenPlum \u00e8 stata necessaria l'installazione del client GreenPlum su tutti i nodi del cluster Ab Initio. Questo perch\u00e9 ci siamo connessi a GreenPlum contemporaneamente da tutti i nodi del nostro cluster. E affinch\u00e9 la lettura da GreenPlum fosse parallela e ogni thread parallelo di Ab Initio leggesse la propria porzione di dati da GreenPlum, \u00e8 stato necessario inserire nella sezione \"where\" delle query SQL una costruzione comprensibile da Ab Initio.<\/p>\n<pre><code class=\"sql\">where ABLOCAL()<\/code><\/pre>\n<p>\n, e definire il valore di questa costruzione, specificando come parametro della trasformazione che legge dal DB<\/p>\n<pre><code class=\"sql\">ablocal_expr=\u00abstring_concat(&quot;mod(t.&quot;, string_filter_out(&quot;{$TABLE_KEY}&quot;,&quot;{}&quot;), &quot;,&quot;, (decimal(3))(number_of_partitions()),&quot;)=&quot;, (decimal(3))(this_partition()))\u00bb<\/code><\/pre>\n<p>\n, che viene compilata in qualcosa come<\/p>\n<pre><code class=\"sql\">mod(sk,10)=3<\/code><\/pre>\n<p>\n, ovvero \u00e8 necessario fornire a GreenPlum un filtro esplicito per ogni partizione. Per altri database (Teradata, Oracle) Ab Initio pu\u00f2 eseguire questa parallelizzazione automaticamente.<\/p>\n<h3>Caratteristiche comparative delle prestazioni di Ab Initio nell'interazione con Hive e GreenPlum<\/h3>\n<p>\nIn Sberbank, an experiment was conducted to compare the performance of generated MDW graphs related to Hive and GreenPlum. In the experiment, Hive utilized 5 nodes on the same cluster as Ab Initio, while GreenPlum had 4 nodes on a separate cluster. Thus, Hive had a slight hardware advantage over GreenPlum.<\/p>\n<p>Two pairs of graphs were examined, performing the same data update task in Hive and GreenPlum. The graphs generated by the MDW configurator were launched:<\/p>\n<ul>\n<li>initial loading + incremental loading of randomly generated data into the Hive table<\/li>\n<li>initial loading + incremental loading of randomly generated data into the equivalent GreenPlum table<\/li>\n<\/ul>\n<p>\nIn both cases (Hive and GreenPlum), the loads were executed in 10 parallel streams on the same Ab Initio cluster. Intermediate data for calculations was stored in HDFS (in Ab Initio terms, MFS layout using HDFS was used). One line of randomly generated data occupied 200 bytes in both cases.<\/p>\n<p>The result was as follows:<\/p>\n<p><b>Hive:<\/b><\/p>\n<p><b>Initial loading in Hive<\/b><\/p>\n<p>Rows inserted<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Durata del caricamento iniziale<br \/>\nin secondi<br \/>\n41<br \/>\n203<br \/>\n1 601<\/p>\n<p><b>Caricamento incrementale in Hive<\/b><\/p>\n<p>Numero di righe presenti nella<br \/>\ntabella di destinazione all'inizio dell'esperimento<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Numero di righe delta applicate alla<br \/>\ntabella di destinazione durante l'esperimento<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Durata del caricamento incrementale<br \/>\nin secondi<br \/>\n88<br \/>\n299<br \/>\n<b>2 541<\/b><\/p>\n<p>\n<b>GreenPlum:<\/b><\/p>\n<p><b>Caricamento iniziale in GreenPlum<\/b><\/p>\n<p>Rows inserted<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Durata del caricamento iniziale<br \/>\nin secondi<br \/>\n72<br \/>\n360<br \/>\n3 631<\/p>\n<p><b>Caricamento incrementale in GreenPlum<\/b><\/p>\n<p>Numero di righe presenti nella<br \/>\ntabella di destinazione all'inizio dell'esperimento<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Numero di righe delta applicate alla<br \/>\ntabella di destinazione durante l'esperimento<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Durata del caricamento incrementale<br \/>\nin secondi<br \/>\n159<br \/>\n199<br \/>\n<b>321<\/b><\/p>\n<p>\nSi osserva che la velocit\u00e0 del caricamento iniziale sia in Hive che in GreenPlum dipende linearmente dal volume dei dati e, a causa di un hardware migliore, \u00e8 leggermente pi\u00f9 veloce per Hive rispetto a GreenPlum.<\/p>\n<p>Il caricamento incrementale in Hive dipende anch'esso linearmente dal volume dei dati precedentemente caricati nella tabella di destinazione e avviene piuttosto lentamente con l'aumento del volume. Questo \u00e8 causato dalla necessit\u00e0 di riscrivere completamente la tabella di destinazione. Ci\u00f2 significa che applicare piccole modifiche a tabelle enormi non \u00e8 un buon utilizzo per Hive.<\/p>\n<p>Il caricamento incrementale in GreenPlum dipende scarsamente dal volume dei dati precedentemente caricati nella tabella di destinazione ed avviene piuttosto rapidamente. Questo \u00e8 possibile grazie alle SQL Joins e all'architettura di GreenPlum, che consente l'operazione di delete.<\/p>\n<p>Quindi, GreenPlum inserisce la delta tramite il metodo delete+insert, mentre in Hive non ci sono operazioni di delete o update, quindi l'intero insieme di dati durante l'aggiornamento incrementale deve essere riscritto completamente. \u00c8 particolarmente significativo il confronto delle celle evidenziate in grassetto, poich\u00e9 rappresentano la modalit\u00e0 di utilizzo pi\u00f9 comune per carichi di lavoro ad alta intensit\u00e0. Possiamo osservare che GreenPlum ha ottenuto un vantaggio rispetto a Hive in questo test di 8 volte.<\/p>\n<h3>Funzionamento di Ab Initio con GreenPlum in modalit\u00e0 Near Real Time<\/h3>\n<p>\nIn questo esperimento verificheremo la capacit\u00e0 di Ab Initio di aggiornare la tabella GreenPlum con porzioni casuali di dati in modalit\u00e0 simile al tempo reale. Consideriamo la tabella GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval, su cui lavoreremo.<\/p>\n<p>Utilizzeremo tre grafi di Ab Initio per lavorarci:<\/p>\n<p>1) Grafo Create_test_data.mp \u2013 crea file di dati in HDFS con 6.000.000 righe in 10 flussi paralleli. I dati sono casuali e la loro struttura \u00e8 organizzata per l'inserimento nella nostra tabella.<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/8cac605c1c5931313bd016a48fb6384e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b86988bf1722329bde60013ba025d600.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n2) Grafico mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset \u2013 grafico MDW generato dall'inserimento iniziale dei dati nella nostra tabella in 10 flussi paralleli (sono usati dati di test generati dal grafico (1))<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b4228a13c088c6b96abba35e9e58fe8e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n3) Grafico mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u2013 grafico MDW generato dall'aggiornamento incrementale della nostra tabella in 10 flussi paralleli utilizzando porzioni di nuovi dati in arrivo (delta), generati dal grafico (1)<\/p>\n<p><img decoding=\"async\" alt=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/714a901616cf84e5a1fd7a764373e30f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEseguiremo lo scenario riportato di seguito in modalit\u00e0 NRT:<\/p>\n<ul>\n<li>generare 6.000.000 righe di test<\/li>\n<li>effettuare un caricamento iniziale per inserire 6.000.000 righe di test in una tabella vuota<\/li>\n<li>ripetere 5 volte il caricamento incrementale\n<ul>\n<li>generare 6.000.000 righe di test<\/li>\n<li>effettuare un'inserzione incrementale di 6.000.000 righe di test nella tabella (i dati vecchi vengono dotati di un tempo di scadenza valid_to_ts e nuovi dati con la stessa chiave primaria vengono inseriti)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nQuesto scenario emula il funzionamento reale di un sistema aziendale: in tempo reale arriva una sufficiente quantit\u00e0 di nuovi dati e viene subito immessa in GreenPlum.<\/p>\n<p>Ora diamoci un'occhiata al registro dell'esecuzione dello scenario:<\/p>\n<p><i>Inizio Create_test_data.input.pset il 2020-06-04 11:49:11<br \/>\nFine Create_test_data.input.pset il 2020-06-04 11:49:37<br \/>\nInizio mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 11:49:37<br \/>\nFine mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 11:50:42<br \/>\nInizio Create_test_data.input.pset il 2020-06-04 11:50:42<br \/>\nFine Create_test_data.input.pset il 2020-06-04 11:51:06<br \/>\nInizio mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 11:51:06<br \/>\nFine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 11:53:41<br \/>\nInizio Create_test_data.input.pset il 2020-06-04 11:53:41<br \/>\nFine Create_test_data.input.pset il 2020-06-04 11:54:04<br \/>\nInizio mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 11:54:04<br \/>\nFine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 11:56:51<br \/>\nInizio Create_test_data.input.pset il 2020-06-04 11:56:51<br \/>\nFine Create_test_data.input.pset il 2020-06-04 11:57:14<br \/>\nInizio mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 11:57:14<br \/>\nFine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 11:59:55<br \/>\nInizio Create_test_data.input.pset il 2020-06-04 11:59:55<br \/>\nFine Create_test_data.input.pset il 2020-06-04 12:00:23<br \/>\nInizio mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 12:00:23<br \/>\nFine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 12:03:23<br \/>\nInizio Create_test_data.input.pset il 2020-06-04 12:03:23<br \/>\nFine Create_test_data.input.pset il 2020-06-04 12:03:49<br \/>\nInizio mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 12:03:49<br \/>\nFine mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset il 2020-06-04 12:06:46<\/i><\/p>\n<p>Questa \u00e8 la situazione:<\/p>\n<p>Grafico<br \/>\nStart time<br \/>\nTempo di fine<br \/>\nLunghezza<\/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>\n\u00c8 evidente che 6.000.000 righe di incremento vengono elaborate in 3 minuti, il che \u00e8 abbastanza veloce.<br \/>\nI dati nella tabella di destinazione si sono distribuiti nel seguente modo:<\/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=\"Quando operi su scala di grandi dimensioni. Uso di Ab Initio con Hive e GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/baefcfd8142f4ad6275333e3dcfccf94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSi pu\u00f2 notare la corrispondenza dei dati inseriti con i momenti di avvio dei grafi.<br \/>\nQuesto significa che \u00e8 possibile avviare in Ab Initio un caricamento incrementale dei dati in GreenPlum con una frequenza molto elevata e osservare l'alta velocit\u00e0 di inserimento di questi dati in GreenPlum. Certamente, non sar\u00e0 possibile avviarlo ogni secondo, poich\u00e9 Ab Initio, come qualsiasi strumento ETL, richiede tempo per 'mettersi in moto' all'avvio.<\/p>\n<h2>Conclusione<\/h2>\n<p>\nAttualmente Ab Initio \u00e8 utilizzato da Sberbank per la creazione di un Unico Layer Semantico dei Dati (USSD). Questo progetto prevede la costruzione di una versione unica dello stato di diverse entit\u00e0 aziendali bancarie. Le informazioni provengono da varie fonti, le cui repliche vengono preparate su Hadoop. In base alle esigenze del business, viene preparato un modello di dati e vengono descritte le trasformazioni dei dati. Ab Initio carica le informazioni nell'USSD e i dati caricati non solo sono di interesse per il business stessi, ma servono anche come fonte per la creazione di data warehouse. Inoltre, la funzionalit\u00e0 del prodotto consente di utilizzare diversi sistemi (Hive, Greenplum, Teradata, Oracle) come destinatari, facilitando cos\u00ec la preparazione dei dati in vari formati richiesti dal business.<\/p>\n<p>Le possibilit\u00e0 di Ab Initio sono ampie; ad esempio, il framework MDW incluso consente di costruire la storicit\u00e0 dei dati in ambito tecnico e business 'out of the box'. Per gli sviluppatori, Ab Initio offre l'opportunit\u00e0 di 'non reinventare la ruota', ma di utilizzare numerosi componenti funzionali gi\u00e0 disponibili, che essenzialmente fungono da librerie necessarie per lavorare con i dati.<\/p>\n<blockquote><p>L'autore \u00e8 un esperto della comunit\u00e0 professionale Sberbank SberProfi DWH\/BigData. La comunit\u00e0 professionale SberProfi DWH\/BigData si occupa dello sviluppo delle competenze in ambiti quali l'ecosistema Hadoop, Teradata, Oracle DB, GreenPlum, e anche negli strumenti BI come Qlik, SAP BO, Tableau, e altro.<\/p><\/blockquote>\n<p>Fonte: <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 4.9.10 - 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. \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.\" \/>\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\/it\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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. \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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/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\udd47Quando hai scale bancarie. Utilizzo di Ab Initio con Hive e GreenPlum | ProHoster","description":"Tempo fa ci siamo trovati di fronte alla questione della scelta di uno strumento ETL per lavorare con BigData. La soluzione precedentemente utilizzata, Informatica BDM, non ci soddisfaceva a causa di funzionalit\u00e0 limitate. Il suo utilizzo si limitava a un framework per l'esecuzione di comandi spark-submit. Sul mercato c'erano pochi equivalenti in grado di gestire il volume di dati con cui ci confrontiamo ogni giorno.","canonical_url":"https:\/\/prohoster.info\/it\/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":"it_IT","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. \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.","og:url":"https:\/\/prohoster.info\/it\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/87609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=87609"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/87609\/revisions"}],"predecessor-version":[{"id":162163,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/87609\/revisions\/162163"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/87610"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=87609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=87609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=87609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}