Search

onze sponsors

microsoft_logo.gif


 

computrain_logo.JPG

Forum Login | Register
   Forum

 

Subject: Errornous rows en andere data loggen van een ETL package
Prev Next
You are not authorized to post a reply.

Author Messages
Rob BosUser is Offline

Posts:3

03-12-2007 15:01:25 Alert 
Hallo,

ik ben op zoek naar de mogelijkheden om errornous rows en andere data te loggen van DataFlow tasks.
In MSSQL 2000 DTS was het standaard al mogelijk om met logging naar tekst files waardevolle informatie te achterhalen over het draaien van je packages. Denk hierbij aan start- en eindtijd package, aantal foutieve rijen.

Middels wat vbscripts was het ook mogelijk om het resultaat en het aantal rijen geïmporteerd te achterhalen.

Mijn vraag is dan ook in hoeverre dit mogelijk is in SSIS 2005 ?

Het liefts wil ik deze informatie in 1 á 2 tables gaan zetten, maar ik kom er niet echt uit. Standaard logging naar tekst files gaat alleen via de errornous rows, maar dan wordt er verder niets gelogd behalve de foutieve rijen (en indien die er niet zijn heb je niets aan je logfiles).

Ik heb ook al naar Events zitten te kijken maar ik krijg niet het gevoel daar veel mee te kunnen.

Hoe regelen jullie dit soort zaken ?

Groet Rob Bos
Antoon VansinaUser is Offline

Posts:17

03-12-2007 17:20:49 Alert 
Voor het error-log gedeelte: kijk eens op http://antoon.blog.com//SSIS+-+Error+logging/
Voor de logging info: deze kun je in het menu SSIS/Logging volledig instellen om weg te schrijven naar een tabel. Ik combineer dit met SQL opdracht aan het begin en einde die start en einde van de package logged in een tabel (Laad_nr, ExecutionId (link naar de logging), Packagenaam, Parameters, start-tijd, einde-tijd, aantal rijen weggeschreven en succes-indicatie).
Ik heb dus drie tabbellen:
1. Logging van start en einde van package execution met link naar
2. Errorlog: logging van fouten in de behandeling van rijen (cfr blog)
3. Sysdtslog: logging van de fouten/events bij het uitvoeren van de package
Arjan FraaijUser is Offline

Posts:110

04-12-2007 08:12:21 Alert 
Het Microsoft ProjectReal beschrijft in een van hun white papers ook één en andere over logging, in de SSIS packages die je van de projectreal site kan downloaden zijn de voorbeelden verwerkt.

Kijk maar eens naar het onderwerp :Project REAL: Business Intelligence ETL Design Practices (http://www.microsoft.com/technet/prodtechnol/sql/2005/realetldp.mspx)

Dit white paper bevat onde hoofdstuk 12 de volgende onderwerpen met betrekking tot audit & monitoring:
ETL auditing and logging
Execution tracking and Integration Services logging
Package execution start and completion
Package OnError event handlers
Lineage additions to the warehouse
Tracking ETL commands
Pipeline performance statistics capture
ETL audit reporting

Groeten,
Arjan
Rob BosUser is Offline

Posts:3

05-12-2007 11:35:39 Alert 
Posted By Antoon Vansina on 03-12-2007 17:20:49
Voor het error-log gedeelte: kijk eens op http://antoon.blog.com//SSIS+-+Error+logging/
Voor de logging info: deze kun je in het menu SSIS/Logging volledig instellen om weg te schrijven naar een tabel. Ik combineer dit met SQL opdracht aan het begin en einde die start en einde van de package logged in een tabel (Laad_nr, ExecutionId (link naar de logging), Packagenaam, Parameters, start-tijd, einde-tijd, aantal rijen weggeschreven en succes-indicatie).
Ik heb dus drie tabbellen:
1. Logging van start en einde van package execution met link naar
2. Errorlog: logging van fouten in de behandeling van rijen (cfr blog)
3. Sysdtslog: logging van de fouten/events bij het uitvoeren van de package


Je component ziet er goed uit Antoon. Ik zal kijken of ik hem eens kan testen.
Voor 1 ga ik deze methode testen/ gebruiken: http://blogs.sqlservercentral.com/blogs/michael_coles/archive/2007/10/09/3012.aspx
en 3 heb ik inmiddels ook aangezet.
Peter RijsUser is Offline

Posts:20

11-12-2007 22:49:01 Alert 
Aanvullend op de post van Antoon: als je de fouten/events van het package naar de sysdtslog tabel laat wegschrijven, kun je die tabel ook gebruiken om te bepalen hoe lang elk package heeft gedraaid (PackageStart en PackageEnd events, als ik me niet vergis), en ook kun je daaruit halen of zich fouten hebben voorgedaan, en hoeveel rijen er door elke component zijn gegaan. E.e.a. uiteraard afhankelijk van de logging instellingen in je package en je componenten.
Bij een klant waar we een uitgebreide nightrun hadden met enkele tientallen packages, had ik enkele queries gecombineerd tot een report, dat elke ochtend per mail werd verstuurd na de nightrun. Als je 's morgens aanlogde, zag je dan direct in je mail of eea al dan niet naar wens was verlopen (en daarnaast kon je zien of de opeenvolgende stappen elkaar niet in de weg dreigden te gaan zitten qua doorlooptijd.
Rob KoolUser is Offline

Posts:11

21-12-2007 11:30:42 Alert 
Een van de extra voordelen van loggen naar de tabel waar wij veelvuldig gebruik van maken bij foutieve data is dat we zelf custom messages in de SYSDTSLOG90 table schrijven. Dit doen we vanuit de ErrorOutput van de verschillende Transformations

Ook het opschonen van de log gaat natuurlijk veel eenvoudiger met een SQL statement.
Rob BosUser is Offline

Posts:3

21-12-2007 11:34:00 Alert 
joegei,

dat klinkt ook goed. Is er een simpele manier om dit te doen (zonder aparte extensies te installeren ? )
Rob KoolUser is Offline

Posts:11

21-12-2007 18:02:45 Alert 
Rob, we gebruiken hiervoor de normale componenten. "Derived column" task voor het zetten van message text en dergelijken en een SQL Server destination om de data te schrijven.
You are not authorized to post a reply.
Forums > Forums > Business Intelligence > Errornous rows en andere data loggen van een ETL package



ActiveForums 3.6
  
Copyright (c) 2012 PASS Nederland   Privacy Statement  Terms Of Use