39
© CGI Group Inc. SQL Server 2012 Integration Services Überblick und Best Practices Robert Panther, Senior Consultant 15.03.2013

Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

© CGI Group Inc.

SQL Server 2012 Integration Services Überblick und Best Practices

Robert Panther, Senior Consultant

15.03.2013

Page 2: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Vorstellung

2

Name Robert Panther

Rolle Senior Consultant, Logica now a part of CGI

Fachliche

Schwerpunkte

• Datenbanken: Design, Implementierung & Administration

(insbesondere Performance Optimierung und ETL mit SSIS)

• Mobile Anwendungen: Design & Implementierung

• Webanwendungen: Implementierung & Administration

Technologien • Microsoft SQL Server

• Windows Mobile

• .NET (VB .NET & C#), ASP, ASP.NET

Methoden Datenbankdesign, Objektorientierte Programmierung, Strukturierte

Programmierung, Schulungskonzeption & Durchführung, Projektleitung

Zertifikate Informatik Diplom (FH)

MCTS SQL Server 2005 Implementation & Maintenance

MCTS SQL Server 2005 Business Intelligence

MCTS SQL Server 2008 Implementation & Maintenance

MCITP SQL Server 2008 Developer

Spezielles Autor von mehreren Fachbüchern und Fachartikeln

Leitung der SQL Server Expert Group bei Logica / CGI

regelmäßiger Speaker auf Fachkonferenzen

aktives PASS-Mitglied

Page 3: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Agenda

Überblick SSIS

Neuerungen in SSIS 2012

Best Practices

Allgemeine Konventionen

Struktur von SSIS-Projekten

Namenskonventionen

Lösungen für bekannte Probleme

Fazit

Was fehlt noch?

Links & Literatur

3

Page 4: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS

Page 5: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS

Was ist SSIS?

• SSIS = SQL Server Integration Services

• SSIS ist ein ETL-Tool

• E – Extract : Extrahieren von Daten

• T – Transform : Transformieren von Daten

• L – Load: Laden von Daten

• SSIS ist Bestandteil des SQL Servers (bzw. dessen BI-Tools)

• SSIS : SQL Server Integration Services

• SSAS : SQL Server Analysis Services

• SSRS : SQL Server Reporting Services

5

Page 6: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS

Typische Verwendungszwecke von SSIS:

• Befüllen von Data Warehouses

• Datenmigrationen

• regelmäßige Datenabgleiche

• Export-Batches

• etc.

Historie von SSIS:

• SQL Server 2000 : DTS (Vorgänger von SSIS)

• SQL 2005/2008/2008 (R2) : SSIS (jeweils leicht verbessert)

• SQL 2012 : SSIS stark überarbeitet

6

Page 7: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS

Entwicklung von SSIS-Paketen:

• Bis SQL 2008 R2 mit dem Business Intelligence Development Studio

• Seit SQL 2012 mit den SQL Server Data Tools

Ausführung von SSIS-Paketen:

• in Entwicklungsumgebung (zum Testen und Debuggen)

• explizit über das SQL Server Management Studio

• geplant über den SQL Server Agent

• über das Execute Package Utility (DTEXEC/DTEXECUI)

• SSIS läuft als eigener Prozess

7

Page 8: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS – Projekte und Pakete

Projektmappen:

• können mehrere Projekte beinhalten

• die Projekte können unterschiedliche Typen haben

SSIS-Projekte:

• können mehrere SSIS-Pakete enthalten

SSIS-Pakete:

• sind vergleichbar mit einzelnen Programmen

• ein SSIS-Paket wird komplett in einer DTSX-Datei gespeichert

(XML-Format)

• werden in der Quelltextverwaltung komplett ausgecheckt

8

Page 9: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS – Ablaufsteuerung

• die Grundstruktur eines SSIS-Pakets wird über die

Ablaufsteuerung (engl. Control Flow) festgelegt

• mit einem Programmablaufplan vergleichbar

• setzt sich aus Ablaufsteuerungselementen zusammen

• Verarbeitungstasks

• Strukturelemente (Schleifen- und Sequenzcontainer)

• Sonderfall: Wartungsplantasks

• Bestimmte Tasks können separat definierte Module aufrufen:

• Datenflusstask

• ‚Paket ausführen‘-Task

• ‚Prozess ausführen‘-Task

• ‚SQL ausführen‘-Task

• In der Ablaufsteuerung findet auch das Transaktionshandling statt

9

Page 10: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS – Ablaufsteuerung

Ein einfacher Ablauf:

10

Page 11: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS – Ablaufsteuerung

Ausführungsreihenfolge:

• nicht verbundene Tasks werden parallel ausgeführt

• mit Pfeilen verbundene Tasks werden in der Reihenfolge der

Pfeilrichtung ausgeführt

• mehrere Ausgangspfeile bedeuten parallele Ausführung

• mehrere Eingangspfeile bedeuten alle vorangegangenen Schritte

müssen fertig sein (kann auch anders eingestellt werden)

• Verbindungspfeile lassen sich mit Einschränkungen

(Erfolg/Fehler/Beendigung) und/oder Ausdrücken „verfeinern“

• Tasks können mit Sequenzcontainern gruppiert werden

• Tasks können mit For- bzw. Foreach-Schleifencontainern mehrfach

durchlaufen werden

11

Page 12: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS – Datenfluss

• der wichtigste Task in der Ablaufsteuerung ist der Datenflusstask

• ein Datenfluss stellt den eigentlichen ETL-Prozess dar

• Datenflüsse werden in einer separaten Ansicht entworfen und

bestehen normalerweise aus drei Komponenten:

• Datenflussquelle (Extract)

• Datenflusstransformation (Transform)

• Datenflussziel (Load)

• Datenflüsse werden im Prinzip in Pfeilrichtung ausgeführt

• weder satzweise noch komplett pro Schritt, sondern in Blöcken

• Ziel dabei ist eine größtmögliche Parallelität

12

Page 13: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS – Datenfluss

Ein einfacher Datenfluss:

13

Page 14: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS – Datenfluss

Datenquellen und –ziele:

• Es gibt vielfältige Datenquellen & -ziele:

• Flatfiles

• Excel-Tabellen

• XML-Dateien

• ADO .NET (SQL Server, Oracle, ODBC etc.)

• OLE DB (SQL Server, Oracle, Jet Engine/MS Access etc.)

• Wird eine Datenbank als Quelle genutzt, kann wahlweise eine

Tabelle/Sicht oder auch eine SQL-Abfrage angegeben werden

14

Page 15: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Überblick SSIS – Datenfluss

Transformationen:

• Transformationen verändern die eingehenden Daten

• Transformationen können auch die Anzahl der Zeilen- und Spalten

verändern

• einige Transformationstypen haben mehrere Eingänge

• UNION ALL (UNION von beliebig vielen – auch unsortierten - Eingängen)

• Zusammenführen (UNION von zwei sortierten Eingängen)

• Zusammenführungsverknüpfung (JOIN von zwei sortierten Eingängen)

• einige Transformationstypen haben mehrere Ausgänge

• für korrekte und fehlerhafte Zeilen

• Multicast (mehrere identische Ausgänge)

• für komplexe Transformationen können Skriptkomponenten genutzt

werden, deren Code pro Zeile des Datenflusses durchlaufen wird

15

Page 16: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Neuerungen in SSIS 2012

Page 17: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Neuerungen in SSIS 2012

Allgemein

• nutzt VS 2010 IDE (u.A. Zoom und frei verschiebbare Fenster)

• APIs für Erweiterungen

• Scope von Variablen nachträglich anpassen

• besser lesbares XML

• endlich ein Undo im Designer!

• copy & paste verbessert

• Autosave & Recovery

• kein DTS-Support mehr

17

Page 18: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Neuerungen in SSIS 2012

SSIS-Server

• verwaltet komplette Projekte,

nicht nur einzelne Pakete

• besitzt eigene Katalog-DB (SSISDB)

• Pakete über SSIS-Dienst remote ausführbar

• Integration Services-Dashboard

• Verwaltung und Ausführung über SPs

• eigene Performance-Counter

18

Page 19: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Neuerungen in SSIS 2012

SSIS-Projekte

• Connection Manager auf Projektebene

(keine Shared DataSource mehr)

• Konfiguration mit Hilfe von Projektparametern

• Deployment in Form von .ispac-Dateien

Ablaufsteuerung

• Execute Package wahlweise aus Projektreferenz

(ohne expliziten Connection Manager)

• Expression Task (Ausdruckstask)

(z.B. zum Vorbelegen von Variablen)

19

Page 20: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Neuerungen in SSIS 2012

Datenfluss

• Source/Destination Assistent

• Work Offline

• mapping changes reparieren (z.B. geänderte Spaltennamen)

• Pivot über Spaltenbezeichnungen (nicht mehr LineageIDs)

• gruppieren im DF (mit collapse & expand)

• Merge & Merge Join

(gedrosselt wenn ein Input langsam, spart Ressourcen)

• vereinfachter Datenviewer (keine graphische Darstellung)

• spezielle Data Quality-Transformationen (DQS-Bereinigung)

20

Page 21: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Best Practices

Page 22: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

SSIS Best Practices – Allgemeine Konventionen

Allgemeine Konventionen

• Pakete sollten stets wiederholt startbar sein

• zu Beginn “aufräumen”

• evtl. Transaktionen nutzen

• Fehlerausgaben nutzen

• Im einfachsten Fall in Multicast Container

• Im Idealfall mit Fehlerprotokollierung

• Protokollierung in zusätzliche Tabellen

• z.B. für komplexe Mappings

• Konfigurierbarkeit über Variablen und Expressions

22

Page 23: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

SSIS Best Practices – Allgemeine Konventionen

Konventionen zur besseren Lesbarkeit

• Ablaufsteuerung und Datenfluss von oben nach unten

• Notwendigkeit zum horizontalen Scrollen vermeiden

• Fehlerbehandlung im Datenfluss zur Seite führen

23

Page 24: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

SSIS Best Practices – Struktur von Projekten

Struktur von SSIS-Projekten

• Ein Paket pro Datenquelle oder Datenziel

• Ein Master-Paket, das Unterpakete aufruft

• Konfiguration der Variablen

• Allgemeine Vor- und Nachbereitung

• Fremdschlüssel de- & re-aktivieren

• Sequenzcontainer zur Strukturierung

24

Page 25: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

SSIS Best Practices – Struktur von Paketen

Struktur von SSIS-Paketen

• Vorbereitungsschritte

• (nicht gruppierte) Indizes deaktivieren

• Zieltabellen leeren

• Datenfluss

• Nachbereitungsschritte

• Indizes neu erstellen

25

Page 26: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

SSIS Best Practices – Namenskonventionen

Namenskonventionen

• Name des Pakets entspricht Quelle oder Ziel (einheitlich!)

• Kurze Präfixe für Tasks und Container verwenden, z.B. …

• SCR für Script Tasks

• SQL für SQL Tasks

• EP für Execute Package

• LKP für Suche (von Lookup)

• ODB für OLE DB Quellen & Ziele

26

Page 27: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Lösungen für bekannte Probleme

Page 28: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Lösungen für bekannte Probleme

Problem:

Bestimmte Datenquellen (z.B. Excel, Access) sind nicht nutzbar.

Lösung:

• Projekt auf

32Bit

Runtime

umstellen.

28

Page 29: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Lösungen für bekannte Probleme

Problem:

Ziel im Datenfluss lässt bei einer fehlerhaften Zeile ganzen Block von

Zeilen in die Fehlerausgabe laufen.

Lösung:

1. OLE DB Ziel im Modus “schnelles Laden” mit Fehlerausgabe

versehen.

2. Fehlerhafte Zeilen noch einmal im “langsamen” Modus schreiben.

3. Weitere Fehlerausgabe mit Behandlung für die final fehlerhaften

Zeilen.

29

Page 30: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Lösungen für bekannte Probleme

30

Page 31: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Lösungen für bekannte Probleme

Problem:

Datenfluss schreibt in zwei Zieltabellen, von denen die eine auf die

andere verweist.

Lösungsvarianten:

a) Für Primär- und Fremdschlüssel werden vorher bekannte IDs

