Tugas Aliran Data

Berlaku untuk: Integration Runtime SSIS SQL Server di Azure Data Factory

Tugas Aliran Data merangkum mesin aliran data yang memindahkan data antara sumber dan tujuan, dan memungkinkan pengguna mengubah, membersihkan, dan memodifikasi data saat dipindahkan. Penambahan tugas Aliran Data ke alur kontrol paket memungkinkan paket untuk mengekstrak, mengubah, dan memuat data.

Aliran data terdiri dari setidaknya satu komponen aliran data, tetapi biasanya merupakan sekumpulan komponen aliran data yang terhubung: sumber yang mengekstrak data; transformasi yang memodifikasi, merutekan, atau meringkas data; dan tujuan yang memuat data.

Pada durasi, tugas Aliran Data membangun rencana eksekusi dari aliran data, dan mesin aliran data menjalankan rencana. Anda dapat membuat tugas Aliran Data yang tidak memiliki aliran data, tetapi tugas hanya dijalankan jika menyertakan setidaknya satu aliran data.

Untuk menyisipkan data secara massal dari file teks ke dalam database SQL Server, Anda bisa menggunakan tugas Sisipkan Massal alih-alih tugas Aliran Data dan aliran data. Namun, tugas Sisipkan Massal tidak dapat mengubah data. Untuk informasi selengkapnya, lihat Sisipkan Tugas Secara Massal.

Beberapa Alur

Tugas Aliran Data dapat menyertakan beberapa aliran data. Jika tugas menyalin beberapa set data, dan jika urutan data disalin tidak signifikan, akan lebih mudah untuk menyertakan beberapa aliran data dalam tugas Aliran Data. Misalnya, Anda dapat membuat lima aliran data, masing-masing menyalin data dari file datar ke tabel dimensi yang berbeda dalam skema bintang gudang data.

Namun, mesin aliran data menentukan urutan eksekusi ketika ada beberapa aliran data dalam satu tugas aliran data. Oleh karena itu, ketika urutan penting, paket harus menggunakan beberapa tugas Aliran Data, setiap tugas yang berisi satu aliran data. Anda kemudian dapat menerapkan batasan prioritas untuk mengontrol urutan eksekusi tugas.

Diagram berikut ini memperlihatkan tugas Aliran Data yang memiliki beberapa aliran data.

Aliran data

Entri Log

Layanan Integrasi menyediakan serangkaian peristiwa log yang tersedia untuk semua tugas. Layanan Integrasi juga menyediakan entri log kustom ke banyak tugas. Untuk informasi selengkapnya, lihat Pengelogan Integration Services (SSIS). Tugas Aliran Data menyertakan entri log kustom berikut ini:

Entri log Deskripsi
BufferSizeTuning Menunjukkan bahwa tugas Aliran Data mengubah ukuran buffer. Entri log menjelaskan alasan perubahan ukuran dan mencantumkan ukuran buffer baru sementara.
OnPipelinePostEndOfRowset Menunjukkan bahwa komponen telah diberikan sinyal end-of-rowset-nya, yang diatur oleh panggilan terakhir metode ProcessInput . Entri ditulis untuk setiap komponen dalam aliran data yang memproses input. Entri ini mencakup nama komponen.
OnPipelinePostPrimeOutput Menunjukkan bahwa komponen telah menyelesaikan panggilan terakhirnya ke metode PrimeOutput . Bergantung pada aliran data, beberapa entri log dapat ditulis. Jika komponen adalah sumber, entri log ini berarti bahwa komponen telah selesai memproses baris.
OnPipelinePreEndOfRowset Menunjukkan bahwa komponen akan menerima sinyal end-of-rowset-nya, yang diatur oleh panggilan terakhir metode ProcessInput . Entri ditulis untuk setiap komponen dalam aliran data yang memproses input. Entri ini mencakup nama komponen.
OnPipelinePrePrimeOutput Menunjukkan bahwa komponen akan menerima panggilannya dari metode PrimeOutput . Bergantung pada aliran data, beberapa entri log dapat ditulis.
OnPipelineRowsSent Melaporkan jumlah baris yang diberikan ke input komponen dengan panggilan ke metode ProcessInput . Entri log menyertakan nama komponen.
PipelineBufferLeak Menyediakan informasi tentang komponen apa pun yang membuat buffer tetap hidup setelah manajer buffer hilang. Jika buffer masih hidup, sumber daya buffer tidak dirilis dan dapat menyebabkan kebocoran memori. Entri log menyediakan nama komponen dan ID buffer.
PipelineComponentTime Melaporkan jumlah waktu (dalam milidetik) yang dihabiskan komponen di masing-masing dari lima langkah pemrosesan utamanya-Validasi, PreExecute, PostExecute, ProcessInput, dan ProcessOutput.
PipelineExecutionPlan Melaporkan rencana eksekusi aliran data. Rencana eksekusi memberikan informasi tentang bagaimana buffer akan dikirim ke komponen. Informasi ini, dalam kombinasi dengan entri log PipelineExecutionTrees, menjelaskan apa yang terjadi dalam tugas Aliran Data.
PipelineExecutionTrees Melaporkan pohon eksekusi tata letak dalam aliran data. Penjadwal mesin aliran data menggunakan pohon untuk membangun rencana eksekusi aliran data.
PipelineInitialization Menyediakan informasi inisialisasi tentang tugas. Informasi ini mencakup direktori yang akan digunakan untuk penyimpanan sementara data BLOB, ukuran buffer default, dan jumlah baris dalam buffer. Bergantung pada konfigurasi tugas Aliran Data, beberapa entri log dapat ditulis.

