Attunity Replicate

Die SQL Server Integration Services sind für mich mit die beste Wahl wenn es um ETL und Datenintegration geht. Die Vielzahl von Tasks und Komponenten sowie die unterstützen Quellen und Ziele, speziell auch durch die Angebote der verschiedenen Dritthersteller, lässt nicht viele Wünsche offen. Und wer schon einen der ToolTime Vorträge von Oliver (Twitter) und mir hören konnte, der weiß das man mit den Integration Services auch viel mehr machen kann, als einfach nur “Daten schubsen”.

Wer mit den SSIS jedoch eine einfache Replikationen zwischen verschiedenen Datenbanken wie z.B. einer Oracle Datenbank und einem SQL Server aufsetzen möchte, der muss hier leider auch häufig mit einem gewissen “Overhead” hantieren. Wie in meinem vorherigen Beitrag über Oracle und CDC (Teil 1 | Teil 2) gezeigt, steckt hier für 3 Tabellen schon ein bisschen Arbeit dahinter. Für eine ganze Datenbank mit mehreren 100 Tabellen ist dies ohne eine Automatisierungsprozess beim Erstellen der Pakete eigentlich nicht zu bewerkstelligen. Eine der klassischen SSIS Herausforderungen, wie mit DDL Operationen im Quellsystem umgegangen wird, ist aber auch damit nicht gelöst.

Eine gute Lösung hierzu bietet Attunity mit seinem neuen Produkt Attunity Replicate an. Replicate ermöglich die vollständige Replizierung von Datenbanken und/oder ausgewählten Tabellen von einem (fast) beliebigen Quellsystem in ein (fast) beliebiges Zielsystem. Dabei werden derzeit die folgenden Plattformen unterstützt:

  • Oracle 10g und 11g
  • SQL Server 2005, 2008, 2008R2 und 2012
  • DB2 on LUW (als Quelle)
  • DB2 for IBM iSeries (als Quelle)
  • DB2 for IBM z/OS (als Quelle)
  • ODBC (als Ziel)

Änderungen am Quellsystem, wie z.B. das Hinzufügen oder Löschen von Spalten oder sogar ganzen Tabellen, wird von Replicate erkannt und an das zeil-System weitergegegebn. Sehr Vorteilhaft dabei ist, das beim Replizieren von gesamten Schemata, neue Tabelle automatisch mit in den Replikationsprozess aufgenommen werden.

Im Ziel-System können sowohl 1:1 Kopien, also der aktuelle Ist-Status des Quell-System gespeichert werden, als auch die kompletten Transaktionen mit allen Insert, Updates und Deletes, so dass weitere ETL Prozesse darauf aufsetzen können.

An dieser Stelle kommt dann nämlich auch ein kleiner Nachteil gegenüber klassischen ETL Tools zum vorschein. Zwar ist es mit Replicate möglich kleinere Transformationen wie z.B. Berechnungen oder Stringkonkatenationen vorzunehmen, komplexere Funktionen mit einem Funktionsumfang wie ihn die Integration Services bieten, deckt Replicate bei weitem nicht ab.

Das User Interface von Replicate basiert in der derzeitigen Version auf Flash und JavaScript, was auf einem Server zuerst zu kleineren Problemen führt.

Die folgenden Screenshots zeigen, wie in 3 einfachen Schritten der CDC Prozess aus den beiden vorherigen Beiträgen mit Replicate nachgebaut wurde.

1. Aufrufen der Replicate UI und erstellen eines neuen Tasks “Demo”.

image

 

2. Definition der Quelle “Oracle Source” und des Ziel Servers “SQL Server Target”.

 

image

Die eigentliche Definition der Quellen und Ziele findet über den Button Manage Databases statt und entspricht ungefähr dem Vorgehen bei der Definition von Connections innerhalb der Integration Services.

3. Definition der Tabellen Customer, Orders und Order_Items für die Replikation

image

 

Wird der Task nach der Konfiguration ausgeführt, so erscheint ein Monitoring-Bereich, in dem ganz genau protokolliert wird welche Daten, Änderungen und Aktivitäten durchgeführt werden oder worden sind.

image

image

 

Weitere Informationen zu Attunity Replicate sind natürlich bei Attunity zu finden, hier gibt es auch umfangreiche Informationen zu dem Thema Attunity Replicate for ETL.