Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
gäller för:SQL Server
SSIS Integration Runtime i Azure Data Factory
Dataflödesaktiviteten kapslar in dataflödesmotorn som flyttar data mellan källor och mål och låter användaren transformera, rensa och ändra data när de flyttas. Genom att lägga till en dataflödesaktivitet i ett paketkontrollflöde kan paketet extrahera, transformera och läsa in data.
Ett dataflöde består av minst en dataflödeskomponent, men det är vanligtvis en uppsättning anslutna dataflödeskomponenter: källor som extraherar data; transformeringar som ändrar, dirigerar eller sammanfattar data. och mål som läser in data.
Vid körning skapar dataflödesaktiviteten en körningsplan från dataflödet och dataflödesmotorn kör planen. Du kan skapa en dataflödesaktivitet som inte har något dataflöde, men aktiviteten körs bara om den innehåller minst ett dataflöde.
Om du vill massinfoga data från textfiler i en SQL Server-databas kan du använda massinfogningsaktiviteten i stället för en dataflödesaktivitet och ett dataflöde. Massinfogningsaktiviteten kan dock inte transformera data. För mer information, se Bulk Insert Task.
Flera flöden
En dataflödesaktivitet kan innehålla flera dataflöden. Om en uppgift kopierar flera uppsättningar data, och om ordningen som data kopieras i inte är betydande, kan det vara enklare att inkludera flera dataflöden i dataflödesaktiviteten. Du kan till exempel skapa fem dataflöden, där var och en kopierar data från en platt fil till en annan dimensionstabell i ett star-schema för informationslager.
Dataflödesmotorn avgör dock körningsordningen när det finns flera dataflöden i en dataflödesaktivitet. När ordningen är viktig bör paketet därför använda flera dataflödesuppgifter, där varje uppgift innehåller ett dataflöde. Du kan sedan använda prioritetsbegränsningar för att styra körningsordningen för aktiviteterna.
Följande diagram visar en dataflödesaktivitet som har flera dataflöden.
Loggposter
Integration Services tillhandahåller en uppsättning logghändelser som är tillgängliga för alla aktiviteter. Integration Services tillhandahåller även anpassade loggposter för många uppgifter. Mer information finns i avsnittet om loggning av Integration Services (SSIS) . Dataflödesaktiviteten innehåller följande anpassade loggposter:
| Logganteckning | Description |
|---|---|
| BufferSizeTuning | Anger att dataflödesaktiviteten ändrade buffertens storlek. Loggposten beskriver orsakerna till storleksändringen och visar en lista över den tillfälliga nya buffertstorleken. |
| OnPipelinePostEndOfRowset | Anger att en komponent har fått sin slutsignal för raduppsättningen, vilket anges av det sista anropet av metoden ProcessInput. En post skrivs för varje komponent i dataflödet som bearbetar indata. Posten innehåller komponentens namn. |
| OnPipelinePostPrimeOutput | Anger att komponenten har slutfört sitt senaste anrop till PrimeOutput-metoden . Beroende på dataflödet kan flera loggposter skrivas. Om komponenten är en källa innebär den här loggposten att komponenten har bearbetat rader. |
| OnPipelinePreEndOfRowset | Anger att en komponent kommer att ta emot slutsignalen för radsamlingen, som anges av det sista anropet av metoden ProcessInput. En post skrivs för varje komponent i dataflödet som bearbetar indata. Posten innehåller komponentens namn. |
| OnPipelinePrePrimeOutput | Anger att komponenten är på väg att ta emot sitt anrop från PrimeOutput-metoden . Beroende på dataflödet kan flera loggposter skrivas. |
| OnPipelineRowsSent | Rapporterar antalet rader som tillhandahålls till en komponentinmatning av ett anrop till metoden ProcessInput . Loggposten innehåller komponentnamnet. |
| PipelineBufferLeak | Innehåller information om alla komponenter som höll buffertar vid liv när bufferthanteraren försvinner. Om en buffert fortfarande är aktiv släpptes inte buffertarnas resurser frigöras, vilket kan leda till minnesläckor. Loggposten innehåller namnet på komponenten och buffertens ID. |
| PipelineComponentTime | Rapporterar hur lång tid (i millisekunder) som komponenten spenderade i vart och ett av de fem viktigaste bearbetningsstegen– Validate, PreExecute, PostExecute, ProcessInput och ProcessOutput. |
| PipelineExecutionPlan | Rapporterar utförandeplanen för dataflödet. Körningsplanen innehåller information om hur buffertar skickas till komponenter. Den här informationen, i kombination med loggposten PipelineExecutionTrees, beskriver vad som händer i dataflödesaktiviteten. |
| PipelineExecutionTrees | Rapporterar exekveringsträden för layouten i dataflödet. Schemaläggaren för dataflödesmotorn använder träden för att bygga exekveringsplanen för dataflödet. |
| PipelineInitialisering | Innehåller initieringsinformation om uppgiften. Den här informationen omfattar de kataloger som ska användas för tillfällig lagring av BLOB-data, standardbuffertstorleken och antalet rader i en buffert. Beroende på konfigurationen av dataflödesaktiviteten kan flera loggposter skrivas. |
Dessa loggposter innehåller en mängd information om körningen av dataflödesaktiviteten varje gång du kör ett paket. När du kör paketen upprepade gånger kan du samla in information som med tiden ger viktig historisk information om den bearbetning som aktiviteten utför, problem som kan påverka prestanda och den datavolym som uppgiften hanterar.
Mer information om hur du använder dessa loggposter för att övervaka och förbättra dataflödets prestanda finns i något av följande avsnitt:
Exempelmeddelanden från en dataflödesaktivitet
I följande tabell visas exempelmeddelanden för loggposter för ett mycket enkelt paket. Paketet använder en OLE DB-källa för att extrahera data från en tabell, en sorteringstransformering för att sortera data och ett OLE DB-mål för att skriva data till en annan tabell.
| Logganteckning | Messages |
|---|---|
| BufferSizeTuning | Rows in buffer type 0 would cause a buffer size greater than the configured maximum. There will be only 9637 rows in buffers of this type.Rows in buffer type 2 would cause a buffer size greater than the configured maximum. There will be only 9497 rows in buffers of this type.Rows in buffer type 3 would cause a buffer size greater than the configured maximum. There will be only 9497 rows in buffers of this type. |
| OnPipelinePostEndOfRowset | A component will be given the end of rowset signal. : 1180 : Sort : 1181 : Sort InputA component will be given the end of rowset signal. : 1291 : OLE DB Destination : 1304 : OLE DB Destination Input |
| OnPipelinePostPrimeOutput | A component has returned from its PrimeOutput call. : 1180 : SortA component has returned from its PrimeOutput call. : 1 : OLE DB Source |
| OnPipelinePreEndOfRowset | A component has finished processing all of its rows. : 1180 : Sort : 1181 : Sort InputA component has finished processing all of its rows. : 1291 : OLE DB Destination : 1304 : OLE DB Destination Input |
| OnPipelinePrePrimeOutput | PrimeOutput will be called on a component. : 1180 : SortPrimeOutput will be called on a component. : 1 : OLE DB Source |
| OnPipelineRowsSent | Rows were provided to a data flow component as input. : : 1185 : OLE DB Source Output : 1180 : Sort : 1181 : Sort Input : 76Rows were provided to a data flow component as input. : : 1308 : Sort Output : 1291 : OLE DB Destination : 1304 : OLE DB Destination Input : 76 |
| PipelineComponentTime | The component "Calculate LineItemTotalCost" (3522) spent 356 milliseconds in ProcessInput.The component "Sum Quantity and LineItemTotalCost" (3619) spent 79 milliseconds in ProcessInput.The component "Calculate Average Cost" (3662) spent 16 milliseconds in ProcessInput.The component "Sort by ProductID" (3717) spent 125 milliseconds in ProcessInput.The component "Load Data" (3773) spent 0 milliseconds in ProcessInput.The component "Extract Data" (3869) spent 688 milliseconds in PrimeOutput filling buffers on output "OLE DB Source Output" (3879).The component "Sum Quantity and LineItemTotalCost" (3619) spent 141 milliseconds in PrimeOutput filling buffers on output "Aggregate Output 1" (3621).The component "Sort by ProductID" (3717) spent 16 milliseconds in PrimeOutput filling buffers on output "Sort Output" (3719). |
| PipelineExecutionPlan | SourceThread0Drives: 1Influences: 1180 1291Output Work ListCreatePrimeBuffer of type 1 for output ID 11.SetBufferListener: "WorkThread0" for input ID 1181CreatePrimeBuffer of type 3 for output ID 12.CallPrimeOutput on component "OLE DB Source" (1)End Output Work ListEnd SourceThread0WorkThread0Drives: 1180Influences: 1180 1291Input Work list, input ID 1181 (1 EORs Expected)CallProcessInput on input ID 1181 on component "Sort" (1180) for view type 2End Input Work list for input 1181Output Work ListCreatePrimeBuffer of type 4 for output ID 1182.SetBufferListener: "WorkThread1" for input ID 1304CallPrimeOutput on component "Sort" (1180)End Output Work ListEnd WorkThread0WorkThread1Drives: 1291Influences: 1291Input Work list, input ID 1304 (1 EORs Expected)CallProcessInput on input ID 1304 on component "OLE DB Destination" (1291) for view type 5End Input Work list for input 1304Output Work ListEnd Output Work ListEnd WorkThread1 |
| PipelineExecutionTrees | begin execution tree 0output "OLE DB Source Output" (11)input "Sort Input" (1181)end execution tree 0begin execution tree 1output "OLE DB Source Error Output" (12)end execution tree 1begin execution tree 2output "Sort Output" (1182)input "OLE DB Destination Input" (1304)output "OLE DB Destination Error Output" (1305)end execution tree 2 |
| Pipeline-initialisering | No temporary BLOB data storage locations were provided. The buffer manager will consider the directories in the TEMP and TMP environment variables.The default buffer size is 10485760 bytes.Buffers will have 10000 rows by defaultThe data flow will not remove unused components because its RunInOptimizedMode property is set to false. |
Många logghändelser skriver flera poster och meddelandena för ett antal loggposter innehåller komplexa data. För att göra det enklare att förstå och kommunicera innehållet i komplexa meddelanden kan du parsa meddelandetexten. Beroende på var loggarna finns kan du använda Transact-SQL-instruktioner eller en skriptkomponent för att separera den komplexa texten i kolumner eller andra format som du tycker är mer användbara.
Följande tabell innehåller till exempel meddelandet "Rader har angetts till en dataflödeskomponent som indata. : : 1185 : OLE DB Source Output : 1180 : Sort : 1181 : Sort Input : 76", parsad i kolumner. Meddelandet skrevs av händelsen OnPipelineRowsSent när rader skickades från OLE DB-källan till sorteringstransformeringen.
| Kolumn | Description | Värde |
|---|---|---|
| PathID | Värdet från ID-egenskapen för sökvägen mellan OLE DB-källan och Sort-transformationen. | 1185 |
| Sökvägsnamn | Värdet av egenskapen Name för sökvägen. | OLE DB-källutdata |
| ComponentID | Värdet för ID-egenskapen för sorttransformeringen. | 1180 |
| ComponentName | Värdet från egenskapen Name för sorttransformeringen. | Sortera |
| InputID | Värdet från ID-egenskapen för indata till sorteringstransformeringen. | 1181 |
| InputName | Värdet från egenskapen Namn för indata i Sorteringstransformationen. | Sortera indata |
| RaderSent | Antalet rader som skickas till indata för sorttransformeringen. | 76 |
Konfiguration av dataflödesaktiviteten
Du kan ange egenskaper i fönstret Egenskaper eller programmatiskt.
Klicka på följande ämne om du vill ha mer information om hur du anger dessa egenskaper i fönstret Egenskaper :
Programmatisk konfiguration av dataflödesuppgiften
Om du vill ha mer information om hur du programmatiskt lägger till en dataflödesaktivitet i ett paket och anger dataflödesegenskaper klickar du på följande ämne:
Relaterade uppgifter
Ange egenskaper för en aktivitet eller container
Relaterat innehåll
Video, Balanced Data Distributer, på technet.microsoft.com.