Da die Funk­tio­nen von Azure Data Fac­tory V2 in den letz­ten Mona­ten all­ge­mein ver­füg­bar gewor­den sind, ins­be­son­dere die Azure-SSIS Inte­gra­tion Run­time, stellt sich in unse­rer Pra­xis immer wie­der die Frage, wel­ches Daten­in­te­gra­ti­ons­tool für ein bestimm­tes Team und Pro­jekt am bes­ten geeig­net ist.

Sowohl Azure Data Fac­tory V2 (ADF) als auch SQL Ser­ver Inte­gra­tion Ser­vices (SSIS) sind für den Daten­aus­tausch zwi­schen ver­schie­de­nen Ser­vices kon­zi­piert und ver­fü­gen über einige über­schnei­dende Funk­tio­nen. Soll­ten Sie mit die­sen Tools noch nicht ver­traut sein, fin­den Sie hier einige Fra­gen, die Ihnen hel­fen sol­len, die Unter­schiede zu ver­ste­hen, um eine bes­sere Aus­wahl zu treffen.

Ver­wen­det Ihr Unter­neh­men heute Azure, bzw. ist Azure eine Option für Ihr Projekt?

SSIS ist ein Tool, das es seit vie­len Jah­ren gibt. Es begann als On-Pre­mise-Ser­vice, kann aber auch in Azure ent­we­der in einer Public-Cloud-Umge­bung oder einer Hybrid-Cloud-Umge­bung lau­fen, in der das Netz­werk Ihres Unter­neh­mens auf Azure erwei­tert wird.

ADF hin­ge­gen ist nur ein Cloud-Ser­vice, und obwohl es abso­lut in On-Pre­mise-Ser­vices und Daten inte­griert wer­den kann, ist es erfor­der­lich, dass ein Cloud-Ser­vice in Azure aus­ge­führt wird. Die erste Frage ist also, ob Azure heute im Ein­satz ist oder ob es ein­ge­setzt wer­den könnte, um bei der Erstel­lung Ihrer Lösung zu helfen.

Azure-Umge­bung (Public Cloud)Hybride Umge­bungOn-Pre­mise
Azure Data Fac­tory V2JaJaNein
SQL Ser­ver Inte­gra­tion ServicesJaJaJa

Kön­nen sich eine oder beide Ser­vices mit den von Ihnen benö­tig­ten Daten­quel­len und Daten­zie­len verbinden?

Sowohl ADF als auch SSIS kön­nen sich mit einer Viel­zahl an Daten­quel­len ver­bin­den und ver­schie­dene Daten­ziele adres­sie­ren, aber damit man eine Ent­schei­dungs­grund­lage hat, ist es sinn­voll, die spe­zi­fi­schen Anfor­de­run­gen an den End­punk­ten Ihrer Daten­in­te­gra­tion zu über­prü­fen. Wenn Ihre Umge­bung außer her­kömm­li­chen Daten­bank­mo­del­len, Dateien und Ser­vices, etwas Unge­wöhn­li­ches ent­hal­ten, lohnt es sich zu über­prü­fen, ob Sie diese Daten kon­su­mie­ren und schrei­ben können.

ADF nutzt das Kon­zept von source („Quel­len“) und sink („Senke“ um in der Meta­pher von Daten­strö­men zu blei­ben) zum Lesen und Schrei­ben von Daten. Die Doku­men­ta­tion von Micro­soft () deckt alle mög­li­chen Quel­len und Ziele von ADF ab; einen Über­blick erhal­ten Sie unter Copy Acti­vity in Azure Data Factory.

ADF unter­stützt eine Viel­zahl von Cloud- und On-Pre­mise-Ser­vices und Daten­ban­ken. Wenn Sie es in Daten­quel­len oder ‑ziele inte­grie­ren, die sich in Ihrem Unter­neh­mens­netz­werk befin­den, benö­ti­gen Sie eine selbst gehos­tete Inte­gra­tion Run­time (Gate­way), die die Ver­bin­dung zu Ihren inter­nen Res­sour­cen und die Über­tra­gung der Daten bis zu Azure übernimmt.

SSIS ver­wen­det das Kon­zept des Ver­bin­dungs­ma­na­gers, um die Daten aus einer Quelle zu holen und in ein gemeinsames/konsistentes For­mat zu brin­gen, um intern in einem Daten­fluss zu arbei­ten. Es gibt Stan­dard-Ver­bin­dun­gen, die in SSIS inte­griert sind, aber auch Ver­bin­dungs-Mana­ger von Dritt­an­bie­tern, die Sie kau­fen und für eine Viel­zahl von Ser­vices ein­set­zen können.

Wer­den Sie ETL oder ELT nutzen?

