Alla operationer med stora datamÀngder krÀver stora berÀkningsresurser. Vanlig överföring av data frÄn en databas till Hadoop kan ta veckor eller kosta som en flygplansvinge. Vill du inte vÀnta och spendera? Balansera lasten över olika plattformar. Ett sÀtt Àr pushdown-optimering.
Jag bad den ledande trÀnaren i Ryssland för utveckling och administration av Informatica-produkter, Alexey Ananyev, att berÀtta om pushdown-optimeringsfunktionen i Informatica Big Data Management (BDM). LÀrde ni er en gÄng att arbeta med Informatica-produkter? Det var förmodligen Alexey som lÀrde er grunderna i PowerCenter och förklarade hur man bygger mappningar.
Alexey Ananyev, chef för utbildningsavdelningen pÄ DIS Group
Vad Àr pushdown?
MÄnga av er Àr redan bekanta med Informatica Big Data Management (BDM). Produkten kan integrera stora data frÄn olika kÀllor, flytta dem mellan olika system, ge enkel Ätkomst till dem, göra profiler och mycket mer.
I skickliga hÀnder kan BDM Ästadkomma underverk: uppgifter kommer att slutföras snabbt och med minimala berÀkningsresurser.
Vill du ocksÄ detta? LÀr dig anvÀnda pushdown-funktionen i BDM för att fördela den berÀkningsmÀssiga belastningen mellan olika plattformar. Pushdown-teknik gör det möjligt att omvandla en mappning till ett skript och vÀlja den miljö dÀr detta skript ska köras. Denna valmöjlighet gör att man kan kombinera styrkorna hos olika plattformar och uppnÄ deras maximala prestanda.
För att konfigurera exekveringsmiljön för skriptet mÄste du vÀlja typ av pushdown. Skriptet kan köras helt pÄ Hadoop eller delvis distribueras mellan kÀllan och mottagaren. Det finns 4 möjliga typer av pushdown. Mappningen kan utföras utan att omvandlas till ett skript (native). Mappningen kan ocksÄ utföras maximalt pÄ kÀllan (source) eller helt pÄ kÀllan (full). Dessutom kan mappningen omvandlas till ett Hadoop-skript (none).
Pushdown-optimering
Dessa 4 typer kan kombineras pÄ olika sÀtt - optimera pushdown för specifika systembehov. Till exempel Àr det ofta mer fördelaktigt att extrahera data frÄn databasen, genom att anvÀnda dess egna funktioner. Att transformera data görs bÀttre med Hadoop, för att undvika att överbelasta databasen.
LÄt oss övervÀga ett fall dÀr bÄde kÀllan och mottagaren finns i databasen, och plattformen för att utföra transformationerna kan vÀljas: beroende pÄ instÀllningarna kommer det att vara Informatica, databasserver eller Hadoop. Ett sÄdant exempel gör det möjligt att bÀst förstÄ den tekniska sidan av detta mekanismens arbete. SjÀlvklart uppstÄr en sÄdan situation sÀllan i verkliga livet, men för att demonstrera funktionaliteten passar det bÀst.
LÄt oss ta en mappning för att lÀsa tvÄ tabeller i en gemensam Oracle-databas. Resultaten av lÀsningen ska sparas i en tabell i samma databas. Mappningsschemat kommer att se ut sÄ hÀr:

I form av mappning i Informatica BDM 10.2.1 ser det ut sÄ hÀr:

Typ pushdown â native
Om vi vÀljer typ pushdown native, kommer mappningen att utföras pÄ servern Informatica. Data kommer att lÀsas frÄn Oracle-servern, överföras till Informatica-servern, transformeras dÀr och skickas till Hadoop. Med andra ord kommer vi att fÄ en vanlig ETL-process.
Typ pushdown â source
Vid val av typ source fĂ„r vi möjlighet att fördela vĂ„r process mellan servern databaser (DB) och Hadoop. NĂ€r processen utförs med denna instĂ€llning kommer förfrĂ„gningar att skickas till databasen för att hĂ€mta data frĂ„n tabellerna. Ăvrigt kommer att utföras i form av steg pĂ„ Hadoop.
Mappningens körschema kommer att se ut sÄ hÀr:

Nedan Àr ett exempel pÄ instÀllning av exekveringsmiljön.

I detta fall kommer mappningen att utföras i tvÄ steg. I dess instÀllningar kommer vi att se att den har omvandlats till ett skript, som ska skickas till kÀllan. Dessutom kommer sammanfogning av tabeller och datatransformation att utföras i form av en omdefinierad frÄga pÄ kÀllan.
I bilden nedan ser vi en optimerad mappning pĂ„ BDM, och pĂ„ kĂ€llan â en omdefinierad frĂ„ga.

Hadoop:s roll i denna konfiguration kommer att vara att hantera datastreamen â dirigera dem. Resultatet av förfrĂ„gan kommer att skickas till Hadoop. Efter att lĂ€sningen Ă€r klar kommer filen frĂ„n Hadoop att skrivas till mottagaren.
Typ pushdown â full
Vid valet av typ full kommer mappningen att omvandlas helt till en frÄga pÄ databasen. Resultatet av förfrÄgan kommer att skickas till Hadoop. Schemat för en sÄdan process presenteras nedan.

Exemplet pÄ instÀllning presenteras nedan.

Som ett resultat kommer vi att fÄ en optimerad mappning liknande den föregÄende. Skillnaden Àr bara att hela logiken överförs till mottagaren i form av en omdefiniering av dess insÀttning. Exemplet pÄ den optimerade mappningen presenteras nedan.

HÀr, precis som tidigare, fungerar Hadoop som dirigent. Men hÀr lÀses kÀllan i sin helhet, och sedan utförs logiken för databehandling pÄ mottagarnivÄ.
Pushdown-typ â null
Och den sista varianten â pushdown-typ, dĂ€r vĂ„r mappning omvandlas till ett skript pĂ„ Hadoop.
Den optimerade mappningen kommer nu att se ut sÄ hÀr:

HÀr kommer data frÄn kÀllfiler först att lÀsas in pÄ Hadoop. Sedan kommer dessa tvÄ filer att kombineras med hjÀlp av dess egna verktyg. Efter detta kommer data att omvandlas och exporteras till databasen.
Genom att förstÄ principerna för pushdown-optimering kan mÄnga processer för arbete med stora datamÀngder organiseras mycket effektivt. SÄ sent som nyligen lyckades ett stort företag pÄ bara nÄgra veckor exportera stora datamÀngder frÄn sitt lagringsutrymme till Hadoop, vilket de hade samlat in under flera Är.
KĂ€lla: habr.com
