Penanganan Kesalahan dalam Data
Berlaku untuk: SQL Server SSIS Integration Runtime di Azure Data Factory
Saat komponen aliran data menerapkan transformasi ke data kolom, mengekstrak data dari sumber, atau memuat data ke tujuan, kesalahan dapat terjadi. Kesalahan sering terjadi karena nilai data yang tidak terduga. Misalnya, konversi data gagal karena kolom berisi string alih-alih angka, penyisipan ke dalam kolom database gagal karena data adalah tanggal dan kolom memiliki tipe data numerik, atau ekspresi gagal dievaluasi karena nilai kolom adalah nol, yang mengakibatkan operasi matematika yang tidak valid.
Kesalahan biasanya termasuk dalam salah satu kategori berikut:
Kesalahan konversi data, yang terjadi jika konversi menghasilkan hilangnya digit signifikan, hilangnya digit yang tidak signifikan, dan pemotongan string. Kesalahan konversi data juga terjadi jika konversi yang diminta tidak didukung.
Kesalahan evaluasi ekspresi, yang terjadi jika ekspresi yang dievaluasi pada waktu proses melakukan operasi yang tidak valid atau menjadi salah secara sintetis karena nilai data yang hilang atau salah.
Kesalahan pencarian, yang terjadi jika operasi pencarian gagal menemukan kecocokan dalam tabel pencarian.
Untuk daftar kesalahan Layanan Integrasi, peringatan, dan pesan lainnya, lihat Kesalahan Layanan Integrasi dan Referensi Pesan.
Gunakan output kesalahan untuk menangkap kesalahan tingkat baris
Banyak komponen aliran data mendukung output kesalahan, yang memungkinkan Anda mengontrol bagaimana komponen menangani kesalahan tingkat baris dalam data masuk dan keluar. Anda menentukan bagaimana komponen berperilaku saat pemotongan atau kesalahan terjadi dengan mengatur opsi pada kolom individual dalam input atau output. Misalnya, Anda dapat menentukan bahwa komponen harus gagal jika data nama pelanggan terpotong, tetapi mengabaikan kesalahan pada kolom lain yang berisi data yang kurang penting.
Output kesalahan dapat dihubungkan ke input transformasi lain atau dimuat ke tujuan yang berbeda dari output non-kesalahan. Misalnya, output kesalahan dapat menjadi tersambung ke transformasi Kolom Turunan yang menyediakan string untuk kolom yang kosong.
Diagram berikut menunjukkan aliran data sederhana termasuk output kesalahan.
Untuk informasi selengkapnya, lihat Alur Data dan Jalur Layanan Integrasi.
Kotak dialog Konfigurasikan Output Kesalahan
Gunakan kotak dialog Konfigurasi Output Kesalahan untuk mengonfigurasi opsi penanganan kesalahan untuk transformasi aliran data yang mendukung output kesalahan.
Untuk mempelajari selengkapnya tentang bekerja dengan output kesalahan, lihat Penanganan Kesalahan di Data.
Opsi
Input atau Output
Lihat nama output.
Kolom
Tampilkan kolom output yang Anda pilih dalam kotak dialog editor transformasi.
Kesalahan
Jika berlaku, tentukan apa yang harus terjadi ketika kesalahan terjadi: abaikan kegagalan, alihkan baris, atau gagalkan komponen.
Topik Terkait: Penanganan Kesalahan dalam Data
Pemotongan
Jika berlaku, tentukan apa yang harus terjadi ketika pemotongan terjadi: abaikan kegagalan, alihkan baris, atau gagalkan komponen.
Topik Terkait: Penanganan Kesalahan dalam Data
Keterangan
Lihat deskripsi operasi.
Atur nilai ini ke sel terpilih
Tentukan apa yang harus terjadi pada semua sel yang dipilih saat terjadi kesalahan atau pemotongan: abaikan kegagalan, alihkan baris, atau gagalkan komponen.
Terapkan
Terapkan opsi penanganan kesalahan ke sel terpilih.
Kesalahan adalah kegagalan atau pemotongan
Kesalahan termasuk dalam salah satu dari dua kategori: kesalahan atau pemotongan.
Kesalahan. Kesalahan menunjukkan kegagalan tegas, dan menghasilkan hasil NULL. Kesalahan tersebut dapat mencakup kesalahan konversi data atau kesalahan evaluasi ekspresi. Misalnya, upaya untuk mengonversi string yang berisi karakter alfabet menjadi angka menyebabkan kesalahan. Konversi data, evaluasi ekspresi, dan penetapan hasil ekspresi ke variabel, properti, dan kolom data mungkin gagal karena cast ilegal dan jenis data yang tidak kompatibel. Untuk informasi selengkapnya lihat, Cast (Ekspresi SSIS), Jenis Data Integration Services dalam Ekspresi, dan Jenis Data Integration Services.
Pemotongan. Pemotongan kurang serius daripada kesalahan. Pemotongan menghasilkan hasil yang mungkin dapat digunakan atau bahkan diinginkan. Anda dapat memilih untuk memperlakukan pemotongan sebagai kesalahan atau sebagai kondisi yang dapat diterima. Misalnya, jika Anda menyisipkan string 15 karakter ke dalam kolom yang hanya lebar satu karakter, Anda dapat memilih untuk memotong string.
Pilih opsi penanganan kesalahan
Anda dapat mengonfigurasi bagaimana sumber, transformasi, dan tujuan menangani kesalahan dan pemotongan. Tabel berikut ini menjelaskan opsi.
Opsi | Deskripsi |
---|---|
Komponen Gagal | Tugas Aliran Data gagal ketika terjadi kesalahan atau pemotongan. Kegagalan adalah opsi default untuk kesalahan dan pemotongan. |
Abaikan Kegagalan | Kesalahan atau pemotongan diabaikan dan baris data diarahkan ke output transformasi atau sumber. |
Mengalihkan Baris | Kesalahan atau baris data pemotongan diarahkan ke output kesalahan sumber, transformasi, atau tujuan. |
Dapatkan informasi selengkapnya tentang kesalahan
Selain kolom data, output kesalahan menyertakan kolom ErrorCode dan ErrorColumn . Kolom ErrorCode mengidentifikasi kesalahan dan ErrorColumn berisi pengidentifikasi silsilah kolom kesalahan.
Dalam beberapa keadaan, nilai kolom ErrorColumn diatur ke nol. Ini terjadi ketika kondisi kesalahan memengaruhi seluruh baris alih-alih satu kolom. Contohnya adalah ketika pencarian gagal dalam transformasi Pencarian.
Kedua nilai numerik ini mungkin penggunaan terbatas tanpa deskripsi kesalahan dan nama kolom yang sesuai. Berikut adalah beberapa cara untuk mendapatkan deskripsi kesalahan dan nama kolom.
Anda dapat melihat deskripsi kesalahan dan nama kolom dengan melampirkan Penampil Data ke output kesalahan. Di SSIS Designer, klik kanan panah merah yang mengarah ke output kesalahan dan pilih Aktifkan Penampil Data.
Anda dapat menemukan nama kolom dengan mengaktifkan pengelogan dan memilih peristiwa DiagnosticEx . Kejadian ini menulis peta kolom aliran data ke log. Anda kemudian dapat mencari nama kolom dari pengidentifikasinya di peta kolom ini. Perhatikan bahwa peristiwa DiagnosticEx tidak mempertahankan spasi kosong dalam output XML-nya untuk mengurangi ukuran log. Untuk meningkatkan keterbacaan, salin log ke editor XML - di Visual Studio, misalnya - yang mendukung pemformatan XML dan penyorotan sintaks. Untuk informasi selengkapnya tentang pengelogan, lihat Pengelogan Integration Services (SSIS).
Berikut adalah contoh peta kolom aliran data.
\<DTS:PipelineColumnMap xmlns:DTS="www.microsoft.com/SqlServer/Dts"> \<DTS:Pipeline DTS:Path="\Package\Data Flow Task"> \<DTS:Column DTS:ID="11" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Customer]"/> \<DTS:Column DTS:ID="12" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Product]"/> \<DTS:Column DTS:ID="13" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Price]"/> \<DTS:Column DTS:ID="14" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Timestamp]"/> \<DTS:Column DTS:ID="20" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Customer]"/> \<DTS:Column DTS:ID="21" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Product]"/> \<DTS:Column DTS:ID="22" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Price]"/> \<DTS:Column DTS:ID="23" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Timestamp]"/> \<DTS:Column DTS:ID="24" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[ErrorCode]"/> \<DTS:Column DTS:ID="25" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[ErrorColumn]"/> \<DTS:Column DTS:ID="31" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Customer]"/> \<DTS:Column DTS:ID="32" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Product]"/> \<DTS:Column DTS:ID="33" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Price]"/> \<DTS:Column DTS:ID="34" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Timestamp]"/> \</DTS:Pipeline> \</DTS:PipelineColumnMap>
Anda juga dapat menggunakan komponen Skrip untuk menyertakan deskripsi kesalahan dan nama kolom di kolom tambahan output kesalahan. Misalnya, lihat Meningkatkan Output Kesalahan dengan Komponen Skrip.
Sertakan deskripsi kesalahan dalam kolom tambahan dengan menggunakan satu baris skrip untuk memanggil GetErrorDescription metode IDTSComponentMetaData100 antarmuka.
Sertakan nama kolom dalam kolom tambahan dengan menggunakan satu baris skrip untuk memanggil [Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100.GetIdentificationStringByID*] (/previous-versions/sql/sql-server-2016/mt657629(v=sql.130)) metode IDTSComponentMetaData100 antarmuka.
Anda dapat menambahkan komponen Skrip ke segmen kesalahan aliran data di mana saja di hilir dari komponen aliran data yang kesalahannya ingin Anda ambil. Biasanya Anda menempatkan komponen Skrip segera sebelum baris kesalahan ditulis ke tujuan. Dengan cara ini, skrip mencari deskripsi hanya untuk baris kesalahan yang ditulis. Segmen kesalahan aliran data dapat memperbaiki beberapa kesalahan dan tidak menulis baris tersebut ke tujuan kesalahan.
Lihat Juga
Aliran Data
Mengubah Data dengan Transformasi
Menyambungkan Komponen dengan Jalur
Tugas Aliran Data
Aliran Data