Tugas Aliran Data
Berlaku untuk: SQL Server SSIS Integration Runtime 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 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 waktu proses, 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 pesanan 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 menunjukkan tugas Aliran Data yang memiliki beberapa aliran data.
Entri Log
Integration Services menyediakan serangkaian peristiwa log yang tersedia untuk semua tugas. Integration Services juga menyediakan entri log kustom ke banyak tugas. Untuk informasi selengkapnya, lihat Pengelogan Integration Services (SSIS). Tugas Aliran Data mencakup entri log kustom berikut:
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 diberi sinyal end-of-rowset, yang diatur oleh panggilan terakhir metode ProcessInput . Entri ditulis untuk setiap komponen dalam aliran data yang memproses input. Entri 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 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 pergi. 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 mengambil informasi yang dari waktu ke waktu menyediakan 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 contoh pesan 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 mengomunikasikan 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 dari transformasi Sortir. | Sort |
InputID | Nilai dari properti ID input ke transformasi Sortir. | 1181 |
InputName | Nilai dari properti Nama input ke transformasi Sortir. | 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:
Konfigurasi Terprogram Tugas Aliran Data
Untuk informasi selengkapnya tentang menambahkan tugas aliran data secara terprogram ke paket dan mengatur properti aliran data, klik topik berikut:
Tugas Terkait
Mengatur Properti Tugas atau Kontainer
Konten Terkait
Video, Balanced Data Distributer, di technet.microsoft.com.