Penelusuran Kesalahan Aliran Data

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

Microsoft Integration Services dan SSIS Designer menyertakan fitur dan alat yang dapat Anda gunakan untuk memecahkan masalah aliran data dalam paket Layanan Integrasi.

  • SSIS Designer menyediakan penampil data.

  • SSIS Designer dan transformasi Integration Services menyediakan hitungan baris.

  • SSIS Designer menyediakan pelaporan kemajuan pada waktu proses.

Penampil Data

Penampil data menampilkan data di antara dua komponen dalam aliran data. Penampil data dapat menampilkan data saat data diekstrak dari sumber data dan terlebih dahulu memasukkan aliran data, sebelum dan sesudah transformasi memperbarui data, dan sebelum data dimuat ke tujuannya.

Untuk melihat data, Anda melampirkan penampil data ke jalur yang menyambungkan dua komponen aliran data. Kemampuan untuk melihat data antar komponen aliran data memudahkan untuk mengidentifikasi nilai data yang tidak terduga, melihat cara transformasi mengubah nilai kolom, dan menemukan alasan transformasi gagal. Misalnya, Anda mungkin menemukan bahwa pencarian dalam tabel referensi gagal, dan untuk memperbaikinya, Anda mungkin ingin menambahkan transformasi yang menyediakan data default untuk kolom kosong.

Penampil data dapat menampilkan data dalam tabel. Dengan menggunakan kisi, Anda memilih kolom yang akan ditampilkan. Nilai untuk kolom yang dipilih ditampilkan dalam format tabular.

Anda juga dapat menyertakan beberapa penampil data di jalur. Anda dapat menampilkan data yang sama dalam format yang berbeda-misalnya, membuat tampilan bagan dan tampilan kisi data-atau membuat penampil data yang berbeda untuk kolom data yang berbeda.

Saat Anda menambahkan penampil data ke jalur, SSIS Designer menambahkan ikon penampil data ke permukaan desain tab Aliran Data, di samping jalur. Transformasi yang dapat memiliki lebih dari satu output, seperti transformasi Conditional Split, dapat menyertakan penampil data di setiap jalur.

Pada waktu proses, jendela Penampil Data membuka dan menampilkan informasi yang ditentukan oleh format penampil data. Misalnya, penampil data yang menggunakan format kisi memperlihatkan data untuk kolom yang dipilih, jumlah baris output yang diteruskan ke komponen aliran data, dan jumlah baris yang ditampilkan. Informasi ditampilkan per buffer dan, bergantung pada lebar baris dalam aliran data, sebuah buffer dapat berisi lebih banyak atau lebih sedikit baris.

Dalam kotak dialog Penampil Data, Anda bisa menyalin data ke Clipboard, menghapus semua data dari tabel, mengonfigurasi ulang penampil data, melanjutkan aliran data, dan melepaskan atau melampirkan penampil data.

Untuk menambahkan penampil data

Jumlah Baris

Jumlah baris yang telah melewati jalur ditampilkan pada permukaan desain tab Data Flow di SSIS Designer, di sebelah jalur. Angka diperbarui secara berkala saat data bergerak melalui jalur.

Anda juga dapat menambahkan transformasi Jumlah Baris ke aliran data untuk mengambil jumlah baris akhir dalam variabel. Untuk informasi selengkapnya, lihat Transformasi Jumlah Baris.

Pelaporan Kemajuan

Saat Anda menjalankan paket, SSIS Designer menampilkan progres pada permukaan desain tab Data Flow dengan menampilkan setiap komponen aliran data dalam warna yang menunjukkan statusnya. Ketika setiap komponen mulai melakukan pekerjaannya, komponen berubah dari tidak ada warna menjadi kuning, dan ketika berhasil diselesaikan, komponen tersebut berubah menjadi hijau. Warna merah menunjukkan bahwa komponen gagal.

Tabel berikut ini menjelaskan pengodean warna.

Warna Deskripsi
Tidak ada warna Menunggu untuk dipanggil oleh mesin aliran data.
Kuning Melakukan transformasi, mengekstrak data, atau memuat data.
Hijau Berhasil dijalankan.
merah Dijalankan dengan kesalahan.

Analisis Aliran Data

Anda dapat menggunakan tampilan database SSISDB catalog.execution_data_statisticsuntuk menganalisis aliran data paket. Tampilan ini menampilkan baris setiap kali komponen aliran data mengirim data ke komponen hilir. Informasi dapat digunakan untuk mendapatkan pemahaman yang lebih mendalam tentang baris yang dikirim ke setiap komponen.

Catatan

Tingkat pengelogan harus diatur ke Verbose untuk mengambil informasi dengan tampilan catalog.execution_data_statistics.

Contoh berikut menampilkan jumlah baris yang dikirim di antara komponen paket.

