Iga tegevus suurte andmete töötlemisel nõuab suuremaid arvutusvõimeid. Tavaline andmete liigutamine Hadoopisse võib võtta nädalaid või maksta sama palju kui lennuki tiib. Kas te ei soovi oodata ja kulutada? Tasakaalustage koormus erinevate platvormide vahel. Üks võimalus on pushdown-optimeerimine.
Palusin Venemaa juhtivalt Informatica toote arendamise ja haldamise treenerilt Alexei Ananjevilt rääkida pushdown-optimeerimise funktsioonist Informatica Big Data Management (BDM) tarkvaras. Kas olete kunagi õppinud Informatica tooteid kasutama? Tõenäoliselt on just Alexei rääkinud teile PowerCenteri aluseid ja selgitanud, kuidas kaarte koostada.
Alexei Ananjev, DIS Groupi koolituse suuna juht
Mis on pushdown?
Paljud teist on juba tuttavad Informatica Big Data Management (BDM) tarkvaraga. See toode suudab integreerida suuri andmeid erinevatest allikatest, liigutada neid erinevate süsteemide vahel, tagada nendele lihtne ligipääs, võimaldab neid profiilida ja palju muud.
Ahned kätes suudab BDM teha imesid: ülesanded täidetakse kiiresti ja minimaalsete arvutusressurssidega.
Kas soovite samuti nii? Õppige kasutama pushdown-funktsiooni BDM-is, et jagada arvutuskoormust erinevate platvormide vahel. Pushdown-tehnoloogia võimaldab muuta kaardi skriptiks ja valida keskkonna, kus see skript käivitatakse. See valik võimaldab kombineerida erinevate platvormide tugevusi ja saavutada nende maksimaalne jõudlus.
Skripti täitmise keskkonna seadmiseks peate valima pushdown-tüübi. Skript võib olla täielikult käivitatud Hadoopis või osaliselt jaotatud allika ja sihtkoha vahel. On 4 võimalikku pushdown-tüüpi. Kaarti ei pea muutma skriptiks (native). Kaarti saab täita maksimaalselt allikas (source) või täielikult allikas (full). Samuti saab kaardi muuta Hadoopi skriptiks (none).
Pushdown-optimeerimine
Neid 4 tüüpi saab omavahel erinevalt kombineerida – optimeerida pushdown vastavalt süsteemi konkreetsetele vajadustele. Näiteks on sageli mõistlik andmeid andmebaasist välja tõmmata, kasutades selle enda võimalusi. Ja andmete töötlemine – Hadoopi jõudlusega, et andmebaasi mitte üle koormata.
Vaadakem olukorda, kus nii allikas kui vastuvõtja asuvad andmebaasis, ja täitmisplatvormi saab valida: olenevalt seadetest on see Informatica, andmebaasiserver või Hadoop. See näide võimaldab kõige täpsemalt mõista selle mehhanismi tehnilist külge. Loomulikult ei esine sellist olukorda reaalelus, kuid funktsionaalsuse demonstreerimiseks sobib see kõige paremini.
Võtame mappimise kahe tabeli lugemiseks ühes Oracle andmebaasis. Ja lugemise tulemused salvestame samasse andmebaasi tabelisse. Mappimise skeem on järgmine:

Informatica BDM 10.2.1 versioonis näeb see välja järgmiselt:

Pushdown tüüp – native
Kui valime pushdown native tüübi, siis mappimine teostatakse serveris Informatica. Andmed loetakse Oracle serverist, kantakse Informatica serverisse, muudetakse seal ja edastatakse Hadoopisse. Teisisõnu, saame tavalise ETL-protsessi.
Pushdown tüüp – source
Valides source tüübi, saame võimaluse jagada meie protsess serverilt andmebaaside (DB) ja Hadoop vahel. Protsessi täitmisel selle seadistusega saadetakse andmebaasi päringud tabelite andmete valimiseks. Ja ülejäänu toimub Hadoopis sammudena.
Täitmise skeem näeb välja järgmiselt:

Allpool on näide täitmisvõimekuse seadistamisest.

Sel juhul teostatakse mappimine kahes etapis. Selle seadistustes näeme, et see on muutunud skriptiks, mis saadetakse allikale. Ühendamine ja andmete muutmine toimub ümberkirjutatud päringuna allikas.
Alloleval pildil näeme optimeeritud mappimist BDM-is, ja allikas on ümberkirjutatud päring.

Hadoopi roll selles konfiguratsioonis piirdub andmevoo haldamisega – nende dirigeerimisega. Päringu tulemus suunatakse Hadoopisse. Andmete lugemise lõppedes salvestatakse fail Hadoopist vastuvõtjasse.
Pushdown tüüp – full
Valides full tüübi, muutub mappimine täielikult andmebaasi päringuks. Ja päringu tulemus suunatakse Hadoopisse. Sellise protsessi skeem on esitatud allpool.

Seadistuse näide on esitatud allpool.

Tulemuseks saame optimeeritud mappimise, mis on sarnane eelmisele. Erinevus seisneb ainult selles, et kogu loogika kantakse vastuvõtjasse ümberkirjutatud sisendi kujul. Optimeeritud mappimise näide on esitatud allpool.

Siin, nagu eelnevas olukorras, täidab Hadoop dirigendi rolli. Siiski toimub allika lugemine täielikult ja edasi vastuvõtja tasandil teostatakse andmete töötlemise loogika.
Pushdown tüüp – null
Viimane variant on pushdown tüüp, mille raames meie mapp muutub Hadoopi skriptiks.
Optimeeritud mapp näeb nüüd välja järgmine:

Siin loetakse andmed allikafailidest esmalt Hadoopis. Seejärel ühendatakse need kaks faili Hadoopi vahendite abil. Pärast seda muudetakse andmed ja laaditakse andmebaasi.
Mõistes pushdown-optimiseerimise põhimõtteid, saab paljusid suurte andmete töötlemise protsesse väga tõhusalt korraldada. Näiteks hiljuti suudeti ühel suurel ettevõttel saada Hadoopist välja suure hulga andmeid, mille kogumine oli kestnud aastaid, vaid mitme nädala jooksul.
Allikas: habr.com
