Sdílet prostřednictvím


Úloha toku dat

platí pro:SQL Server SSIS Integration Runtime ve službě Azure Data Factory

Úloha Toku dat zapouzdřuje modul toku dat, který přesouvá data mezi zdroji a cíli, a umožňuje uživateli transformovat, vyčistit a upravovat data při přesouvání. Přidání úlohy toku dat do toku řízení balíčku umožňuje balíčku extrahovat, transformovat a načítat data.

Tok dat se skládá z alespoň jedné komponenty toku dat, ale obvykle se jedná o sadu připojených komponent toku dat: zdroje, které extrahuje data; transformace, které upravují, směrují nebo shrnují data; a cíle, které načítají data.

Úloha toku dat během běhu vytváří prováděcí plán z toku dat, a modul toku dat tento plán provede. Můžete vytvořit úlohu toku dat, která nemá žádný tok dat, ale úloha se spustí pouze v případě, že zahrnuje alespoň jeden tok dat.

Pokud chcete hromadně vkládat data z textových souborů do databáze SQL Serveru, můžete místo úlohy Toku dat a toku dat použít úlohu Hromadné vložení. Úloha Hromadné vložení však nemůže transformovat data. Další informace viz Úloha pro hromadné vkládání.

Více toků

Úloha toku dat může obsahovat více toků dat. Pokud úloha zkopíruje několik sad dat a pokud pořadí kopírování dat není významné, může být vhodnější zahrnout do úlohy Tok dat více toků dat. Můžete například vytvořit pět toků dat, z nichž každý kopíruje data z plochého souboru do jiné tabulky dimenzí ve schématu hvězdy datového skladu.

Modul toku dat ale určuje pořadí provádění, pokud v rámci jedné úlohy toku dat existuje více toků dat. Pokud je tedy pořadí důležité, měl by balíček používat více úloh toku dat, přičemž každá úloha obsahuje jeden tok dat. Pak můžete použít omezení priority pro řízení pořadí provádění úkolů.

Následující diagram znázorňuje úlohu toku dat, která má více toků dat.

Toky dat

Položky protokolu

Integrační služby poskytují sadu událostí protokolu, které jsou k dispozici pro všechny úlohy. Integrační služby také poskytují vlastní položky protokolu pro mnoho úloh. Další informace naleznete v tématu Integrace služeb (SSIS) protokolování. Úloha Toku dat obsahuje následující vlastní položky protokolu:

Položka protokolu Description
BufferSizeTuning Označuje, že úloha toku dat změnila velikost vyrovnávací paměti. Položka protokolu popisuje důvody změny velikosti a uvádí dočasnou novou velikost vyrovnávací paměti.
OnPipelinePostEndOfRowset Označuje, že komponenta dostala signál konce sady řádků, který je nastaven posledním voláním ProcessInput metody. Položka se zapisuje pro každou komponentu toku dat, která zpracovává vstup. Položka obsahuje název komponenty.
OnPipelinePostPrimeOutput Označuje, že komponenta dokončila poslední volání Metody PrimeOutput . V závislosti na toku dat může být zapsáno více položek protokolu. Pokud je komponenta zdrojem, znamená tato položka protokolu, že komponenta dokončila zpracování řádků.
OnPipelinePreEndOfRowset Označuje, že komponenta se chystá přijímat svůj signál ukončení sady řádků, který je nastaven posledním voláním ProcessInput metoda. Položka se zapisuje pro každou komponentu toku dat, která zpracovává vstup. Položka obsahuje název komponenty.
OnPipelinePrePrimeOutput Označuje, že komponenta se chystá přijmout volání z PrimeOutput metody. V závislosti na toku dat může být zapsáno více položek protokolu.
OnPipelineRowsSent Hlásí počet řádků zadaných pro vstup komponenty voláním ProcessInput metody. Položka protokolu obsahuje název komponenty.
PipelineBufferLeak Poskytuje informace o jakékoli komponentě, která udržela vyrovnávací paměti naživu po odstranění správce vyrovnávací paměti. Pokud je vyrovnávací paměť stále aktivní, prostředky vyrovnávací paměti nebyly uvolněny a může dojít k únikům paměti. Položka protokolu poskytuje název komponenty a ID vyrovnávací paměti.
PipelineComponentTime Hlásí dobu (v milisekundách), kterou komponenta strávila v každém z pěti hlavních kroků zpracování– Validate, PreExecute, PostExecute, ProcessInput a ProcessOutput.
PipelineExecutionPlan Zaznamenává plán provádění toku dat. Plán provádění poskytuje informace o tom, jak se budou vyrovnávací paměti odesílat do komponent. Tyto informace v kombinaci s položkou protokolu PipelineExecutionTrees popisují, co se děje v rámci úlohy Tok dat.
PipelineExecutionTrees Zaznamenává stromy provádění rozložení v toku dat. Plánovač modulu toku dat používá stromy k sestavení plánu provádění toku dat.
Inicializace potrubí Poskytuje informace o inicializaci úkolu. Tyto informace zahrnují adresáře, které se mají použít pro dočasné ukládání dat objektů blob, výchozí velikost vyrovnávací paměti a počet řádků ve vyrovnávací paměti. V závislosti na konfiguraci úlohy toku dat může být zapsáno více položek protokolu.

