Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

Qualsiasi operazione di big data richiede molta potenza di calcolo. Un tipico trasferimento di dati da un database a Hadoop può richiedere settimane o costare quanto l'ala di un aereo. Non vuoi aspettare e spendere soldi? Bilancia il carico su diverse piattaforme. Un modo è l’ottimizzazione pushdown.

Ho chiesto al principale formatore russo per lo sviluppo e l'amministrazione dei prodotti Informatica, Alexey Ananyev, di parlare della funzione di ottimizzazione pushdown in Informatica Big Data Management (BDM). Hai mai imparato a lavorare con i prodotti Informatica? Molto probabilmente è stato Alexey a raccontarti le basi di PowerCenter e a spiegarti come costruire le mappature.

Alexey Ananyev, responsabile della formazione del Gruppo DIS

Cos'è il pushdown?

Molti di voi hanno già familiarità con Informatica Big Data Management (BDM). Il prodotto può integrare big data provenienti da diverse fonti, spostarli tra diversi sistemi, fornisce un facile accesso ad essi, consente di profilarli e molto altro ancora.
Nelle mani giuste, il BDM può fare miracoli: le attività verranno completate rapidamente e con risorse di elaborazione minime.

Lo vuoi anche tu? Impara a utilizzare la funzionalità pushdown in BDM per distribuire il carico di elaborazione su piattaforme diverse. La tecnologia pushdown ti consente di trasformare la mappatura in uno script e selezionare l'ambiente in cui verrà eseguito questo script. Questa scelta consente di combinare i punti di forza di diverse piattaforme e ottenere le loro massime prestazioni.

Per configurare l'ambiente di esecuzione dello script, è necessario selezionare il tipo pushdown. Lo script può essere eseguito interamente su Hadoop o parzialmente distribuito tra sorgente e sink. Esistono 4 possibili tipi di pushdown. Non è necessario che la mappatura venga trasformata in uno script (nativo). La mappatura può essere effettuata il più possibile sulla sorgente (source) oppure completamente sulla sorgente (full). La mappatura può anche essere trasformata in uno script Hadoop (nessuno).

Ottimizzazione pushdown

I 4 tipi elencati possono essere combinati in diversi modi: il pushdown può essere ottimizzato per le esigenze specifiche del sistema. Ad esempio, spesso è più appropriato estrarre i dati da un database utilizzando le sue stesse capacità. E i dati verranno convertiti utilizzando Hadoop, in modo da non sovraccaricare il database stesso.

Consideriamo il caso in cui sia l'origine che la destinazione si trovano nel database e si può selezionare la piattaforma di esecuzione della trasformazione: a seconda delle impostazioni, sarà Informatica, un database server o Hadoop. Un simile esempio ti consentirà di comprendere nel modo più accurato il lato tecnico del funzionamento di questo meccanismo. Naturalmente, nella vita reale, questa situazione non si verifica, ma è più adatta per dimostrare la funzionalità.

Prendiamo la mappatura per leggere due tabelle in un singolo database Oracle. E lascia che i risultati della lettura vengano registrati in una tabella nello stesso database. Lo schema di mappatura sarà così:

Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

Sotto forma di mappatura su Informatica BDM 10.2.1 appare così:

Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

Tipo pushdown: nativo

Se selezioniamo la tipologia nativa pushdown, allora la mappatura verrà eseguita sul server Informatica. I dati verranno letti dal server Oracle, trasferiti al server Informatica, ivi trasformati e trasferiti ad Hadoop. In altre parole, otterremo un normale processo ETL.

Tipo pushdown: origine

Quando si sceglie il tipo di sorgente, abbiamo l'opportunità di distribuire il nostro processo tra il server database (DB) e Hadoop. Quando un processo viene eseguito con questa impostazione, le richieste di recupero dei dati dalle tabelle verranno inviate al database. E il resto verrà eseguito sotto forma di passaggi su Hadoop.
Il diagramma di esecuzione sarà simile al seguente:

Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

Di seguito è riportato un esempio di configurazione dell'ambiente runtime.

Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

In questo caso, la mappatura verrà eseguita in due passaggi. Nelle sue impostazioni vedremo che si è trasformato in uno script che verrà inviato alla fonte. Inoltre, la combinazione di tabelle e la trasformazione dei dati verranno eseguite sotto forma di query sovrascritta sull'origine.
Nell'immagine sotto vediamo una mappatura ottimizzata sul BDM e una query ridefinita sulla sorgente.

Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

Il ruolo di Hadoop in questa configurazione sarà ridotto alla gestione del flusso di dati, orchestrandolo. Il risultato della query verrà inviato a Hadoop. Una volta completata la lettura, il file da Hadoop verrà scritto nel sink.

Tipo pushdown – completo

Quando selezioni il tipo completo, la mappatura si trasformerà completamente in una query del database. E il risultato della richiesta verrà inviato a Hadoop. Di seguito è presentato uno schema di tale processo.

Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

Di seguito è mostrato un esempio di configurazione.

Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

Di conseguenza, otterremo una mappatura ottimizzata simile alla precedente. L'unica differenza è che tutta la logica viene trasferita al ricevitore sotto forma di esclusione del suo inserimento. Di seguito viene presentato un esempio di mappatura ottimizzata.

Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

Anche qui, come nel caso precedente, Hadoop svolge il ruolo di conduttore. Ma qui la fonte viene letta nella sua interezza e quindi la logica di elaborazione dei dati viene eseguita a livello del ricevitore.

Il tipo di pushdown è nullo

Ebbene, l'ultima opzione è quella di tipo pushdown, all'interno della quale la nostra mappatura si trasformerà in uno script Hadoop.

La mappatura ottimizzata sarà ora simile a questa:

Come spostare, caricare e integrare dati di grandi dimensioni in modo economico e rapido? Cos'è l'ottimizzazione pushdown?

Qui i dati dei file sorgente verranno prima letti su Hadoop. Poi, con i suoi mezzi, questi due file verranno uniti. Successivamente, i dati verranno convertiti e caricati nel database.

Comprendendo i principi dell'ottimizzazione pushdown, puoi organizzare in modo molto efficace molti processi per lavorare con i big data. Così, di recente, una grande azienda, in poche settimane, ha scaricato dallo storage in Hadoop i big data che aveva raccolto in precedenza per diversi anni.

Fonte: habr.com

Aggiungi un commento