15/08-2006 | Poul C. Junge

SQL Server Integration Services (SSIS) – Førstegangs indtryk

I forbindelse med releasen af SQL Server 2005 kom der også en ny udgave af Microsofts ETL/Workflow/m.m.-værktøj. Afløseren for det gamle DTS værktøj kaldes SQL Server Integration Services (SSIS)

Selvom produktet efterhånden har noget tid på bagen har jeg først nu ifm. med en mindre opgave haft mulighed for at stifte et lidt nærmere bekendtskab med SSIS.
Det første indtryk er at der tydeligvis er tale om meget kraftig overhaling i forhold til DTS. Udviklingsmiljøet er nu en integreret del af Visual Studio og har en noget højere ”lækkerheds”-følelse end det gamle DTS interface.

Følgende er en liste over nogle af de ændringer jeg har noteret mig:

  • Control-flow og data-flow er nu fuldstændig adskilt i interfacet. Det gør det noget nemmere at overskue komplekse pakker.
  • SSIS ineholder en del nye transformationer i forhold til DTS. Eksempelvis Fuzzy Lookups der benytter en avanceret metode til at finde records der ligner hinanden. Dette kan bla. bruges til udrensning af fejldata.
  • Der er også tilføjet flere nye control-flow funktioner så som For-loop og Foreach-loop.
  • Masser af muligheder for operationer på filsystemet
  • Variable kan i langt højere grad bruges til dynamisk at styre flowet i en pakke. Desuden har de nu fået scope så der ikke kun opereres med globale variable
  • Ændringer et sted propageres til resten af flowet. (For det meste). Hvis SSIS ikke er helt sikker på hvordan den skal håndtere ændringen bliver man spurgt. Dette fungerer ok i praksis.
  • Dataviewers hvor man kan inspicere data på et givet tidspunkt i et flow er en god ting. De er dog en anelse klodsede at arbejde.
  • Scripting bruger Visual Studios interface med Intellisense, Color Coding m.m. Der kan kun programmeres i Visual Basic, hvilket er lidt en begrænsning efter min mening.

Jeg faldt også over nogle fejl som gav anledning til lidt frustrationer. Et par eksempler:

  • På en ny script-task findes der nogle predefinerede Input og Output sets som properties. Det predefinerede output set er dog ikke synligt i scripteditoren. Når man bruger et værktøj første kan det godt tage lidt tid at opdage sådan en fejl. Løsningen var blot at tilføje et nyt Output set
  • En script-task skal åbnes for at ændringer i input-columns bliver registreret. Det er ikke nok at builde hele pakken.
  • En Excel Connection Manager Ignorerer indkommende værdier hvis de ikke passer med den type som der bliver gættet på en given Excel kolonne har. Dvs hvis man har en kolonne hvor der ikke er nogen værdi i de første 100 rækker vil en eventuel decimal i række 475 blive ignoreret. Og man kan ikke ændre den datatype kolonnen får. Om det er Excel eller SSIS der har et problem vides ikke. Under alle omstændigheder så har Bill en finger med i spillet :-)

På trods af de mindre skønhedsfejl må man alt i alt sige at mit første indtryk af SSIS helt klart er positivt. Der er sket rigtig mange forbedringer i forhold til DTS. Mange ting er blevet meget nemmere og der er kommet mange nye ting til. Så konklusionen er at
SSIS er et rigtig godt værktøj til mange små og store opgaver der har med flytning og transformering af data at gøre.

Af: Poul C. Junge
Kategorier: Teknologi

Der er lukket for kommentarer.