verwendet (evtl. vorher maximale ID ermitteln).

b) Für Primär- und Fremdschlüssel werden im Datenfluss definierte

Werte (z.B. in der Quellabfrage erzeugte Guids) verwendet.

31

Page 32: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Lösungen für bekannte Probleme

Problem:

Datenfluss schreibt in zwei Zieltabellen, von denen die eine auf die

andere verweist. Die Tabellen verwenden IDs mit Identitätsspezifikation.

Lösungsvarianten:

a) In erste Tabelle wird per Stored Procedure geschrieben und die ID

der neuen Zeile per Output-Parameter in Datenfluss zurückgegeben.

b) Foreign Key-Spalte wird mit temporären Wert befüllt, der nach dem

Datenfluss per Nachbereitungsskript durch die korrekte ID ersetzt

wird.

32

Page 33: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Fazit

Page 34: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Fazit – SSIS allgemein

• Selbst für einfache Datentransfers eignet sich SSIS hervorragend!

• Trotz der einfachen visuellen Darstellung darf man sich nicht darüber

hinweg täuschen lassen, dass mit SSIS sehr komplexe Abläufe

realisierbar sind!

• SSIS ist vielseitig einsetzbar

• Mit SSIS können typische Batch-Läufe implementiert werden!

• SSIS ist nahezu beliebig erweiterbar:

• Datenquellen, Tasks und Komponenten von Drittanbietern

• eigenen .NET-Code

• beliebige .NET-Assemblys

34

Page 35: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Fazit – SSIS allgemein

Warum SSIS und nicht .NET oder SQL?

• optimiert für Massendatenverarbeitung

• Datenquellen und –ziele können auf unterschiedlichen Servern liegen

• Fehlerbehandlung und Debugging

(Umleitung von fehlerhaften Zeilen)

• Ausnutzung der Parallelverarbeitung

• bei Bedarf können .NET und SQL eingebunden werden

35

Page 36: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Fazit – SSIS 2012

Die SQL Server Integration Services sind endlich erwachsen geworden.

Die meisten Unzulänglichkeiten der Vorgängerversionen wurden

beseitigt. An einigen Stellen gibt es aber noch wie vor Raum für

Verbesserungen.

Was fehlt noch?

• Unterstützung bei der Ausrichtung von Objekten im Designer

• Auskommentieren von Schritten im Datenfluss (z.B. Datenziel)

• Strukturierung von SSIS-Paketen in der Solution

(Unterordner, Sortierung etc.)

• komfortablere SQL-Editoren

• Zoom in Fehleransicht

• Datenziel mit OUTPUT (inserted)

36

Page 37: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Links & Literatur

