Etikettarkiv: SQL Server Integration Services

Räkna ut ålder från personnummersträng med en SSIS-expression

Att veta en kunds ålder när en transaktion inträffar är ett återkommande krav i många BI-projekt. Detta kan åstadkommas genom att extrahera födelsedatum från personnummret och sedan subtrahera transaktionsdatumet med detta datum när man kör sin ETL i SSIS.

Detta görs lämpligen i SSIS med hjälp av data flow-komponenten Derived Column. Förutsatt att du har lagt in en OLE DB Datasource eller annan datakälla så gör du bara följande:
1. Lägg in en Derived Column task i ditt data flow.
2. Koppla dataflödet från din datakälla till din Derived Column task.
3. Lägg in följande expression i Expressionfältet:

(DT_I4)(ISNULL(Personnummer) ? NULL(DT_I4) : FLOOR(DATEDIFF(”dd”,(DT_DBTIMESTAMP)(SUBSTRING(Personnummer,1,4) + ”-” + SUBSTRING(Personnummer,5,2) + ”-” + SUBSTRING(Personnummer,7,2)),Samtalsdatum) / 365.25))
4. Se till att en ny kolumn skapas genom att ”Derived Column” är satt till ”Add as new column”.
5. Döp fältet till ”Alder” eller liknande.

Notera att ovanstående förutsätter ett fyrsiffrigt år i personummret. Om du bara har två siffor att lira med så är det bara att ändra första substring-uttrycket till
”19″ + SUBSTRING(Personnummer,1,4)

Du har nu skapat en ny kolumn innehållande ett heltal för ålder för varje rad i ditt dataflöde.


Egna anpassningar för Integration Services, Del 1

Detta är första delen av en serie inlägg som ska handla om hur vi kan skriva egna anpassningar till Microsoft SQL Server 2008 R2 Integration Services (SSIS). Integration Services är en mycket kompetent produkt i sig och innehåller att antal fördefinierade komponenter i verktygslådan såsom datakällor och destinatinationer eller programflödeskomponenter för att loopa igenom filer i en mapp och så vidare. Mest grundläggande är så klart de komponenter som är till för att manipulera data och det är också dessa komponenter vi är bäst bekant med då vi bygger ETL-processer för våra Datalager.

Jag vill i denna serie av inlägg visa att det med ganska enkla medel går att anpassa och bygga ut funktionaliteten i SSIS genom att utveckla egna komponenter. I första steget ska vi dra upp grunden för hur vi kan skapa en egenutvecklad Control Flow task. Läs mer


Följ

Få meddelanden om nya inlägg via e-post.