{"id":243,"date":"2014-12-31T17:21:13","date_gmt":"2014-12-31T16:21:13","guid":{"rendered":"http:\/\/www.csopro.de\/biblog\/?p=243"},"modified":"2014-12-31T17:22:47","modified_gmt":"2014-12-31T16:22:47","slug":"error-handling-im-data-flow-eines-ssis-pakets","status":"publish","type":"post","link":"https:\/\/www.csopro.de\/biblog\/2014\/12\/error-handling-im-data-flow-eines-ssis-pakets\/","title":{"rendered":"Error Handling im Data Flow eines SSIS-Pakets"},"content":{"rendered":"<p>In den meisten Komponenten innerhalb eines Data Flows in einem SSIS-Paket k\u00f6nnen als Error Handling folgende Einstellungen getroffen werden:<\/p>\n<table cellspacing=\"0\" cellpadding=\"2\" width=\"500\" border=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"166\">Englisch<\/td>\n<td valign=\"top\" width=\"166\">Deutsch<\/td>\n<td valign=\"top\" width=\"166\">Bemerkung<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"166\">Fail Component<\/td>\n<td valign=\"top\" width=\"166\">Fehler bei Komponente<\/td>\n<td valign=\"top\" width=\"166\">Dies ist die Standard-Einstellung. Sie f\u00fchrt dazu, dass bei einem \u2013 wie auch immer gearteten Fehler \u2013 der gesamte Data Flow fehlschl\u00e4gt. Noch nicht verarbeitete Daten werden nicht weiter verarbeitet.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"166\">Ignore Failure<\/td>\n<td valign=\"top\" width=\"166\">Fehler ignorieren<\/td>\n<td valign=\"top\" width=\"166\">Diese Einstellung w\u00fcrde bedeuten, dass trotz des Fehlers normal weitergearbeitet wird. Dies ist in der Regel nicht sinnvoll.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"166\">Redirect Row<\/td>\n<td valign=\"top\" width=\"166\">Zeile umleiten<\/td>\n<td valign=\"top\" width=\"166\">Die fehlerhafte Zeile wird umgeleitet und der aufgetretene Fehler kann durch einen speziellen Ablauf behandelt werden. <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In der Regel ist es sinnvoll, w\u00e4hrend der Entwicklung \u201cFail Component\u201d einzusetzen. W\u00e4hrend der Entwicklung und der Tests m\u00f6chte man ja schlie\u00dflich wissen, ob und wenn ja, welche Fehler auftreten, damit man sie programmatisch beheben kann.<\/p>\n<p>Auch f\u00fcr den produktiven Einsatz kann diese Einstellung sinnvoll sein, da sie daf\u00fcr sorgt, dass keine fehlerhaften Daten ins DWH \u00fcbernommen werden.<\/p>\n<p>Auf der anderen Seite ist die Einstellung problematisch, da dann ein fehlerhafter Satz die ETL-Strecke zum Erliegen bringt. In einem meiner Projekte laden wir alle 10 Minuten aus einem Quellsystem, das sehr gro\u00dfz\u00fcgig mit Eingaben vorgeht.&nbsp; F\u00fcr dieses Projekt haben wir eine <strong>Quarant\u00e4ne<\/strong> definiert:<\/p>\n<p>Alle Komponenten sollen auf \u201cRedirect Row\u201d gestellt werden und diese fehlerhaften S\u00e4tze werden in eine Quarant\u00e4ne-Tabelle geschrieben (unter Angabe des Prim\u00e4rschl\u00fcssels und des aufgetretenen Fehlers). <\/p>\n<p>Danach m\u00fcssen noch \u201chalbe\u201d Datens\u00e4tze entfernt werden \u2013 es kann ja sein, dass in einem Vater-Satz ein Fehler auftritt und dieser in die Quarant\u00e4ne l\u00e4uft, aber alle Kinder-S\u00e4tze (der 1:n-Beziehung) richtig durchlaufen w\u00fcrden. Diese sollen dann aber nat\u00fcrlich nicht im DWH landen.<\/p>\n<p>Die Umstellung der Komponenten auf \u201cRedirect Row\u201d wollten wir dabei nicht manuell durchf\u00fchren, da wir Data Flows mit ca. 150 Komponenten haben. Deshalb haben wir ein (VB).NET-Programm erstellt, das via SSIS API diese Komponenten umstellt. Dieses Programm werde ich in den n\u00e4chsten Blog-Eintr\u00e4gen vorstellen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In den meisten Komponenten innerhalb eines Data Flows in einem SSIS-Paket k\u00f6nnen als Error Handling folgende Einstellungen getroffen werden: Englisch Deutsch Bemerkung Fail Component Fehler bei Komponente Dies ist die Standard-Einstellung. Sie f\u00fchrt dazu, dass bei einem \u2013 wie auch immer gearteten Fehler \u2013 der gesamte Data Flow fehlschl\u00e4gt. Noch nicht verarbeitete Daten werden nicht &hellip; <a href=\"https:\/\/www.csopro.de\/biblog\/2014\/12\/error-handling-im-data-flow-eines-ssis-pakets\/\" class=\"more-link\"><span class=\"screen-reader-text\">Error Handling im Data Flow eines SSIS-Pakets<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[18,19],"class_list":["post-243","post","type-post","status-publish","format-standard","hentry","category-integrationservices","tag-error-handling","tag-quarantaene"],"_links":{"self":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/comments?post=243"}],"version-history":[{"count":1,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/243\/revisions"}],"predecessor-version":[{"id":244,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/243\/revisions\/244"}],"wp:attachment":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/media?parent=243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/categories?post=243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/tags?post=243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}