Entri log ini memberikan banyak informasi tentang eksekusi tugas Aliran Data setiap kali Anda menjalankan paket. Saat Anda menjalankan paket berulang kali, Anda dapat menangkap informasi yang seiring waktu memberikan informasi historis penting tentang pemrosesan yang dilakukan tugas, masalah yang mungkin memengaruhi performa, dan volume data yang ditangani tugas.

Untuk informasi selengkapnya tentang cara menggunakan entri log ini untuk memantau dan meningkatkan performa aliran data, lihat salah satu topik berikut:

Contoh Pesan Dari Tugas Aliran Data

Tabel berikut mencantumkan pesan sampel untuk entri log untuk paket yang sangat sederhana. Paket menggunakan sumber OLE DB untuk mengekstrak data dari tabel, transformasi Sortir untuk mengurutkan data, dan tujuan OLE DB untuk menulis data ke tabel lain.

Entri log Pesan
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.

Banyak peristiwa log menulis beberapa entri, dan pesan untuk sejumlah entri log berisi data yang kompleks. Untuk mempermudah memahami dan mengkomunikasikan konten pesan kompleks, Anda dapat mengurai teks pesan. Bergantung pada lokasi log, Anda dapat menggunakan pernyataan Transact-SQL atau komponen Skrip untuk memisahkan teks kompleks ke dalam kolom atau format lain yang menurut Anda lebih berguna.

Misalnya, tabel berikut berisi pesan "Baris disediakan untuk komponen aliran data sebagai input. : : 1185 : Output Sumber OLE DB : 1180 : Urutkan : 1181 : Urutkan Input : 76", diurai ke dalam kolom. Pesan ditulis oleh peristiwa OnPipelineRowsSent ketika baris dikirim dari sumber OLE DB ke transformasi Sortir.

Kolom Deskripsi Nilai
PathID Nilai dari properti ID jalur antara sumber OLE DB dan transformasi Sortir. 1185
PathName Nilai dari properti Nama jalur. Output Sumber OLE DB
ComponentID Nilai properti ID dari transformasi Sortir. 1180
ComponentName Nilai dari properti Nama transformasi Sortir. Sort
InputID Nilai dari properti ID input ke transformasi Urutkan. 1181
InputName Nilai dari properti Nama input ke transformasi Urutkan. Urutkan Input
RowsSent Jumlah baris yang dikirim ke input transformasi Sortir. 76

Konfigurasi Tugas Aliran Data

Anda dapat mengatur properti di jendela Properti atau secara terprogram.

Untuk informasi selengkapnya tentang cara mengatur properti ini di jendela Properti , klik topik berikut ini:

Konfigurasi Terprogram dari Tugas Aliran Data

Untuk informasi selengkapnya tentang menambahkan tugas aliran data secara terprogram ke paket dan mengatur properti aliran data, klik topik berikut:

Mengatur Properti Tugas atau Kontainer

Video, Distribusi Data Seimbang, pada technet.microsoft.com.