use SSISDB  
select package_name, task_name, source_component_name, destination_component_name, rows_sent  
from catalog.execution_data_statistics  
where execution_id = 132  
order by source_component_name, destination_component_name   

Contoh berikut menghitung jumlah baris per milidetik yang dikirim oleh setiap komponen untuk eksekusi tertentu. Nilai yang dihitung adalah:

  • total_rows - jumlah semua baris yang dikirim oleh komponen

  • wall_clock_time_ms - total waktu eksekusi yang berlalu, dalam milidetik, untuk setiap komponen

  • num_rows_per_millisecond - jumlah baris per milidetik yang dikirim oleh setiap komponen

Klausa HAVING digunakan untuk mencegah kesalahan bagi-demi-nol dalam perhitungan.

use SSISDB  
select source_component_name, destination_component_name,  
    sum(rows_sent) as total_rows,  
    DATEDIFF(ms,min(created_time),max(created_time)) as wall_clock_time_ms,  
    ((0.0+sum(rows_sent)) / (datediff(ms,min(created_time),max(created_time)))) as [num_rows_per_millisecond]  
from [catalog].[execution_data_statistics]  
where execution_id = 132  
group by source_component_name, destination_component_name  
having (datediff(ms,min(created_time),max(created_time))) > 0  
order by source_component_name desc  

Mengonfigurasi Output Kesalahan dalam Komponen Aliran Data

Banyak komponen aliran data mendukung output kesalahan, dan tergantung pada komponennya, SSIS Designer menyediakan berbagai cara untuk mengonfigurasi output kesalahan. Selain mengonfigurasi output kesalahan, Anda juga dapat mengonfigurasi kolom output kesalahan. Ini termasuk mengonfigurasi kolom ErrorCode dan ErrorColumn yang ditambahkan oleh komponen.

Mengonfigurasi Keluaran Kesalahan

Untuk mengonfigurasi output kesalahan, Anda memiliki dua opsi:

  • Gunakan kotak dialog Konfigurasi Output Kesalahan. Anda dapat menggunakan kotak dialog ini untuk mengonfigurasi output kesalahan pada komponen aliran data apa pun yang mendukung output kesalahan.

  • Gunakan kotak dialog editor untuk komponen. Beberapa komponen memungkinkan Anda mengonfigurasi output kesalahan langsung dari kotak dialog editor mereka. Namun, Anda tidak dapat mengonfigurasi output error melalui kotak dialog editor untuk sumber ADO NET, transformasi Import Column, transformasi OLE DB Command, atau tujuan SQL Server Compact.

Prosedur berikut menjelaskan cara menggunakan kotak dialog ini untuk mengonfigurasi output kesalahan.

Untuk mengonfigurasi output kesalahan menggunakan kotak dialog Konfigurasi Output Kesalahan

  1. Di SQL Server Data Tools (SSDT), buka proyek Integration Services yang berisi paket yang Anda inginkan.

  2. Di Penjelajah Solusi, klik dua kali paket untuk membukanya.

  3. Di SSIS Designer, klik tab Data Flow.

  4. Seret output kesalahan, yang diwakili oleh panah merah, dari komponen yang merupakan sumber kesalahan ke komponen lain dalam aliran data.

  5. Dalam kotak dialog Konfigurasi Output Kesalahan, pilih tindakan pada kolom Kesalahan dan Pemotongan untuk setiap kolom dalam input komponen.

  6. Untuk menyimpan paket yang diperbarui, pada menu File , klik Simpan Item Terpilih.

Untuk menambahkan output kesalahan menggunakan kotak dialog editor untuk komponen

  1. Di SQL Server Data Tools (SSDT), buka proyek Integration Services yang berisi paket yang Anda inginkan.

  2. Di Penjelajah Solusi, klik dua kali paket untuk membukanya.

  3. Di SSIS Designer, klik tab Data Flow.

  4. Klik dua kali komponen aliran data tempat Anda ingin mengonfigurasi output kesalahan dan, tergantung pada komponennya, lakukan salah satu langkah berikut:

    • Klik Konfigurasikan Output Kesalahan.

    • Klik Output Error.

  5. Atur opsi Kesalahan untuk setiap kolom.

  6. Atur opsi Pemotongan untuk setiap kolom.

  7. Klik OK.

  8. Untuk menyimpan paket yang diperbarui, pada menu File , klik Simpan Item Terpilih.

Mengonfigurasi Kolom Keluaran Kesalahan

Untuk mengonfigurasi kolom output kesalahan, Anda harus menggunakan tab Properti Input dan Output dari kotak dialog Editor Lanjutan.