Die nächste Über­le­gung ist etwas kom­pli­zier­ter, wenn Ihnen Daten­in­te­gra­tion neu ist. Beide Tools zeich­nen sich dadurch aus, dass sie Daten von Ort zu Ort trans­por­tie­ren, aber sie haben wich­tige Unter­schiede in Bezug dar­auf, was Sie tun kön­nen, um die Daten wäh­rend der Über­tra­gung zu trans­for­mie­ren. Als Schwer­punkt ver­fügt ADF über mehr Funk­tio­nen, die dar­auf aus­ge­rich­tet sind, die Daten zu ver­schie­ben, als kom­plexe Trans­for­ma­tion wäh­rend des Trans­ports zu ermög­li­chen. SSIS hin­ge­gen wurde mit einer gro­ßen Biblio­thek von Trans­for­ma­tio­nen erstellt, die Sie mit­ein­an­der ver­ket­ten kön­nen, um auf­wen­dige Daten­flüsse wie Loo­kups, Matching, Daten­split­ting und mehr zu realisieren.

Auch die Werk­zeuge über­schnei­den sich stark. In Pro­jek­ten scheint dies zu der Frage zu füh­ren, ob Sie die Daten wäh­rend des Trans­ports trans­for­mie­ren (Extract Trans­form Load (ETL)) oder die Daten statt­des­sen an ein Ziel ver­schie­ben und diese anschlie­ßend auf­be­rei­ten (Extract Load Trans­form (ELT)).

Stel­len Sie sich vor, Sie laden ein Data Ware­house aus zwei oder drei Daten­ban­ken für Geschäfts­an­wen­dun­gen. Die bei­den Vor­ge­hens­wei­sen hier, auf einer hohen Ebene, wären, die Daten aus der Quelle her­aus­zu­zie­hen und sie in das Data Ware­house zu stel­len, im Wesent­li­chen als Kopie, und dann einige gespei­cherte Pro­ze­du­ren auf­zu­ru­fen, um sie in das eigent­li­che Ware­house zu trans­for­mie­ren (ELT), oder die Daten aus den Quel­len her­aus­zu­zie­hen und die Daten­fluss­trans­for­ma­tion inner­halb des Inte­gra­ti­ons­werk­zeugs selbst zu nut­zen (ETL), um die Daten zu trans­for­mie­ren. Es gibt Vor- und Nach­teile für jede Vor­ge­hens­weise, aber die Ent­schei­dungs­kri­te­rien beinhalten:

  • Hat das Ziel für die Daten die Fähig­keit, wie eine Daten­bank, die Daten nach der Ankunft dort zu trans­for­mie­ren? Wenn nicht sagen wir, Sie laden in einen Cloud-Ser­vice und nicht in eine Daten­bank – dann ist man prak­tisch gezwun­gen, die Daten zu trans­for­mie­ren, bevor sie landen.
  • Hat das Inte­gra­ti­ons­werk­zeug die Fähig­keit, die Daten zu trans­for­mie­ren? Wenn nicht, dann ist es viel­leicht nicht prak­ti­ka­bel, damit zu ver­su­chen, die Daten direkt zu transformieren.
  • Schließ­lich, unter die­sen Bedin­gun­gen, wo wür­den Sie es vor­zie­hen, die Trans­for­ma­tion durchzuführen?

Anders aus­ge­drückt, der Ort, an dem Sie die Daten trans­for­mie­ren müs­sen, ist ent­schei­dend. Über­le­gen Sie, ob es mög­lich ist, die Daten inner­halb Ihres Ziels, wie in einer Ware­house-Daten­bank, zu trans­for­mie­ren und/oder ob es mög­lich ist, sie wäh­rend des Trans­ports zu trans­for­mie­ren. Die fol­gende Tabelle zeigt die der­zeit all­ge­mein ver­füg­ba­ren Fähig­kei­ten im Sep­tem­ber 2018:

ETL ELT
ADFEin­ge­schränktHer­vor­ra­gend
SSISHer­vor­ra­gendHer­vor­ra­gend

Wel­che Her­aus­for­de­run­gen an die Ska­lier­bar­keit stel­len sich für Sie?

Der nächste zu berück­sich­ti­gende Fak­tor ist, mit wie vie­len Daten Sie es zu tun haben. SSIS kann ska­liert wer­den und kann eine sehr gute Per­for­mance bie­ten, aber da es sich meist um ein On-Pre­mise-Tool han­delt, kann es auch erfor­der­lich sein, dass Sie sich mit Ser­vern und Kon­fi­gu­ra­tio­nen aus­ein­an­der­set­zen, um die Lauf­zeit zu opti­mie­ren. ADF hat die typi­schen Vor­teile von Cloud Ser­vices: Es ist etwas, das Sie abon­nie­ren und Sie müs­sen nicht so viel von der Last der Infrastruktur tra­gen. Wenn Sie eine Hybride-Archi­tek­tur haben, den­ken Sie daran, dass die Ver­bin­dung zum Azure Data Cen­ter und die Inte­gra­tion Run­time (Gate­way), die die Daten zwi­schen den ver­schie­de­nen Umge­bun­gen über­trägt, eben­falls ein Eng­pass sein können.

