Säästä useampi tunti työaikaa SQL Server Integration Services Metadatalla

Aika monta kertaa on tullut törmättyä ongelmaan jossa SSIS-paketin ajo kaatuu SQL-virheeseen.

Oletuksena SSIS kaatuessaan kertoo vain sarakkeen sisäisen numeron. Virhe voi olla esim. null-arvo not null-sarakkeessa, tai kirjain numeroiden joukossa. Virheviesti on hyvin geneerinen. Joskus ongelma ratkeaa hyvin nopeasti pelkkää dataa katsomalla. Joskus ongelman selvittämiseen on mennyt useampikin tunti aikaa.  SQL Server Trace:n katselu ei yleensä auta asiaa.

Tähän on ollut olemassa erilaisia ratkaisuita kuten:

http://dougbert.com/blog/post/Adding-the-error-column-name-to-an-error-output.aspx

Skriptillä ongelman ratkaisu on aika monimutkaista, tuota logiikkaa ei tule jokaiseen pakettiin lisättyä vaan siltä varalta että virhe sattuisi joskus tulemaan. Osa virheenkäsittelylogiikasta toki itsellänikin on SSIS:n omassa tamplate-paketissani, sarakkeen nimi sieltä puuttuu.

Pragmatic Worksin Task Factoryn ilmaisversio sisältää tämän ominaisuuden:

http://dougbert.com/blog/post/Adding-the-error-column-name-to-an-error-output.aspx

Task Factory pitäisi kuitenkin saada asennettua asiakkaan ympäristöön, aina tämä ei ole mahdollista.

Onneksi maailmalta löytyy ilmainen ja yksinkertainen keino saada koko metadata käyttöön:

http://dfld.codeplex.com/releases/view/104798

dfld on manuaalinen työkalu. Luo ensin SQL:llä taulu johon metadata kirjoitetaan, aja tämän jälkeen .exe, anna ohjeiden mukaan parametriksi palvelin, kanta sekä SSIS-paketin osoite. Todella yksinkertaista. Tämän jälkeen voit käyttää SSIS:n metadataa vaikka raportilla – tai virhelokiin tavaraa kirjoittaessasi. Itse säästin juuri pari tuntia asiakkaan arvokasta aikaa kun virheellisen datan omaava sarake löytyi hetkessä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Yhteydenotto

Mikäli olet kiinnostunut yrityskohtaisista palveluista tai sinulla kysyttävää palvelujemme sisällöstä, niin ota yhteyttä oheisella lomakkeella tai soita Mikalle numeroon 040 845 8432.

Please leave this field empty.