Tyto položky protokolu poskytují řadu informací o provádění úlohy Toku dat při každém spuštění balíčku. Při opakovaném spouštění balíčků můžete zachytit informace, které v průběhu času poskytují důležité historické informace o zpracování, které úloha provádí, problémy, které můžou ovlivnit výkon, a datový svazek, který úloha zpracovává.

Další informace o tom, jak tyto položky protokolu použít k monitorování a zlepšení výkonu toku dat, najdete v jednom z následujících témat:

Ukázkové zprávy z úlohy toku dat

Následující tabulka uvádí ukázkové zprávy pro položky protokolu pro velmi jednoduchý balíček. Balíček používá zdroj OLE DB k extrakci dat z tabulky, řazení pro třídění dat a cílové určení OLE DB pro zápis dat do jiné tabulky.

Položka protokolu 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 Input

A 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 : Sort

A 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 Input

A 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 : Sort

PrimeOutput 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 : 76

Rows 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 SourceThread0

Drives: 1

Influences: 1180 1291

Output Work List

CreatePrimeBuffer of type 1 for output ID 11.

SetBufferListener: "WorkThread0" for input ID 1181

CreatePrimeBuffer of type 3 for output ID 12.

CallPrimeOutput on component "OLE DB Source" (1)

End Output Work List

End SourceThread0

WorkThread0

Drives: 1180

Influences: 1180 1291

Input Work list, input ID 1181 (1 EORs Expected)

CallProcessInput on input ID 1181 on component "Sort" (1180) for view type 2

End Input Work list for input 1181

Output Work List

CreatePrimeBuffer of type 4 for output ID 1182.

SetBufferListener: "WorkThread1" for input ID 1304

CallPrimeOutput on component "Sort" (1180)

End Output Work List

End WorkThread0

WorkThread1

Drives: 1291

Influences: 1291

Input Work list, input ID 1304 (1 EORs Expected)

CallProcessInput on input ID 1304 on component "OLE DB Destination" (1291) for view type 5

End Input Work list for input 1304

Output Work List

End Output Work List

End WorkThread1
PipelineExecutionTrees begin execution tree 0

output "OLE DB Source Output" (11)

input "Sort Input" (1181)

end execution tree 0

begin execution tree 1

output "OLE DB Source Error Output" (12)

end execution tree 1

begin execution tree 2

output "Sort Output" (1182)

input "OLE DB Destination Input" (1304)

output "OLE DB Destination Error Output" (1305)

end execution tree 2
Inicializace pipeline 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 default

The data flow will not remove unused components because its RunInOptimizedMode property is set to false.

Mnoho událostí protokolu zapisuje více položek a zprávy pro řadu položek protokolu obsahují složitá data. Aby bylo snazší pochopit a sdělit obsah složitých zpráv, můžete text zprávy analyzovat. V závislosti na umístění protokolů můžete použít příkazy Transact-SQL nebo komponentu Script k oddělení složitého textu do sloupců nebo jiných formátů, které považujete za užitečnější.

Například následující tabulka obsahuje zprávu "Řádky byly poskytnuty komponentě toku dat jako vstup." : : 1185 : Výstup zdroje OLE DB : 1180 : Seřadit : 1181 : Seřadit vstup : 76", rozparsovaný do sloupců. Zpráva byla vytvořena událostí OnPipelineRowsSent, když byly řádky odeslány ze zdroje OLE DB do transformace řazení.

Sloupec Description Hodnota
ID cesty Hodnota z vlastnosti ID na cestě mezi zdrojem OLE DB a transformací Sort. 1185
Název cesty Hodnota z vlastnosti Name cesty. Výstup zdroje OLE DB
ComponentID Hodnota vlastnosti ID transformace Sort. 1180
ComponentName Hodnota z vlastnosti Name transformace Sort. Seřadit
InputID Hodnota z vlastnosti ID vstupu do transformace Sort. 1181
InputName Hodnota z vlastnosti Name vstupu do transformace Sort. Seřadit vstup
ŘádkySent Počet řádků odeslaných na vstup transformace Řazení. 76

Konfigurace úlohy toku dat

Vlastnosti můžete nastavit v okně Vlastnosti nebo programově.

Další informace o tom, jak nastavit tyto vlastnosti v okně Vlastnosti , klepněte na následující téma:

Programová konfigurace úlohy toku dat

Další informace o programovém přidání úlohy toku dat do balíčku a nastavení vlastností toku dat klikněte na následující téma:

Nastavení vlastností úlohy nebo kontejneru

Video, Balanced Data Distributer na technet.microsoft.com.