Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln innehåller metodtips för att optimera prestanda för Dataflow Gen2 i Fabric Data Factory. Genom att följa dessa riktlinjer kan du förbättra effektiviteten och hastigheten för dina dataintegreringsprocesser.
Det du kommer att lära dig
I den här artikeln kommer du att upptäcka:
- Viktiga områden för prestandaoptimering: Förstå de tre kritiska komponenterna (datakälla, dataflödesmotor och datamål) som påverkar dataflödesprestandan
- Grundläggande optimeringstekniker: Använda snabb kopiering, frågedelegering och mellanlagring för att maximera effektiviteten
- Verkliga scenarier: Vanliga prestandautmaningar och deras specifika lösningar
- Metodtips: Användbar vägledning för olika dataintegreringsmönster och användningsfall
Vilka är de viktigaste områdena att fokusera på för prestandaoptimering?
Inom hela dataflödesupplevelsen finns det flera viktiga områden att fokusera på för prestandaoptimering. Dessa områden omfattar dataflytten, dataflödesmotorn och datatransformeringarna. Var och en av dessa komponenter och sökvägarna däremellan spelar en avgörande roll för dataflödets övergripande prestanda, och att optimera dem kan leda till betydande förbättringar i exekveringstid och resursutnyttjande.
Data movement
Dataförflyttning är en viktig aspekt av dataflödesprestanda. Det omfattar överföring av data mellan olika komponenter, till exempel datakällor, mellanlagringsområden och slutmål. Effektiv överföring av data kan avsevärt minska körtiden och resursförbrukningen. I Dataflow Gen2 optimeras dataöverföringen genom tekniker som Fast Copy, vilket möjliggör hög genomströmningsdataöverföring utan de omkostnader som förknippas med transformationer som inte reflekteras tillbaka till källsystemet. Läs mer om Snabbkopiering.
Data transformation
Datatransformering är processen att konvertera data från en struktur till en annan, ofta med åtgärder som filtrering, aggregering och anslutning. I Dataflow Gen2 är transformationer utformade för att vara effektiva och tillämpa frågefällningsfunktioner när det är möjligt. Med frågeviktning kan transformeringar överföras till källsystemet, vilket minskar mängden data som överförs och bearbetas i Dataflow Gen2. Den här minskningen är särskilt viktig för stora datamängder eftersom den minimerar arbetsbelastningen på dataflödesmotorn och påskyndar körningstiden. Mer information om frågedelegering finns i Frågedelegering. Följ även andra metodtips för frågeoptimering, till exempel att filtrera tidigt och ofta, använda parameterisering för att begränsa dataförhandsgranskningar och undvika onödiga transformeringar i ditt dataflöde. Mer information om frågeoptimering finns i Frågeoptimering.
Stegvis laddning av data och datalagerberäkning
Mellanlagringsdata är en teknik som används för att förbättra prestanda genom att tillfälligt lagra mellanliggande resultat i ett mellanlagringsområde. Dataflöde Gen2 levereras med en mellanlagrings lakehouse och ett mellanlagringslager, som kan användas för att utföra transformeringar mer effektivt. Genom att mellanlagra data kan du använda beräkningsresurserna i dessa mellanlagringsområden för att dela upp komplexa dataflöden i hanterbara steg, vilket minskar den totala bearbetningstiden. Den här nedbrytningen är särskilt användbar för stora datamängder eller komplexa omvandlingar som annars skulle ta lång tid att köra i ett enda steg. Du kan överväga mellanlagringsplatser som ett tillfälligt lagringsområde som gör att du kan vika transformeringar. Den här metoden är särskilt fördelaktig när du arbetar med datakällor som inte stöder frågedelegering eller när transformeringar är för komplexa för att överföras till källsystemet. Om du vill tillämpa staging effektivt kan du hålla ett öga på vikningsindikatorerna i dataflödesredigeraren för att säkerställa att dina omvandlingar trycks ner till källan. Om du märker att en transformering inte viks kan du överväga att dela upp frågan i två frågor och tillämpa omvandlingen i den andra frågan. Aktivera mellanlagring på den första frågan för att utföra omvandlingen i mellanlagringen av Lakehouse- eller Warehouse-beräkningen. Med den här metoden kan du dra nytta av de beräkningsresurser som är tillgängliga i mellanlagringsområdena samtidigt som du ser till att ditt dataflöde förblir effektivt och dynamiskt.
När du har data som redan har mellanlagrats i Lakehouse eller Warehouse och du tillämpar fler transformeringar som fullt ut integreras i efterföljande frågor, kommer dataflödet att skriva utdata till staging Warehouse. Det kan gå snabbare än att skriva till mellanlagringen av Lakehouse eftersom datamängden kan skrivas parallellt av DW och genomgår färre nätverkshopp med motsvarande serialiseringssteg.
Scenarier och vilka optimeringar du bör tänka på
När du arbetar med Dataflow Gen2 är det viktigt att du förstår de olika scenarier du kan stöta på och hur du optimerar prestanda i varje enskilt fall. Följande överväganden ger praktisk vägledning om hur du tillämpar bästa praxis på verkliga situationer. Genom att skräddarsy din metod baserat på de specifika egenskaperna hos dina data och transformeringar kan du uppnå optimala prestanda i dina arbetsflöden för dataintegrering. Här följer några vanliga scenarier som du kan stöta på när du arbetar med Dataflow Gen2, tillsammans med rekommenderade åtgärder för att optimera prestanda. Tänk på att prestandaoptimering är en pågående process och mycket specifik för ditt scenario. Du kan behöva justera din metod baserat på de specifika egenskaperna för dina egna data och transformeringar.
Övervägande 1: Förbättra dataflytten med snabb kopiering
I det här scenariot ser du att dataflytten mellan datakällan och mellanlagringsområdet eller till slutmålet tar längre tid än förväntat. Flera faktorer kan vara inblandade, till exempel nätverksfördröjning, stora datamängdsstorlekar eller ineffektiva metoder för dataöverföring.
I det här fallet bör du överväga att utvärdera dataförflyttningsvägen och optimera den för bättre prestanda. En metod är att använda Fast Copy för dataöverföring med högt dataflöde, vilket avsevärt kan minska körtiden. Snabb kopiering är utformat för att hantera stora mängder data effektivt, vilket minimerar de omkostnader som är kopplade till traditionella dataöverföringsmetoder. Var dock försiktig: om du lägger till transformeringar i samma fråga som en Snabb kopiering kan den inaktivera Snabb kopiering om transformeringarna inte integreras med källsystemet. I sådana fall bör du överväga att dela upp frågan i två steg: ett för snabbkopieringsåtgärden och ett annat för omvandlingarna med hjälp av mellanlagringen av Lakehouse- eller Warehouse-beräkningen. Med den här metoden kan du dra nytta av Snabb kopiering för dataflytt med högt dataflöde samtidigt som du utför de nödvändiga omvandlingarna i ett separat steg. Läs mer om Snabbkopiering.
Du kan aktivera Snabbkopiering i dataflödesinställningarna. Den här inställningen är som standard aktiverad, men du kan också kräva att snabbkopiering används för en specifik fråga i ditt dataflöde. Det gör du genom att välja alternativet Kräv snabbkopiering i frågeinställningarna. Den här åtgärden säkerställer att snabbkopiering används för den valda frågan och att den ignorerar tröskelvärdet för minsta storlek för snabbkopiering. Den här inställningen är särskilt användbar när du vill se till att snabbkopiering används för specifika frågor, oavsett datastorlek eller andra villkor. Om du behöver snabbkopiering kontrollerar du att datakällan är kompatibel med Snabb kopia och att omvandlingarna i frågan kan skickas ned till källsystemet. Om du behöver snabbkopiering för en fråga som inte är kompatibel med snabbkopiering misslyckas dataflödet. Om du inte behöver snabbkopiering körs dataflödet fortfarande, men det kan återgå till standardmetoden för dataförflyttning, vilket kanske inte är lika effektivt som Snabbkopiering. Med den här flexibiliteten kan du optimera ditt dataflöde baserat på de specifika kraven för dina dataintegreringsprocesser.
Övervägande 2: Förbättra exekveringstiden för komplexa transformationer genom mellanlagring
I det här scenariot har du ett dataflöde med flera komplexa transformeringar, till exempel kopplingar, aggregeringar och filtrering. Körningstiden är längre än önskat och du vill optimera prestandan för dessa transformeringar.
I det här fallet bör du överväga att dela upp dataflödet i mindre, mer hanterbara steg. I stället för att utföra alla transformationer i en enda frågeställning kan du mellanlagra data i ett Lakehouse eller en lagerplats och sedan tillämpa omvandlingarna i efterföljande frågor. Med den här metoden kan du använda beräkningsresurserna i inställningsområdet för komplexa omvandlingar, vilket minskar den totala exekveringstiden. Se dessutom till att dina transformeringar är utformade för att vika till källsystemet när det är möjligt, eftersom detta avsevärt kan förbättra prestandan genom att minska mängden data som överförs och bearbetas i Dataflöde Gen2. Om du märker att vissa transformeringar inte delas upp, kan du överväga att dela upp dem i separata förfrågningar och tillämpa dem efter att ha mellanlagrat data.
I följande bild ser du hur vikningsindikatorerna i dataflödesredigeraren kan hjälpa dig att identifiera vilka transformeringar som skickas ned till källsystemet.
För att implementera mellanlagring på ett effektivt sätt kan du dela upp dataflödet i två frågor. Det gör du genom att högerklicka på det första steget som inte integreras i källsystemet och välja alternativet Extrahera föregående. Den här åtgärden skapar en ny fråga som mellanlagrar data i Lakehouse- eller Warehouse-beräkningsmiljön, så att du kan utföra omvandlingen i ett separat steg av processen. Den här metoden hjälper dig att dra nytta av de beräkningsresurser som är tillgängliga i mellanlagringsområdena samtidigt som du ser till att ditt dataflöde förblir effektivt och dynamiskt.
Ange sedan ett namn för den nya frågan och välj "OK".
Nu när den nya sökfrågan har skapats kan du kontrollera om staging är aktiverat för den första sökfrågan. Om mellanlagring inte är aktiverat kan du aktivera det genom att välja alternativet Aktivera mellanlagring i frågeinställningarna. Med den här åtgärden kan du utföra transformeringar i mellanlagringen av Lakehouse- eller Warehouse-beräkningen, vilket optimerar dataflödets prestanda. Mellanlagring av den andra frågeställningen är valfritt, men det kan förbättra prestanda ytterligare genom att du kan utföra ytterligare omvandlingar i mellanlagringsområdet innan du skriver de slutliga utdata till destinationen.
Om du nu tittar på vikningsindikatorerna i dataflödesredigeraren skickas transformeringarna i den första frågan ned till källsystemet. Den andra förfrågan kanske inte återspeglar samma vikningsindikatorer, eftersom den endast under körning är medveten om mellanlagringsområdet och de omvandlingar som kan överföras till mellanlagringsområdet.
Skärmbild av rutan Tillämpade steg med de vikbara indikatorerna framhävs och alla inställda på grönt.
Om du vill veta mer om hur du optimerar dina dataflödestransformeringar och ser till att de skickas ned till källsystemet går du till Frågedelegering.
Övervägande 3: Påverkan på mellanlagring på dataflytt när du använder Lakehouse som mål
I det här scenariot använder du en Lakehouse-destination för din dataflöde och du har aktiverat mellanlagring för att utföra transformeringar innan du skriver de slutliga utdata. Du märker dock att den totala uppdateringstiden är längre än förväntat och att du vill optimera prestanda för den här processen.
I det här fallet kan dataflytten från mellanlagringslagret till Lakehouse-målet vara en flaskhals. För att förbättra prestanda kan du överväga att ändra målet till ett lager i stället för ett Lakehouse. Med den här ändringen kan du använda beräkningsresurserna i mellanlagringslagret för transformeringar och skriva de slutliga utdata direkt till lagermålet. Dataflyttens väg blir mer effektiv eftersom den undviker extra kostnader för att skriva till en Lakehouse. Om ett Lakehouse-mål är nödvändigt bör du överväga att inaktivera staging för frågan som skriver till Lakehouse. Med den här åtgärden kan du skriva de slutliga utdata direkt till Lakehouse utan extra mellanlagring, vilket avsevärt kan förbättra prestandan. Tänk dock på att inaktivering av mellanlagring innebär att du inte kan utföra transformeringar i mellanlagringsområdet, så se till att dina transformeringar är utformade för att vika till källsystemet när det är möjligt. Det här scenariot belyser vikten av att förstå dataförflyttningsvägen och optimera den för bättre prestanda. Observera skillnaden i exekveringstid när du använder ett datalager-mål jämfört med ett Lakehouse-mål med mellanlagring inaktiverad. Genom att noggrant överväga mål- och mellanlagringsalternativen kan du förbättra effektiviteten i ditt dataflöde och minska den totala uppdateringstiden.
Övervägande 4: Stora förhandsgranskningar av data under designtiden
I det här scenariot arbetar du med ett dataflöde med stora datamängder, och designtidsupplevelsen är långsam på grund av storleken på dataförhandsgranskningarna. Den här processen kan göra det svårt att skapa och testa ditt dataflöde effektivt.
I det här fallet bör du överväga att använda antingen schemavy eller parameterisering för att begränsa storleken på dataförhandsgranskningar. Genom att använda filter baserade på parametrar, till exempel ett datumintervall eller specifika ID:er, kan du minska mängden data som visas i designmiljön. Den här metoden hjälper till att hålla designmiljön dynamisk och effektiv, så att du kan fokusera på att redigera och testa ditt dataflöde utan att hindras av stora dataförhandsgranskningar. Dessutom kan du justera parametrarna under körningen för att hämta den fullständiga datamängden när det behövs.
Om du till exempel arbetar med en stor transaktionsdatauppsättning kan du skapa en parameter som filtrerar data baserat på ett visst datumintervall. På så sätt kan du under designtiden bara se en delmängd av de data som är relevanta för ditt aktuella arbete. När du är redo att köra dataflödet kan du justera parametern så att den innehåller hela datamängden, vilket säkerställer att dina dataintegreringsprocesser förblir effektiva och dynamiska. I följande exempel visas hur du konfigurerar en parameter i Dataflow Gen2:
Välj alternativet Hantera parametrar i dataflödesredigeraren.
Välj knappen Lägg till parameter för att lägga till en ny parameter.
Fyll i parameterinformationen, till exempel namn, typ och värde. Du kan till exempel skapa en parameter med namnet DesignDateFilter av typen
DateTimemed ett standardvärde som begränsar dataförhandsgranskningen till ett visst datumintervall.
Använd parametern i dina dataflödesfrågor genom att använda den i filtervillkoren. Du kan till exempel filtrera data baserat på parametern DesignDateFilter för att begränsa dataförhandsgranskningen till ett visst datumintervall. I det här fallet filtrerar vi data så att de endast innehåller poster där kolumnen "Date" är större än parametern DesignDateFilter .
Nu kan du använda parametern DesignDateFilter i dina dataflödesfrågor för att begränsa dataförhandsgranskningen under designtiden. När du är redo att köra dataflödet kan du justera parametervärdet så att det inkluderar hela datamängden, vilket säkerställer att dina dataintegreringsprocesser förblir effektiva och dynamiska.
Ett annat alternativ är att använda schemavyn, vilket gör att du kan se strukturen för dina data utan att läsa in hela datamängden. Den här vyn ger en översikt på hög nivå över datatyperna och kolumnerna i datauppsättningen, så att du kan utforma och testa ditt dataflöde utan att påverkas av stora förhandsgranskningar av data. Om du vill växla till schemavyn väljer du alternativet Schemavy i dataflödesredigeraren.
Övervägande 5: Dataflöde gen2-körningsegenskaper jämfört med Dataflöde Gen1
I det här scenariot ser du att prestandan för Dataflow Gen2 är långsammare än dataflödet Gen1, särskilt när det gäller körningstid och resursanvändning. Den här prestandaskillnaden kan bero på flera faktorer, inklusive skillnaderna i optimeringstekniker och utdataformat som används i Dataflöde Gen2.
Dataflöde Gen2 genererar data i Delta Parquet-format när du använder mellanlagrings- eller Lakehouse-mål, vilket skiljer sig från CsV-utdata från Dataflow Gen1. Delta Parquet kan leda till längre ETL-körningar jämfört med CSV, men det möjliggör kraftfulla nedströmsfunktioner som Direct Lake, Lakehouses och Warehouses, vilket gör att dessa tjänster kan använda data effektivt utan ytterligare bearbetning eller kostnad. Den här skillnaden i lagringsmetod innebär att även om den inledande körningstiden kan vara längre kan den övergripande prestandan och effektiviteten för nedströmsprocesser förbättras avsevärt och kan leda till bättre långsiktiga prestanda för dina arbetsflöden för dataintegrering. Läs mer om Delta Parquet-format.
Övervägande 6: Optimera uppdateringstiden för stora transaktionsdatauppsättningar med inkrementell uppdatering
I det här scenariot hanterar du en stor transaktionsdatauppsättning som uppdateras ofta och du vill optimera uppdateringstiden för ditt dataflöde. Den här optimeringen kan vara utmanande på grund av mängden data och behovet av att endast bearbeta de nya eller ändrade posterna.
I det här fallet bör du överväga att använda inkrementell uppdatering eller mönstret för att inkrementellt samla in data. Med inkrementell uppdatering kan du endast bearbeta nya eller ändrade data sedan den senaste uppdateringen, vilket minskar mängden data som bearbetas och påskyndar den totala körningstiden. Den här metoden är särskilt användbar för scenarier där data uppdateras ofta, till exempel i transaktionssystem. Genom att implementera inkrementell uppdatering kan du optimera dataflödets prestanda och se till att dina dataintegreringsprocesser förblir effektiva och dynamiska. Läs mer om inkrementell uppdatering eller lär dig mer om datamönstret Inkrementell insamling.
Övervägande 7: Jag använder en gateway för att ansluta till min lokala datakälla och jag vill optimera prestanda för mitt dataflöde
I det här scenariot använder du en gateway för att ansluta till din lokala datakälla och du vill optimera dataflödets prestanda. Gatewayer kan ge ytterligare svarstid och merkostnader, vilket kan påverka dataflödets övergripande prestanda.
I det här fallet bör du överväga att dela upp ditt dataflöde i två separata dataflöden: ett för dataflytt från den lokala datakällan till ett datamål (till exempel ett Lakehouse eller Warehouse) och ett annat för omvandlingar och slutliga utdata. Med den här metoden kan du optimera dataflyttsteget genom att använda Snabbkopia för högpresterande dataöverföring, samtidigt som transformeringssteget fokuserar på att bearbeta data effektivt och minska den totala exekveringstiden. Genom att separera stegen för dataförflyttning och transformering kan du minska effekten av gatewayens svarstid och kapacitetsbegränsningar. Anledningen till detta är att gatewayen kör hela dataflödet, och om dataflödet är komplext eller har många transformeringar kan det leda till långsammare prestanda eftersom gatewayen bearbetar alla transformeringar på den dator som är värd för gatewayen. Genom att dela upp dataflödet kan du se till att gatewayen endast ansvarar för steget för dataflytt, vilket avsevärt kan förbättra prestanda och minska körningstiden.
Övervägande 8: Jag använder dataflödesanslutningarna för att använda data från dataflödet och vill optimera mina dataintegreringsprocesser
I det här scenariot använder du dataflödesanslutningar för att använda data från ditt dataflöde och du vill optimera dina dataintegreringsprocesser. Dataflödesanslutningar kan vara ett bekvämt sätt att komma åt och använda data.
I det här fallet bör du överväga att använda datadestinationer i stället för anslutningar för dataflöden för att konsumera data från ditt dataflöde. Datamål, till exempel Lakehouses och Warehouses, är utformade för att effektivt lagra och tillgängliggöra data, vilket gör att du kan använda deras funktioner för vidare användning. En stor fördel med att använda datamål är att de ofta tillhandahåller mer generiska sätt att ansluta till data, till exempel SQL-endpoint eller att använda Direct Lake-funktionerna, vilket avsevärt kan förbättra prestanda och minska resursförbrukningen.
Conclusion
Genom att följa dessa metodtips och med tanke på de specifika egenskaperna för dina data och transformeringar kan du optimera prestanda för Dataflow Gen2 i Fabric Data Factory. Oavsett om du arbetar med stora datamängder, komplexa omvandlingar eller specifika dataintegreringsmönster ger dessa riktlinjer användbara insikter för att förbättra effektiviteten och hastigheten för dina dataintegreringsprocesser. Kom ihåg att prestandaoptimering är en pågående process, och du kan behöva justera din metod baserat på de föränderliga behoven i dina arbetsflöden för dataintegrering. Genom att kontinuerligt övervaka och optimera dina dataflöden kan du se till att de förblir effektiva och dynamiska för dina affärsbehov.