Es gibt hier Grau­zo­nen, aber viele Unter­neh­men fin­den es sehr hilf­reich, nicht mit der zugrunde lie­gen­den Hard­ware, vir­tu­el­len Maschi­nen und Ser­vern arbei­ten zu müs­sen. Wie wir bereits erwähnt haben, kann SSIS kürz­lich auch inner­halb von ADF aus­ge­führt wer­den, wor­auf wir uns in einer Minute kon­zen­trie­ren wer­den, aber wenn Sie eine neue Lösung star­ten, die das Was­ser ein wenig trü­ben kann.

Soll­ten Sie diese bei­den Tech­no­lo­gien kombinieren?

ADF ent­hält nun eine Azure-SSIS Inte­gra­tion Run­time, die es dem Cloud-Ser­vice ermög­licht, SSIS-Pakete aus­zu­füh­ren. Die Idee dabei ist, dass man eine hybride Lösung mit bei­den Tech­no­lo­gien schaf­fen kann, was eine span­nende Mög­lich­keit ist, aber einige Fra­gen auf­wirft. Hier sind einige Dinge, die man sich über­le­gen sollte, wenn man diese bei­den Tech­no­lo­gien kom­bi­nie­ren möchte:

  • Haben Sie bereits ein gro­ßes SSIS-Deploy­ment, das davon pro­fi­tie­ren würde, es ohne Über­ar­bei­tung in die Cloud zu verschieben?
  • Wie groß ist das Daten­vo­lu­men, das Sie ver­schie­ben wer­den? Sind es Tau­sende von Zei­len, Hun­dert­tau­sende, Mil­lio­nen, Mil­li­ar­den? ADF, wie­derum als Schwer­punkt, ist meist ein Big-Data-Tool, und so kann es große Men­gen von Zei­len schnell bewe­gen, aber mit einer gewis­sen Per­for­mance für Over­head-Ope­ra­tio­nen, Inbe­trieb­nahme, und so wei­ter. SSIS scheint etwas leich­ter zu sein, so dass es viel­leicht bes­ser geeig­net ist, wenn Sie einen gerin­ge­ren Arbeits­auf­wand haben – aber umge­kehrt könnte SSIS für große Daten­men­gen lang­sa­mer sein. Eine Ana­lo­gie, die mir gefällt, ist, ADF als Güter­zug im Ver­gleich zu SSIS als LKW zu betrach­ten. Beide sind fähig, aber im Falle des Zuges kann es eine Weile dau­ern, bis man sich auf­ge­stellt hat und sich bewegt. Nach der Fahrt kann der Zug jedoch sehr schnell viel Fracht bewegen.
  • Da die bei­den nun kom­bi­niert wer­den kön­nen, kön­nen Sie z.B. SSIS-Pakete aus dem ADF auf­ru­fen, wenn SSIS bes­ser zu Ihrem Workload passt.
  • Wie sieht Ihre grö­ßere Orches­trie­rungs­stra­te­gie für die Arbeits­pla­nung aus? ADF hat einen guten Sche­du­ler mit vie­len Optio­nen, ein­schließ­lich der Mög­lich­keit, Auf­ga­ben mit Abhän­gig­kei­ten zu ver­ket­ten; wird es in die grö­ßere Stra­te­gie in Ihrer Lösung zum Auf­ruf auto­ma­ti­sier­ter ETL-Auf­ga­ben pas­sen? SSIS-Lösun­gen ver­wen­den tra­di­tio­nell den SQL Agent als Sche­du­ling-Engine und so etwas wie ein „Mas­ter Package“, um den ETL-Pro­zess mit den ent­spre­chen­den Abhän­gig­kei­ten zu orches­trie­ren. In die­ser neuen Welt ist es mög­lich, bei­des zu mischen, z.B. mit ADF zur Pla­nung der Arbeit, aber SSIS-Pakete in der Cloud mit der Azure-SSIS Inte­gra­tion Run­time aufzurufen.
  • Wenn Sie pla­nen, SSIS in der Cloud ein­zu­set­zen, wie wer­den Sie es hos­ten? Auf einer vir­tu­el­len Maschine ohne ADF oder in der neuen ADF-Umgebung?
  • Ist Ihr Team bereit, die bei­den Tech­no­lo­gien gemein­sam anzu­ge­hen? Es ist nicht schwer, aber es gibt eine gewisse Lern­kurve, wenn man bei­des gleich­zei­tig über­nimmt oder von einem zum ande­ren wechselt.

Ich hoffe, dass dies Ihnen hel­fen wird, einige der wich­ti­gen Unter­schiede zwi­schen ADF und SSIS für Ihre Daten­in­te­gra­tion zu ver­ste­hen und eine fun­dierte Ent­schei­dung zu tref­fen, damit Sie mit wel­cher Platt­form Sie auch immer arbei­ten wer­den zufrie­den sind. Wenn Sie Ihre Daten und KI-Her­aus­for­de­run­gen ange­hen möch­ten, kon­tak­tie­ren Sie uns noch heute! Unsere Experten sind bereit, Sie zu unter­stüt­zen und zu über­prü­fen, wie wir Ihnen hel­fen kön­nen, Ihre Geschäfts­ab­läufe zu rationalisieren.