Untuk mengonfigurasi kolom output kesalahan

  1. Di SQL Server Data Tools (SSDT), buka proyek Integration Services yang berisi paket yang Anda inginkan.

  2. Di Penjelajah Solusi, klik dua kali paket untuk membukanya.

  3. Di SSIS Designer, klik tab Data Flow.

  4. Klik kanan komponen yang kolom output kesalahannya ingin Anda konfigurasi dan klik Tampilkan Editor Lanjutan.

  5. Klik tab Properti Input dan Output dan perluas <nama komponen> Output Kesalahan, lalu perluas Kolom Output.

  6. Klik kolom dan perbarui propertinya.

    Catatan

    Daftar kolom mencakup kolom dalam input komponen, kolom ErrorCode dan ErrorColumn yang ditambahkan oleh output kesalahan sebelumnya, dan kolom ErrorCode dan ErrorColumn yang ditambahkan oleh komponen ini.

  7. Klik OK.

  8. Untuk menyimpan paket yang diperbarui, pada menu File , klik Simpan Item Terpilih.

Menambahkan Penampil Data ke Aliran Data

Topik ini menjelaskan cara menambahkan dan mengonfigurasi penampil data dalam aliran data. Penampil data menampilkan data yang bergerak di antara dua komponen aliran data. Misalnya, penampil data dapat menampilkan data yang diekstrak dari sumber data sebelum transformasi dalam aliran data memodifikasi data.

Jalur menghubungkan komponen dalam aliran data dengan menyambungkan output dari satu komponen aliran data ke input komponen lain.

Sebelum Anda dapat menambahkan penampil data ke paket, paket harus menyertakan tugas Aliran Data dan setidaknya dua komponen aliran data yang tersambung.

Tambahkan penampil data ke output kesalahan untuk melihat deskripsi kesalahan dan nama kolom tempat kesalahan terjadi. Secara bawaan, keluaran kesalahan hanya mencakup pengidentifikasi numerik untuk kesalahan dan kolom.

Untuk menambahkan penampil data ke aliran data

  1. Di SQL Server Data Tools (SSDT), buka proyek Integration Services yang berisi paket yang Anda inginkan.

  2. Di Penjelajah Solusi, klik dua kali paket untuk membukanya.

  3. Klik tab Control Flow jika tab tersebut belum aktif.

  4. Klik tugas Data Flow yang aliran datanya ingin Anda lampiri dengan penampil data, lalu klik tab Data Flow.

  5. Klik kanan jalur antara dua komponen aliran data, dan klik Edit.

  6. Pada halaman Umum , Anda bisa menampilkan dan mengedit properti jalur. Misalnya, dari daftar dropdown PathAnnotation Anda dapat memilih anotasi yang muncul di samping path.

  7. Pada halaman Metadata , Anda dapat melihat metadata kolom dan menyalin metadata ke Clipboard.

  8. Pada halaman Penampil Data, klik Aktifkan penampil data.

  9. Di area Kolom yang akan ditampilkan, pilih kolom yang ingin Anda tampilkan di penampil data. Secara default, semua kolom yang tersedia dipilih dan tercantum dalam daftar Kolom yang Ditampilkan. Pindahkan kolom yang tidak ingin Anda gunakan ke daftar Kolom Yang Tidak Digunakan dengan memilihnya lalu mengklik panah kiri.

    Catatan

    Dalam kisi, nilai yang mewakili jenis data DT_DATE, DT_DBTIME2, DT_FILETIME, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, dan DT_DBTIMESTAMPOFFSET muncul sebagai string berformat ISO 8601 dan pemisah spasi menggantikan pemisah T . Nilai yang mewakili jenis data DT_DATE dan DT_FILETIME memiliki tujuh digit untuk bagian pecahan detik. Karena jenis data DT_FILETIME hanya menyimpan tiga digit pecahan detik, grid menampilkan nol untuk empat digit sisanya. Nilai yang mewakili jenis data DT_DBTIMESTAMP menyertakan tiga digit untuk pecahan detik. Untuk nilai yang mewakili jenis data DT_DBTIME2, DT_DBTIMESTAMP2, dan DT_DBTIMESTAMPOFFSET, jumlah digit untuk detik pecahan sesuai dengan skala yang ditentukan untuk jenis data kolom. Untuk informasi selengkapnya tentang format ISO 8601, lihat Format Tanggal dan Waktu. Untuk informasi selengkapnya tentang tipe data, lihat Tipe Data Integration Services.

  10. Klik OK.

Ketukan Aliran Data

Anda dapat menambahkan ketukan data pada jalur aliran data paket saat runtime dan mengarahkan output dari ketukan data ke file eksternal. Untuk menggunakan fitur ini, Anda harus menyebarkan proyek SSIS menggunakan model penyebaran proyek ke SSIS Server. Setelah menyebarkan paket ke server, Anda perlu menjalankan skrip T-SQL terhadap database SSISDB untuk menambahkan ketukan data sebelum menjalankan paket. Berikut adalah skenario sampel:

  1. Buat instans eksekusi paket dengan menggunakan prosedur tersimpan catalog.create_execution (Database SSISDB).

  2. Tambahkan data tap dengan menggunakan stored procedure catalog.add_data_tap atau catalog.add_data_tap_by_guid.

  3. Mulai instans eksekusi paket dengan menggunakan catalog.start_execution (Database SSISDB).

