Attunity Oracle-CDC for SSIS

Mit immer größerem Anspruch der Endbenutzer Informationen in Echtzeit zu erhalten, ist die IT immer stärker mit Fragen wie

  • Wie wirken sich zeitnahe Informationen auf das Geschäft aus?
  • Wie soll ich mit wachsendem Datenvolumen bei kleineren Zeitfenstern umgehen?
  • Kann ich die Aktualisierungszeiten verringern um Zeit und Kosten zu sparen?
  • Wie sind die Risiken und Auswirkungen auf das Geschäft wenn die Aktualisierungen fehlschlagen?

Change Data Capture (CDC) beantwortet diese Fragen, in dem nur Daten erfasst und verarbeitet werden, die in der Datenquelle verändert wurden. Die Firma Attunity bietet für diese Szenarien Programme und Erweiterungen für die SQL Server Integration Services, sowohl für den Microsoft SQL Server wie auch für Oracle.

clip_image001

Eine aktuelle Testversion des „Oracle-CDC for SSIS“ kann auf der Attunity Seite unter http://www.attunity.com/oracle_cdc_for_ssis heruntergeladen werden. Eine Komponente für den SQL Server 2000 und 2005 erscheint demnächst.

Installation

„Oracle-CDC for SSIS“ steht sowohl für x86 wie auch für x64 Systeme zur Verfügung und unterstützt die SQL Server Integration Services 2005 und 2008. Mit ca. 60 MB ist das Installationspaket für eine “klassische” SSIS Komponente nicht gerade sehr klein, aber wie man nach der Installation feststellt besteht „Oracle-CDC for SSIS“ nicht nur aus reinen SSIS Tasks.

Die Installation erfordert außer dem Installationspfad keinerlei Angaben. Das Setup-Programm installiert die Attunity Management Console, basierend auf der MMC, erweitert das Visual Studio innerhalb des Kontextmenüs im Projektmappenexplorer und installiert 4 Control Flow Tasks und 2 Data Flow Tasks. Weiterhin liefert Attunity einen eigenen Oracle Client mit.

clip_image003

clip_image005clip_image007

 

CDC Service konfigurieren

Um Änderungen an den Quelltabellen zu loggen, wird als erstes der Attunity CDC Service konfiguriert. Hierfür ruft man im SSIS Designer aus dem oben abgebildeten Bild den Konfigurationswizard über den Menüpunkt “Configure CDC Service” auf.

clip_image009clip_image011

clip_image013clip_image015clip_image017

Als erstes wird die Verbindung zur Oracle Datenbank aufgebaut. Über den Button “Test Environment” sollten die getroffenen Einstellungen überprüft werden; hier treten häufig  Warnung beim “Supplemental Logging” auf. Über den Button “Details” enthält man eine genauere Fehlerbeschreibung und, im Falle des „Supplemental Logging“, entsprechende SQL Scripts um die Fehler direkt zu beheben.

clip_image019

In den weiteren Einstellungen werden unter anderem der Port für den lokalen CDC Service und die zu überwachenden Tabellen festgelegt. Im vorletzen Schritt enthält man ein PL/SQL Script um Änderungen zum Logging auf der Datenbank auszuführen. Dieses Script kann gespeichert, in die Zwischenablage kopiert oder direkt ausgeführt werden. Wichtig ist hier, dass das Script vor dem späteren Start des CDC Services ausgeführt wird.

Zum Abschluss wird der CDC Service mit den getroffenen Einstellungen ausgerollt.

SSIS Pakete erstellen

Das erstellen eines SSIS Paketes um den CDC Services zu nutzen, erledigt ebenso ein Wizard der über das Kontextmenü  aufgerufen werden kann.

Im Wizard wird die Verbindung zum SQL Server angegeben und das Mapping zwischen der Source und der Ziel-Tabelle angegeben. Besteht auf dem Zielserver eine der gewählten Tabellen nicht, wird diese automatisch erstellt.

clip_image021
Zum Abschluss erstellt der Wizard 2 SSIS Pakete, ein Paket zum vollständigen Laden der Daten und ein Pakete um nur Änderungen über den CDC Service zu laden.

clip_image023      clip_image025

Pakete und CDC Testen

Vor dem ersten Start eines der SSIS Pakete ist es sinnvoll die Attunity Management Console aufzurufen um zu überprüfen ob der Service einwandfrei läuft.

image

Ist der Service optimal konfiguriert, muss als erstes das “Default_FullLoad”-Paket ausgeführt werden. Hierbei werden alle Daten aus der Quelldatenbank übernommen und dem Service wird der entsprechende Initialimport mitgeteilt. Bei einem Initialimport wird vor dem Laden der Daten die Zieltabelle über das “Default_FullLoad”-Paket per Truncate vollständig gelöscht.

Werden nach der Ausführung des Paketes Änderungen an der überwachten Tabelle vorgenommen, werden diese vom CDC Service gelogged. Über die Management Console können die Veränderungen an den Tabellen verfolgt werden.

image

Die Management Console zeigt alle Transaktionen und Änderungen und visualisiert diese grafisch. Weiterhin kann über die Cosnole der CDC Service nachträglich konfiguriert werden und der aktuelle Status der SSIS Verarbeitung eingesehen werden.

image

Wird nun das 2. Paket “Default_CDC” ausgeführt, so werden nur die veränderten Datensätze aus der Quelltabelle übernommen.

Auch wenn die hier gezeigten Beispiele nur einen ersten Einblick in Attunitys „Oracle-CDC for SSIS“ Lösung liefern, kann man sehen, das Attunity eine sehr umfangreiche Lösung liefert, die so manchen Entwicklungsaufwand vereinfacht und Ladezeiten erheblich verkürzen kann.

Weitere Informationen zu Attunity und der CDC Lösung für die SSIS liefern wir im Übrigen in der nächsten Woche auf der SQLCON 2009 am Stand der datenfabrik GmbH & Co. KG.