Links zum Thema SSIS:

• SSIS Online-Dokumentation:

http://msdn.microsoft.com/de-de/library/ms141026.aspx

• Ressourcen für SSIS-Entwickler und IT-Spezialisten:

http://msdn.microsoft.com/de-de/sqlserver/cc511477.aspx

Links des Referenten:

• SQL Server Blog: http://pantheronsql.wordpress.com

• Logica / CGI: http://www.logica.de / http://www.cgi.com

Literatur:

• Microsoft SQL Server Integration Services: Erstellen von Datenintegrations- und Datentransformationslösungen auf Unternehmensebene

Bernd Jungbluth, Microsoft Press, 2011 (aktualisierte Auflage für SQL 2012 für Juni 2013 geplant)

37

Page 38: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Ein kleines Anliegen in eigener Sache …

Zur Verstärkung unseres SQL Server Teams am Standort

Frankfurt/Sulzbach suchen wir …

Datenbankarchitekten Microsoft SQL Server (m/w)

Sie werden für die Beratung, Konzeption, Projektleitung, aber auch für die Realisierung von

anspruchsvollen Lösungen verantwortlich sein, deren technologischer Schwerpunkt im

Umfeld Microsoft SQL Server liegt. Sie helfen unseren Klienten, unternehmenskritische

Anwendungen hochverfügbar, sicher und kostengünstig zu gestalten. Dabei setzen Sie

moderne Methoden und Techniken ein und integrieren sie in die Unternehmenslandschaft.

Auf diese Weise tragen Sie dazu bei, dass zukunftsfähige Plattformen entstehen, auf denen

Business und E-Business sicher und stabil betrieben werden können.

Interesse? Dann sprechen Sie mich an, oder schicken Sie mir eine Mail an [email protected]

38

Page 39: Überblick und Best Practices - WordPress.com€¦ · Überblick SSIS Entwicklung von SSIS-Paketen: •Bis SQL 2008 R2 mit dem Business Intelligence Development Studio •Seit SQL

Vielen Dank für Ihre Aufmerksamkeit!

Robert Panther

[email protected]

39