Megosztás:


Adatfolyam-tevékenység

A következőkre vonatkozik:SQL Server SSIS integrációs futtatókörnyezet az Azure Data Factory-ban

Az adatfolyam-feladat magában foglalja azt az adatfolyam-motort, amely az adatokat a források és a célhelyek között helyezi át, és lehetővé teszi a felhasználó számára az adatok áthelyezéskor történő átalakítását, tisztítását és módosítását. Az adatfolyam-feladat csomagvezérlési folyamathoz való hozzáadása lehetővé teszi, hogy a csomag adatokat nyerjen ki, alakítson át és töltsön be.

Az adatfolyamok legalább egy adatfolyam-összetevőből állnak, de általában összekapcsolt adatfolyam-összetevőkből állnak: az adatokat kinyerő forrásokból; az adatokat módosító, átirányító vagy összesítő átalakítások; és az adatokat betöltő célhelyek.

Futásidőben az adatfolyam-feladat létrehoz egy végrehajtási tervet az adatfolyamból, és az adatfolyam-motor végrehajtja a tervet. Létrehozhat adatfolyam-tevékenységet, amely nem rendelkezik adatfolyamkal, de a feladat csak akkor fut, ha legalább egy adatfolyamot tartalmaz.

Ha szöveges fájlokból szeretne adatokat tömegesen beszúrni egy SQL Server-adatbázisba, a Tömeges beszúrás feladatot használhatja adatfolyam-tevékenység és adatfolyam helyett. A Tömeges beszúrás feladat azonban nem tudja átalakítani az adatokat. További információ: Tömeges beszúrás feladata.

Több adatfolyam

Az adatfolyam-tevékenységek több adatfolyamot is tartalmazhatnak. Ha egy tevékenység több adathalmazt másol, és ha az adatok másolási sorrendje nem jelentős, akkor kényelmesebb lehet több adatfolyamot is belefoglalni az adatfolyam-tevékenységbe. Létrehozhat például öt adatfolyamot, és mindegyik egy sima fájlból másol adatokat egy másik dimenziótáblába egy adattárház csillagsémában.

Az adatfolyam-motor azonban meghatározza a végrehajtás sorrendjét, ha egy adatfolyam-feladaton belül több adatfolyam is található. Ezért ha fontos a sorrend, a csomagnak több adatfolyam-feladatot kell használnia, amelyek mindegyike egy adatfolyamot tartalmaz. Ezután elsőbbséget élvező korlátozásokkal szabályozhatja a tevékenységek végrehajtási sorrendjét.

Az alábbi ábrán egy több adatfolyamot tartalmazó adatfolyam-feladat látható.

Adatfolyamok

Naplóbejegyzések

Az Integration Services olyan naplóeseményeket biztosít, amelyek minden tevékenység számára elérhetők. Az Integration Services emellett számos tevékenységhez biztosít egyéni naplóbejegyzéseket. További információkért lásd a Integration Services (SSIS) naplózásrészt. Az adatfolyam-feladat a következő egyéni naplóbejegyzéseket tartalmazza:

Naplóbejegyzés Description
BufferSizeTuning Azt jelzi, hogy az adatfolyam-feladat módosította a puffer méretét. A naplóbejegyzés ismerteti a méretváltozás okait, és felsorolja az ideiglenes új pufferméretet.
OnPipelinePostEndOfRowset Azt jelzi, hogy egy összetevő megkapta a sorvégi jelét, amelyet a ProcessInput metódus utolsó hívása állít be. A rendszer bejegyzést ír az adatfolyam minden olyan összetevőjére, amely feldolgozza a bemenetet. A bejegyzés tartalmazza az összetevő nevét.
OnPipelinePostPrimeOutput Azt jelzi, hogy az összetevő befejezte a PrimeOutput metódus utolsó hívását. Az adatfolyamtól függően több naplóbejegyzés is írható. Ha az összetevő forrás, ez a naplóbejegyzés azt jelenti, hogy az összetevő befejezte a sorok feldolgozását.
OnPipelinePreEndOfRowset Azt jelzi, hogy egy összetevő a sorvégi jelét kapja, amelyet a ProcessInput metódus utolsó hívása állít be. A rendszer bejegyzést ír az adatfolyam minden olyan összetevőjére, amely feldolgozza a bemenetet. A bejegyzés tartalmazza az összetevő nevét.
OnPipelinePrePrimeOutput Azt jelzi, hogy az összetevő a PrimeOutput metódusból készül fogadni a hívást. Az adatfolyamtól függően több naplóbejegyzés is írható.
OnPipelineRowsSent A ProcessInput metódus hívása által az összetevő bemenetének megadott sorok számát jelenti. A naplóbejegyzés tartalmazza az összetevő nevét.
PipelineBufferLeak Információt nyújt minden olyan összetevőről, amely a pufferkezelő eltűnése után életben tartotta a puffereket. Ha egy puffer még életben van, a pufferek erőforrásai nem lettek felszabadítva, és memóriavesztést okozhatnak. A naplóbejegyzés tartalmazza az összetevő nevét és a puffer azonosítóját.
PipelineComponentTime Azt az időt (ezredmásodpercben) jelenti, amelyet az összetevő az öt fő feldolgozási lépés mindegyikében töltött – Ellenőrzés, PreExecute, PostExecute, ProcessInput és ProcessOutput.
PipelineExecutionPlan Az adatfolyam végrehajtási tervét jelenti. A végrehajtási terv tájékoztatást nyújt arról, hogy a rendszer hogyan küldi el a puffereket az összetevőknek. Ez az információ a PipelineExecutionTrees naplóbejegyzéssel együtt azt ismerteti, hogy mi történik az adatfolyam-feladatban.
PipelineExecutionTrees Az adatfolyam elrendezésének végrehajtási fáit jelenti. Az adatfolyam-motor ütemezője a fákkal készíti el az adatfolyam végrehajtási tervét.
PipelineInitialization Inicializálási információkat nyújt a tevékenységről. Ezek az információk tartalmazzák a BLOB-adatok ideiglenes tárolásához használandó könyvtárakat, az alapértelmezett pufferméretet és a puffer sorainak számát. Az adatfolyam-feladat konfigurációjától függően több naplóbejegyzés is írható.