Berikut adalah contoh skrip SQL yang melakukan langkah-langkah yang dijelaskan dalam skenario di atas:

Declare @execid bigint  
EXEC [SSISDB].[catalog].[create_execution] @folder_name=N'ETL Folder', @project_name=N'ETL Project', @package_name=N'Package.dtsx', @execution_id=@execid OUTPUT  
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt'  
EXEC [SSISDB].[catalog].[start_execution] @execid  

Parameter nama folder, nama proyek, dan nama paket dari prosedur tersimpan create_execution berkorespondensi dengan nama folder, proyek, dan paket dalam katalog Integration Services. Anda bisa mendapatkan nama folder, proyek, dan paket untuk digunakan dalam panggilan create_execution dari SQL Server Management Studio seperti yang ditunjukkan pada gambar berikut. Jika Anda tidak melihat proyek SSIS Anda di sini, Anda mungkin belum menyebarkan proyek ke server SSIS. Klik kanan pada proyek SSIS di Visual Studio dan klik Sebarkan untuk menyebarkan proyek ke server SSIS yang diharapkan.

Alih-alih mengetik pernyataan SQL, Anda dapat menghasilkan skrip paket eksekusi dengan melakukan langkah-langkah berikut:

  1. Klik kanan Package.dtsx dan klik Jalankan.

  2. Klik tombol toolbar Skrip untuk menghasilkan skrip.

  3. Sekarang, tambahkan pernyataan add_data_tap sebelum panggilan start_execution.

Parameter task_package_path pada prosedur tersimpan add_data_tap berkorespondensi dengan properti PackagePath dari tugas aliran data di Visual Studio. Di Visual Studio, klik kanan Data Flow Task, lalu klik Properties untuk membuka jendela Properti. Perhatikan nilai properti PackagePath untuk menggunakannya sebagai nilai parameter task_package_path untuk pemanggilan prosedur tersimpan add_data_tap.

Parameter dataflow_path_id_string dari prosedur tersimpan add_data_tap berkorespondensi dengan properti IdentificationString dari jalur aliran data yang ingin Anda tambahi data tap. Untuk mendapatkan dataflow_path_id_string, klik jalur alur data (panah di antara tugas dalam alur data), lalu perhatikan nilai properti IdentificationString di jendela Properti.

Saat Anda menjalankan skrip, file output disimpan di <Program Files>\Microsoft SQL Server\110\DTS\DataDumps. Jika file dengan nama sudah ada, file baru dengan akhiran (misalnya: output[1].txt) dibuat.

Seperti yang disebutkan sebelumnya, Anda juga dapat menggunakan prosedur tersimpan catalog.add_data_tap_by_guid sebagai pengganti prosedur tersimpan add_data_tap. Prosedur tersimpan ini mengambil ID tugas aliran data sebagai parameter alih-alih task_package_path. Anda bisa mendapatkan ID tugas aliran data dari jendela properti di Visual Studio.

Menghapus ketukan data

Anda dapat menghapus data tap sebelum memulai eksekusi dengan menggunakan prosedur tersimpan catalog.remove_data_tap. Prosedur tersimpan ini menerima ID data tap sebagai parameter, yang dapat Anda peroleh dari output prosedur tersimpan add_data_tap.

DECLARE @tap_id bigint  
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt' @data_tap_id=@tap_id OUTPUT  
EXEC [SSISDB].[catalog].remove_data_tap @tap_id  

Mencantumkan semua ketukan data

Anda juga dapat menampilkan semua tap data menggunakan view catalog.execution_data_taps. Contoh berikut mengekstrak tap data dari instans eksekusi spesifikasi (ID: 54).

select * from [SSISDB].[catalog].execution_data_taps where execution_id=@execid  

Pertimbangan performa

Mengaktifkan tingkat pengelogan verbose dan menambahkan ketukan data meningkatkan operasi I/O yang dilakukan oleh solusi integrasi data Anda. Oleh karena itu, kami menyarankan agar Anda menambahkan tap data hanya untuk keperluan pemecahan masalah

Video

Video di TechNet ini menunjukkan cara menambahkan/menggunakan ketukan data di katalog SQL Server 2012 SSISDB yang membantu men-debug paket secara terprogram dan menangkap hasil parsial pada runtime. Ini juga membahas cara mendaftar/menghapus data tap ini dan praktik terbaik untuk menggunakan data tap dalam paket SSIS.