Da die Funktionen von Azure Data Factory V2 in den letzten Monaten allgemein verfügbar geworden sind, insbesondere die Azure-SSIS Integration Runtime, stellt sich in unserer Praxis immer wieder die Frage, welches Datenintegrationstool für ein bestimmtes Team und Projekt am besten geeignet ist.
Sowohl Azure Data Factory V2 (ADF) als auch SQL Server Integration Services (SSIS) sind für den Datenaustausch zwischen verschiedenen Services konzipiert und verfügen über einige überschneidende Funktionen. Sollten Sie mit diesen Tools noch nicht vertraut sein, finden Sie hier einige Fragen, die Ihnen helfen sollen, die Unterschiede zu verstehen, um eine bessere Auswahl zu treffen.
Verwendet Ihr Unternehmen heute Azure, bzw. ist Azure eine Option für Ihr Projekt?
SSIS ist ein Tool, das es seit vielen Jahren gibt. Es begann als On-Premise-Service, kann aber auch in Azure entweder in einer Public-Cloud-Umgebung oder einer Hybrid-Cloud-Umgebung laufen, in der das Netzwerk Ihres Unternehmens auf Azure erweitert wird.
ADF hingegen ist nur ein Cloud-Service, und obwohl es absolut in On-Premise-Services und Daten integriert werden kann, ist es erforderlich, dass ein Cloud-Service in Azure ausgeführt wird. Die erste Frage ist also, ob Azure heute im Einsatz ist oder ob es eingesetzt werden könnte, um bei der Erstellung Ihrer Lösung zu helfen.
Azure-Umgebung (Public Cloud) | Hybride Umgebung | On-Premise | |
Azure Data Factory V2 | Ja | Ja | Nein |
SQL Server Integration Services | Ja | Ja | Ja |
Können sich eine oder beide Services mit den von Ihnen benötigten Datenquellen und Datenzielen verbinden?
Sowohl ADF als auch SSIS können sich mit einer Vielzahl an Datenquellen verbinden und verschiedene Datenziele adressieren, aber damit man eine Entscheidungsgrundlage hat, ist es sinnvoll, die spezifischen Anforderungen an den Endpunkten Ihrer Datenintegration zu überprüfen. Wenn Ihre Umgebung außer herkömmlichen Datenbankmodellen, Dateien und Services, etwas Ungewöhnliches enthalten, lohnt es sich zu überprüfen, ob Sie diese Daten konsumieren und schreiben können.
ADF nutzt das Konzept von source („Quellen“) und sink („Senke“ um in der Metapher von Datenströmen zu bleiben) zum Lesen und Schreiben von Daten. Die Dokumentation von Microsoft () deckt alle möglichen Quellen und Ziele von ADF ab; einen Überblick erhalten Sie unter Copy Activity in Azure Data Factory.
ADF unterstützt eine Vielzahl von Cloud- und On-Premise-Services und Datenbanken. Wenn Sie es in Datenquellen oder ‑ziele integrieren, die sich in Ihrem Unternehmensnetzwerk befinden, benötigen Sie eine selbst gehostete Integration Runtime (Gateway), die die Verbindung zu Ihren internen Ressourcen und die Übertragung der Daten bis zu Azure übernimmt.
SSIS verwendet das Konzept des Verbindungsmanagers, um die Daten aus einer Quelle zu holen und in ein gemeinsames/konsistentes Format zu bringen, um intern in einem Datenfluss zu arbeiten. Es gibt Standard-Verbindungen, die in SSIS integriert sind, aber auch Verbindungs-Manager von Drittanbietern, die Sie kaufen und für eine Vielzahl von Services einsetzen können.
Werden Sie ETL oder ELT nutzen?
Die nächste Überlegung ist etwas komplizierter, wenn Ihnen Datenintegration neu ist. Beide Tools zeichnen sich dadurch aus, dass sie Daten von Ort zu Ort transportieren, aber sie haben wichtige Unterschiede in Bezug darauf, was Sie tun können, um die Daten während der Übertragung zu transformieren. Als Schwerpunkt verfügt ADF über mehr Funktionen, die darauf ausgerichtet sind, die Daten zu verschieben, als komplexe Transformation während des Transports zu ermöglichen. SSIS hingegen wurde mit einer großen Bibliothek von Transformationen erstellt, die Sie miteinander verketten können, um aufwendige Datenflüsse wie Lookups, Matching, Datensplitting und mehr zu realisieren.
Auch die Werkzeuge überschneiden sich stark. In Projekten scheint dies zu der Frage zu führen, ob Sie die Daten während des Transports transformieren (Extract Transform Load (ETL)) oder die Daten stattdessen an ein Ziel verschieben und diese anschließend aufbereiten (Extract Load Transform (ELT)).
Stellen Sie sich vor, Sie laden ein Data Warehouse aus zwei oder drei Datenbanken für Geschäftsanwendungen. Die beiden Vorgehensweisen hier, auf einer hohen Ebene, wären, die Daten aus der Quelle herauszuziehen und sie in das Data Warehouse zu stellen, im Wesentlichen als Kopie, und dann einige gespeicherte Prozeduren aufzurufen, um sie in das eigentliche Warehouse zu transformieren (ELT), oder die Daten aus den Quellen herauszuziehen und die Datenflusstransformation innerhalb des Integrationswerkzeugs selbst zu nutzen (ETL), um die Daten zu transformieren. Es gibt Vor- und Nachteile für jede Vorgehensweise, aber die Entscheidungskriterien beinhalten:
- Hat das Ziel für die Daten die Fähigkeit, wie eine Datenbank, die Daten nach der Ankunft dort zu transformieren? Wenn nicht sagen wir, Sie laden in einen Cloud-Service und nicht in eine Datenbank – dann ist man praktisch gezwungen, die Daten zu transformieren, bevor sie landen.
- Hat das Integrationswerkzeug die Fähigkeit, die Daten zu transformieren? Wenn nicht, dann ist es vielleicht nicht praktikabel, damit zu versuchen, die Daten direkt zu transformieren.
- Schließlich, unter diesen Bedingungen, wo würden Sie es vorziehen, die Transformation durchzuführen?
Anders ausgedrückt, der Ort, an dem Sie die Daten transformieren müssen, ist entscheidend. Überlegen Sie, ob es möglich ist, die Daten innerhalb Ihres Ziels, wie in einer Warehouse-Datenbank, zu transformieren und/oder ob es möglich ist, sie während des Transports zu transformieren. Die folgende Tabelle zeigt die derzeit allgemein verfügbaren Fähigkeiten im September 2018:
ETL | ELT | |
ADF | Eingeschränkt | Hervorragend |
SSIS | Hervorragend | Hervorragend |
Welche Herausforderungen an die Skalierbarkeit stellen sich für Sie?
Der nächste zu berücksichtigende Faktor ist, mit wie vielen Daten Sie es zu tun haben. SSIS kann skaliert werden und kann eine sehr gute Performance bieten, aber da es sich meist um ein On-Premise-Tool handelt, kann es auch erforderlich sein, dass Sie sich mit Servern und Konfigurationen auseinandersetzen, um die Laufzeit zu optimieren. ADF hat die typischen Vorteile von Cloud Services: Es ist etwas, das Sie abonnieren und Sie müssen nicht so viel von der Last der Infrastruktur tragen. Wenn Sie eine Hybride-Architektur haben, denken Sie daran, dass die Verbindung zum Azure Data Center und die Integration Runtime (Gateway), die die Daten zwischen den verschiedenen Umgebungen überträgt, ebenfalls ein Engpass sein können.
Es gibt hier Grauzonen, aber viele Unternehmen finden es sehr hilfreich, nicht mit der zugrunde liegenden Hardware, virtuellen Maschinen und Servern arbeiten zu müssen. Wie wir bereits erwähnt haben, kann SSIS kürzlich auch innerhalb von ADF ausgeführt werden, worauf wir uns in einer Minute konzentrieren werden, aber wenn Sie eine neue Lösung starten, die das Wasser ein wenig trüben kann.
Sollten Sie diese beiden Technologien kombinieren?
ADF enthält nun eine Azure-SSIS Integration Runtime, die es dem Cloud-Service ermöglicht, SSIS-Pakete auszuführen. Die Idee dabei ist, dass man eine hybride Lösung mit beiden Technologien schaffen kann, was eine spannende Möglichkeit ist, aber einige Fragen aufwirft. Hier sind einige Dinge, die man sich überlegen sollte, wenn man diese beiden Technologien kombinieren möchte:
- Haben Sie bereits ein großes SSIS-Deployment, das davon profitieren würde, es ohne Überarbeitung in die Cloud zu verschieben?
- Wie groß ist das Datenvolumen, das Sie verschieben werden? Sind es Tausende von Zeilen, Hunderttausende, Millionen, Milliarden? ADF, wiederum als Schwerpunkt, ist meist ein Big-Data-Tool, und so kann es große Mengen von Zeilen schnell bewegen, aber mit einer gewissen Performance für Overhead-Operationen, Inbetriebnahme, und so weiter. SSIS scheint etwas leichter zu sein, so dass es vielleicht besser geeignet ist, wenn Sie einen geringeren Arbeitsaufwand haben – aber umgekehrt könnte SSIS für große Datenmengen langsamer sein. Eine Analogie, die mir gefällt, ist, ADF als Güterzug im Vergleich zu SSIS als LKW zu betrachten. Beide sind fähig, aber im Falle des Zuges kann es eine Weile dauern, bis man sich aufgestellt hat und sich bewegt. Nach der Fahrt kann der Zug jedoch sehr schnell viel Fracht bewegen.
- Da die beiden nun kombiniert werden können, können Sie z.B. SSIS-Pakete aus dem ADF aufrufen, wenn SSIS besser zu Ihrem Workload passt.
- Wie sieht Ihre größere Orchestrierungsstrategie für die Arbeitsplanung aus? ADF hat einen guten Scheduler mit vielen Optionen, einschließlich der Möglichkeit, Aufgaben mit Abhängigkeiten zu verketten; wird es in die größere Strategie in Ihrer Lösung zum Aufruf automatisierter ETL-Aufgaben passen? SSIS-Lösungen verwenden traditionell den SQL Agent als Scheduling-Engine und so etwas wie ein „Master Package“, um den ETL-Prozess mit den entsprechenden Abhängigkeiten zu orchestrieren. In dieser neuen Welt ist es möglich, beides zu mischen, z.B. mit ADF zur Planung der Arbeit, aber SSIS-Pakete in der Cloud mit der Azure-SSIS Integration Runtime aufzurufen.
- Wenn Sie planen, SSIS in der Cloud einzusetzen, wie werden Sie es hosten? Auf einer virtuellen Maschine ohne ADF oder in der neuen ADF-Umgebung?
- Ist Ihr Team bereit, die beiden Technologien gemeinsam anzugehen? Es ist nicht schwer, aber es gibt eine gewisse Lernkurve, wenn man beides gleichzeitig übernimmt oder von einem zum anderen wechselt.
Ich hoffe, dass dies Ihnen helfen wird, einige der wichtigen Unterschiede zwischen ADF und SSIS für Ihre Datenintegration zu verstehen und eine fundierte Entscheidung zu treffen, damit Sie mit welcher Plattform Sie auch immer arbeiten werden zufrieden sind. Wenn Sie Ihre Daten und KI-Herausforderungen angehen möchten, kontaktieren Sie uns noch heute! Unsere Experten sind bereit, Sie zu unterstützen und zu überprüfen, wie wir Ihnen helfen können, Ihre Geschäftsabläufe zu rationalisieren.