Penanganan Kesalahan dalam Data

Berlaku untuk: Integration Runtime SSIS SQL Server 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 kolom database gagal karena data adalah tanggal dan kolom memiliki jenis data numerik, atau ekspresi gagal dievaluasi karena nilai kolom adalah nol, menghasilkan operasi matematika yang tidak valid.

Kesalahan biasanya termasuk dalam salah satu kategori berikut:

  • Kesalahan konversi data, yang terjadi jika konversi menghasilkan hilangnya digit yang signifikan, hilangnya digit yang tidak signifikan, dan pemotokan string. Kesalahan konversi data juga terjadi jika konversi yang diminta tidak didukung.

  • Kesalahan evaluasi ekspresi, yang terjadi jika ekspresi yang dievaluasi pada durasi melakukan operasi yang tidak valid atau menjadi salah secara sintaks 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 cara komponen menangani kesalahan tingkat baris dalam data masuk dan keluar. Anda menentukan bagaimana komponen berperilaku ketika 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 terpotok, 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 disambungkan ke transformasi Kolom Turunan yang menyediakan string untuk kolom yang kosong.

Diagram berikut menunjukkan aliran data sederhana termasuk output kesalahan.

Aliran data dengan 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 dalam 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 terjadi kesalahan: abaikan kegagalan, alihkan baris, atau gagalkan komponen.

Topik Terkait:Penanganan Kesalahan dalam Data

Pemotongan
Jika berlaku, tentukan apa yang harus terjadi ketika pemotokan terjadi: abaikan kegagalan, alihkan baris, atau gagalkan komponen.

Topik Terkait:Penanganan Kesalahan dalam Data

Deskripsi
Lihat deskripsi operasi.

Atur nilai ini ke sel terpilih
Tentukan apa yang harus terjadi pada semua sel yang dipilih ketika terjadi kesalahan atau pemotokan: abaikan kegagalan, alihkan baris, atau gagalkan komponen.

Terapkan
Terapkan opsi penanganan kesalahan ke sel terpilih.

Kesalahan adalah kegagalan atau pemotokan

Kesalahan termasuk dalam salah satu dari dua kategori: kesalahan atau pemotongan.

Kesalahan. Kesalahan menunjukkan kegagalan yang 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 transmisi ilegal dan jenis data yang tidak kompatibel. Untuk informasi selengkapnya lihat, Cast (Ekspresi SSIS), Jenis Data Layanan Integrasi dalam Ekspresi, dan Jenis Data Layanan Integrasi.

Pemotokan. Pemotokan kurang serius daripada kesalahan. Pemotokan menghasilkan hasil yang mungkin dapat digunakan atau bahkan diinginkan. Anda dapat memilih untuk memperlakukan pemotokan 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 pemotokan. Tabel berikut ini menjelaskan opsinya.

Opsi Deskripsi
Komponen Gagal Tugas Aliran Data gagal ketika terjadi kesalahan atau pemotokan. Kegagalan adalah opsi default untuk kesalahan dan pemotokan.
Abaikan Kegagalan Kesalahan atau pemotokan diabaikan dan baris data diarahkan ke output transformasi atau sumber.
Alihkan Baris Kesalahan atau baris data pemotokan 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
Sambungkan Komponen dengan Jalur
Tugas Aliran Data
Aliran Data