Ezek a naplóbejegyzések rengeteg információt nyújtanak az adatfolyam-feladat végrehajtásáról minden csomag futtatásakor. A csomagok ismételt futtatása során rögzítheti azokat az információkat, amelyek idővel fontos előzményadatokat szolgáltatnak a tevékenység által végrehajtott feldolgozásról, a teljesítményre esetlegesen hatással lévő problémákról és a feladat által kezelt adatmennyiségről.

Ha többet szeretne tudni arról, hogyan használhatja ezeket a naplóbejegyzéseket az adatfolyam teljesítményének figyelésére és javítására, tekintse meg az alábbi témakörök egyikét:

Mintaüzenetek adatfolyam-feladatból

Az alábbi táblázat egy nagyon egyszerű csomag naplóbejegyzéseinek mintaüzeneteit sorolja fel. A csomag egy OLE DB-forrás használatával nyer ki adatokat egy táblából, rendezési átalakítással rendezi az adatokat, egy OLE DB-célhely pedig egy másik táblába írja az adatokat.

Naplóbejegyzés 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
PipelineInitialization 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.

Számos naplóesemény több bejegyzést ír, és számos naplóbejegyzés üzenetei összetett adatokat tartalmaznak. Az összetett üzenetek tartalmának könnyebb megértéséhez és közléséhez elemezheti az üzenet szövegét. A naplók helyétől függően Transact-SQL utasítások vagy szkriptösszetevők használatával elválaszthatja az összetett szöveget oszlopokra vagy más olyan formátumokra, amelyeket hasznosabbnak talál.

Az alábbi táblázat például azt az üzenetet tartalmazza, hogy "A sorok bemenetként egy adatfolyam-összetevőhöz lettek megadva. : : 1185 : OLE DB Forráskimenet : 1180 : Rendezés : 1181 : Bemenet rendezése : 76", oszlopokba rendezve. Az üzenetet az OnPipelineRowsSent esemény írta, amikor sorokat küldtek az OLE DB-forrásból a Rendezés transzformációba.

oszlop Description Érték
PathID Az OLE DB-forrás és a Rendezés transzformáció közötti elérési út azonosító tulajdonságának értéke. 1185
Útvonal Az elérési út Név tulajdonságának értéke. OLE DB-forráskimenet
ComponentID A Rendezés transzformáció azonosító tulajdonságának értéke. 1180
ComponentName A Rendezés átalakítás Név tulajdonságának értéke. Fajta
InputID A bemenet Azonosító tulajdonságának értéke a Rendezés átalakításhoz. 1181
InputName A bemenet Név tulajdonságának értéke a Rendezés átalakításhoz. Bemenet rendezése
RowsSent A sorok száma, amelyeket a Rendezés átalakítás bemenetére küldtek. 76

Az adatfolyam-feladat konfigurálása

A tulajdonságokat a Tulajdonságok ablakban vagy programozott módon is beállíthatja.

A tulajdonságok Tulajdonságok ablakban való beállításával kapcsolatos további információkért kattintson a következő témakörre:

Az adatfolyam-feladat programozott konfigurációja

Az adatfolyam-feladat csomaghoz való programozott hozzáadásával és az adatfolyam tulajdonságainak beállításával kapcsolatos további információkért kattintson a következő témakörre:

Tevékenység vagy Tároló tulajdonságainak beállítása

Videó, Balanced Data Distributer, technet.microsoft.com.