Qualsiasi operazione con grandi dati richiede grandi potenze di calcolo. Il trasferimento di dati da un database su Hadoop può durare settimane o costare come l'ala di un aereo. Non vuoi aspettare e spendere? Bilancia il carico su diverse piattaforme. Uno dei modi è l'ottimizzazione pushdown.
Ho chiesto al noto formatore russo per lo sviluppo e l'amministrazione dei prodotti Informatica, Alexey Ananyev, di parlarci della funzione di ottimizzazione pushdown in Informatica Big Data Management (BDM). Hai mai imparato a lavorare con i prodotti Informatica? Probabilmente è stato proprio Alexey a insegnarti le basi di PowerCenter e a spiegarti come costruire mappature.
Alexey Ananyev, responsabile del dipartimento formazione di DIS Group
Che cos'è il pushdown?
Molti di voi sono già familiari con Informatica Big Data Management (BDM). Il prodotto può integrare grandi dati da diverse sorgenti, trasferirli tra sistemi diversi, fornire un facile accesso ad essi, consentire di profilare i dati e molto altro.
Nelle mani esperte, BDM è in grado di fare miracoli: le attività saranno eseguite rapidamente e con risorse di calcolo minime.
Vuoi anche tu questo? Impara a utilizzare la funzione pushdown in BDM per distribuire il carico di calcolo su diverse piattaforme. La tecnologia pushdown consente di trasformare la mappatura in uno script e scegliere l'ambiente in cui questo script verrà eseguito. Questa possibilità di scelta consente di combinare i punti di forza delle diverse piattaforme e di raggiungere la loro massima efficienza.
Per configurare l'ambiente di esecuzione dello script, è necessario scegliere il tipo di pushdown. Lo script può essere eseguito completamente su Hadoop o distribuito parzialmente tra la sorgente e il destinatario. Ci sono 4 tipi possibili di pushdown. La mappatura può non essere trasformata in uno script (nativo). La mappatura può essere eseguita al massimo sulla sorgente (source) o completamente sulla sorgente (full). La mappatura può anche essere trasformata in uno script Hadoop (none).
Ottimizzazione pushdown
I 4 tipi elencati possono essere combinati in vari modi – ottimizzare il pushdown per le specifiche esigenze del sistema. Ad esempio, spesso è più sensato estrarre i dati da un database sfruttando le sue stesse capacità. Mentre la trasformazione dei dati può avvenire tramite Hadoop, per non sovraccaricare il database.
Consideriamo il caso in cui sia la sorgente che il destinatario si trovano nel database, e la piattaforma di esecuzione delle trasformazioni possa essere scelta: a seconda delle impostazioni, questa sarà Informatica, un server di database o Hadoop. Questo esempio permetterà di comprendere in modo più preciso l'aspetto tecnico del funzionamento di questo meccanismo. È ovvio che, nella vita reale, una situazione simile non si verifica, ma per dimostrare la funzionalità è l'ideale.
Prendiamo la mappatura per la lettura di due tabelle in un unico database Oracle. E i risultati della lettura saranno scritti in una tabella in questo stesso database. Lo schema di mappatura sarà il seguente:

In forma di mappatura su Informatica BDM 10.2.1 appare in questo modo:

Tipo pushdown – nativo
Se scegliamo il tipo pushdown nativo, la mappatura sarà eseguita su server Informatica. I dati verranno letti dal server Oracle, trasferiti al server Informatica, trasformati lì e inviati a Hadoop. In altre parole, otterremo un normale processo ETL.
Tipo pushdown – sorgente
Scegliendo il tipo sorgente, otteniamo la possibilità di distribuire il nostro processo tra server database (DB) e Hadoop. Durante l'esecuzione del processo con questa impostazione, verranno emessi requisiti per la selezione dei dati dalle tabelle. E il resto sarà eseguito in forma di passaggi su Hadoop.
Lo schema di esecuzione apparirà così:

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

In questo caso, la mappatura sarà eseguita in due fasi. Nelle sue impostazioni vedremo che è diventata uno script che sarà inviato alla sorgente. Inoltre, l'unione delle tabelle e la trasformazione dei dati saranno eseguiti sotto forma di una query ridefinita sulla sorgente.
Nell'immagine qui sotto, vediamo una mappatura ottimizzata su BDM, e sulla sorgente – una query ridefinita.

Il ruolo di Hadoop in questa configurazione sarà quello di gestire il flusso di dati – di dirigerli. Il risultato della query sarà diretto a Hadoop. Dopo il completamento della lettura, il file da Hadoop sarà scritto nel destinatario.
Tipo pushdown – completo
Scegliendo il tipo completo, la mappatura si trasformerà completamente in una query sul DB. E il risultato della query sarà diretto a Hadoop. Lo schema di tale processo è presentato qui sotto.

Un esempio di configurazione è mostrato qui di seguito.

Di conseguenza, otterremo una mappatura ottimizzata simile alla precedente. L'unica differenza è che tutta la logica sarà spostata nel destinatario sotto forma di ridefinizione del suo inserimento. Un esempio di mappatura ottimizzata è presentato di seguito.

Qui, come nel caso precedente, Hadoop funge da direttore d'orchestra. Tuttavia, qui la lettura della sorgente avviene per intero, mentre la logica di elaborazione dei dati viene eseguita a livello di ricezione.
Tipo pushdown – null
Infine, l'ultimo tipo è il pushdown, con il quale il nostro mapping si trasformerà in uno script su Hadoop.
Il mapping ottimizzato ora apparirà così:

Qui i dati dai file sorgente verranno inizialmente letti su Hadoop. Successivamente, con i suoi strumenti, questi due file saranno uniti. Dopo di che, i dati saranno trasformati e caricati nel database.
Comprendendo i principi dell'ottimizzazione pushdown, è possibile organizzare in modo molto efficace molti processi di lavoro con grandi dati. Così, recentemente, una grande azienda ha scaricato in soli pochi mesi grandi dati da un deposito su Hadoop, che in precedenza aveva raccolto per diversi anni.
Fonte: habr.com
