Enhver big data-operasjon krever mye datakraft. En typisk flytting av data fra en database til Hadoop kan ta uker eller koste like mye som en flyvinge. Vil du ikke vente og bruke penger? Balanser lasten på tvers av ulike plattformer. En måte er pushdown-optimalisering.
Jeg spurte Russlands ledende trener for utvikling og administrasjon av Informatica-produkter, Alexey Ananyev, om å snakke om pushdown-optimaliseringsfunksjonen i Informatica Big Data Management (BDM). Har du noen gang lært å jobbe med Informatica-produkter? Mest sannsynlig var det Alexey som fortalte deg det grunnleggende om PowerCenter og forklarte hvordan du bygger kart.
Alexey Ananyev, leder for opplæring i DIS Group
Hva er pushdown?
Mange av dere er allerede kjent med Informatica Big Data Management (BDM). Produktet kan integrere stordata fra ulike kilder, flytte det mellom ulike systemer, gir enkel tilgang til det, lar deg profilere det og mye mer.
I de riktige hendene kan BDM gjøre underverker: oppgaver vil bli fullført raskt og med minimale dataressurser.
Vil du det også? Lær å bruke pushdown-funksjonen i BDM for å fordele databelastningen på ulike plattformer. Pushdown-teknologi lar deg gjøre kartlegging til et skript og velge miljøet som dette skriptet skal kjøres i. Dette valget lar deg kombinere styrken til forskjellige plattformer og oppnå maksimal ytelse.
For å konfigurere skriptutførelsesmiljøet, må du velge pushdown-typen. Skriptet kan kjøres helt på Hadoop eller delvis distribuert mellom kilden og vasken. Det er 4 mulige pushdown-typer. Kartlegging trenger ikke gjøres om til et skript (native). Kartlegging kan utføres så mye som mulig på kilden (kilde) eller fullstendig på kilden (full). Kartlegging kan også gjøres om til et Hadoop-skript (ingen).
Pushdown-optimalisering
De oppførte 4 typene kan kombineres på forskjellige måter - pushdown kan optimaliseres for de spesifikke behovene til systemet. For eksempel er det ofte mer hensiktsmessig å trekke ut data fra en database ved hjelp av egne muligheter. Og dataene vil bli konvertert ved hjelp av Hadoop, for ikke å overbelaste selve databasen.
La oss vurdere tilfellet når både kilden og destinasjonen er i databasen, og transformasjonsutførelsesplattformen kan velges: avhengig av innstillingene vil det være Informatica, en databaseserver eller Hadoop. Et slikt eksempel vil tillate deg å mest nøyaktig forstå den tekniske siden av driften av denne mekanismen. Naturligvis, i det virkelige liv, oppstår ikke denne situasjonen, men den er best egnet for å demonstrere funksjonalitet.
La oss ta kartlegging for å lese to tabeller i en enkelt Oracle-database. Og la leseresultatene registreres i en tabell i samme database. Kartleggingsskjemaet vil være slik:
I form av kartlegging på Informatica BDM 10.2.1 ser det slik ut:
Pushdown-type – innfødt
Hvis vi velger den opprinnelige typen pushdown, vil kartleggingen utføres på Informatica-serveren. Dataene vil bli lest fra Oracle-serveren, overført til Informatica-serveren, transformert der og overført til Hadoop. Vi vil med andre ord få en normal ETL-prosess.
Pushdown-type – kilde
Ved valg av kildetype får vi muligheten til å fordele prosessen vår mellom databaseserveren (DB) og Hadoop. Når en prosess utføres med denne innstillingen, vil forespørsler om å hente data fra tabeller bli sendt til databasen. Og resten vil bli utført i form av trinn på Hadoop.
Utførelsesdiagrammet vil se slik ut:
Nedenfor er et eksempel på hvordan du setter opp kjøretidsmiljøet.
I dette tilfellet vil kartleggingen utføres i to trinn. I innstillingene vil vi se at det har blitt til et skript som vil bli sendt til kilden. Dessuten vil kombinering av tabeller og transformering av data utføres i form av en overstyrt spørring på kilden.
På bildet nedenfor ser vi en optimalisert kartlegging på BDM, og en redefinert spørring på kilden.
Rollen til Hadoop i denne konfigurasjonen vil bli redusert til å administrere dataflyten – orkestrere den. Resultatet av spørringen vil bli sendt til Hadoop. Når lesingen er fullført, vil filen fra Hadoop bli skrevet til vasken.
Pushdown-type – full
Når du velger den fullstendige typen, blir kartlegging fullstendig til en databasespørring. Og resultatet av forespørselen vil bli sendt til Hadoop. Et diagram over en slik prosess er presentert nedenfor.
Et eksempel på oppsett er vist nedenfor.
Som et resultat vil vi få en optimalisert kartlegging som ligner den forrige. Den eneste forskjellen er at all logikken overføres til mottakeren i form av å overstyre innsettingen. Et eksempel på optimalisert kartlegging er presentert nedenfor.
Her, som i forrige sak, spiller Hadoop rollen som dirigent. Men her leses kilden i sin helhet, og deretter utføres databehandlingslogikken på mottakernivå.
Pushdown-typen er null
Vel, det siste alternativet er pushdown-typen, der kartleggingen vår blir til et Hadoop-skript.
Den optimaliserte kartleggingen vil nå se slik ut:
Her vil dataene fra kildefilene først leses på Hadoop. Deretter, ved hjelp av sine egne midler, vil disse to filene bli kombinert. Etter dette vil dataene konverteres og lastes opp til databasen.
Ved å forstå prinsippene for pushdown-optimalisering kan du meget effektivt organisere mange prosesser for arbeid med big data. Så ganske nylig lastet ett stort selskap på bare noen få uker ned stordata fra lagring til Hadoop, som det tidligere hadde samlet inn i flere år.
Kilde: www.habr.com