Wenn es um die Über­tra­gung von Daten zwi­schen zwei Sys­te­men geht, so fällt die Wahl schnell auf das Ver­sen­den von Files z.B. via SFTP. Dies ist zwar alt­be­währt, doch deckt es bei wei­tem nicht mehr die aktu­el­len Anfor­de­run­gen an eine dyna­mi­sche Schnitt­stelle ab.

Bereits rela­tiv simple Anfor­de­run­gen, wie das Erken­nen von Löschun­gen kön­nen ohne Aktiv-Flags oder das Laden von Voll­be­stän­den nicht erkannt wer­den. Selbst das Anpas­sen eines Files ist in der Regel mit sehr hohem Auf­wand ver­bun­den. Die Daten­über­tra­gung mit­tels IBM CDC stellt unter ande­rem genau für diese Pro­bleme eine Lösung dar und bie­tet sogar die Mög­lich­keit von Real­time Anbindungen.

Funk­tio­na­li­tät, Ver­wal­tung und tech­ni­sche Anbindung

Zunächst stellt sich die Frage danach, wie diese Form der Daten­über­tra­gung funktioniert.

IBM CDC ist eine Daten­über­tra­gungs­soft­ware, die auf dem Aus­le­sen von Daten­bank­logs basiert. DB-Ände­run­gen, in Form von Updates, Inserts oder Löschun­gen wer­den erkannt, aus­ge­le­sen und an die ange­bun­de­nen Ziele weitergeleitet.

Ein Einblick in die Datenübertragung mit IBM Change Data Capture (CDC) Replication Bild1
Abbil­dung 1 Tech­ni­sche Über­sicht der Kom­po­nen­ten von IBM CDC.  Quelle

Das tech­ni­sche Herz der Gesamt­funk­tio­na­li­tät ist der Access Ser­ver. Hier wer­den Quell- und Ziel­da­ten­ban­ken ange­schlos­sen und als sol­che defi­niert. Die Daten kön­nen zum einen zwi­schen homo­ge­nen Daten­ban­ken als auch zwi­schen unter­schied­li­chen Sys­te­men über­tra­gen wer­den z.B. Ora­cle nach DB2. Da es mög­lich ist eine Daten­bank als Dual (Quelle und Ziel) zu defi­nie­ren, kön­nen auch Sys­tem interne Repli­ka­tio­nen ohne wei­te­res mit CDC umge­setzt werden.

Die Anbin­dung und damit das Aus­le­sen der Infor­ma­tion ist indi­vi­du­ell gestalt­bar. Die GUI von IBM CDC ist die Manage­ment Con­sole. Hier­über wer­den über das Anspre­chen des Access Ser­vers die sog. Sub­scrip­ti­ons und die dar­un­ter lie­gen­den Map­pings ver­wal­tet. Über die Sub­scrip­ti­ons wird ange­ge­ben zwi­schen wel­cher Quell- und Ziel­da­ten­bank Daten über­tra­gen wer­den sol­len. In die­sem Zusam­men­hang defi­nie­ren die Map­pings, wel­che kon­krete Quell­ta­belle aus­ge­le­sen wird. Dabei ist es sowohl mög­lich bereits vor­han­dene Tabel­len zu befül­len, neue nach Vor­lage der Quell­ta­belle zu erstel­len als auch die Ände­run­gen als Mes­sa­ges an Queues zu sen­den. Letz­te­res ist vor allem für Unter­neh­men inter­es­sant, die Tech­no­lo­gien wie Apa­che Kafka nut­zen wollen.

Zusätz­lich bie­tet IBM CDC die Mög­lich­keit Fil­ter auf die Quell­ta­belle anzu­wen­den und Fix­werte für Ziel­spal­ten zu defi­nie­ren. Sog. Jour­nal Con­trol Fields die­nen dazu z.B. den Zeit­punkt der Ände­rung, die Nut­zer ID und den Typ der Ände­rung (Update, Insert, Delete oder Refresh) fest­zu­hal­ten, um indi­vi­du­ell auf alle Bedürf­nisse ein­zu­ge­hen. Alle Anfor­de­run­gen kön­nen im Laufe der Zeit ohne große Auf­wände ange­passt werden.

Das direkte Erken­nen von Ände­run­gen bie­tet hier­bei eine effi­zi­ente Grund­lage für Real­time Schnittstellen.

Des Wei­te­ren ist es mög­lich neben der rei­nen Kon­fi­gu­ra­tion, die Sub­scrip­ti­ons zu über­wa­chen und zu ana­ly­sie­ren. Neben der Anzahl der über­tra­ge­nen Daten­men­gen wer­den somit vor allem auch Feh­ler und War­nun­gen fest­ge­hal­ten, die zu einem Absturz des Abbil­dungs­pro­zes­ses füh­ren können.

Unter­stützte Datenbanken

Die Nut­zung von IBM CDC wird von einer Viel­zahl von Daten­ban­ken unter­stützt. Die fol­gende Tabelle beinhal­tet eine Gesamt­über­sicht der Quell- und Ziel­da­ten­ban­ken, wel­che die CDC Repli­ca­tion v.11.4 unterstützen:

Unter­stützte QuelldatenbankenUnter­stützte Zieldatenbanken
IBM Db2 for Linux, UNIX and Win­dows (LUW)
IBM Db2 for i
IBM Db2 for z/OS
IBM InfoS­phere® DataStage®
IBM® Db2® for Linux, UNIX and Win­dows (LUW)Micro­soft SQL Server
IBM Db2 for iCDC Repli­ca­tion Engine for FlexRep
IBM Db2 for z/OS®Netezza®
IMSOra­cle
Micro­soft SQL ServerSybase 1
Ora­cleInfor­mix 1
Sybase 1CDC Repli­ca­tion Engine for Event Ser­ver 1
Infor­mix® 1IBM Clou­dant®
Db2 on Cloud (form­erly dashDB® for Tran­sac­tions) 2Apa­che™ Hadoop
VSAMApa­che Kafka
Post­greSQLDb2 Ware­house on Cloud (form­erly dashDB for Analytics)
Db2 Ware­house on Cloud (form­erly dashDB for Ana­ly­tics) 3Db2 on Cloud (form­erly dashDB for Tran­sac­tions) 2
Db2 Ware­house (form­erly dashDB Local) 3Db2 Ware­house (form­erly dashDB Local)
MySQLIBM MQ for z/OS (using Clas­sic CDC for z/OS)
Teradata
Micro­soft Azure SQL Database
Micro­soft Azure SQL Data­base Mana­ged Instance
IBM Inte­gra­ted Ana­ly­tics System
Quelle

Je nach­dem wel­che Quell- oder Ziel­da­ten­bank ange­spro­chen wird, kön­nen zum Teil zusätz­li­che oder nur ein­ge­schränkte Funk­tio­na­li­tä­ten gege­ben sein.

Ein Bei­spiel, bei dem die Funk­tio­na­li­tät abwei­chen kann, ist die Durch­füh­rung eines Refresh, die Bela­dung eines Daten­voll­be­stan­des. Ana­log zur File­an­lie­fe­rung erwar­tet man hier in der Regel rie­sige Daten­men­gen, wodurch sich die Ser­ver­aus­las­tung stark erhö­hen kann. Eine Alter­na­tive hier­für ist der dif­fe­ren­tial Refresh. Im Gegen­satz zu einem Stan­dard Refresh, bei dem die Ziel­ta­belle zunächst geleert wird, wer­den bei einem dif­fe­ren­tial Refresh Abwei­chun­gen zwi­schen Quell- und Ziel­ta­belle erkannt und das Ziel somit an die Quelle ange­gli­chen. Hier­durch ist es mög­lich die Anzahl der Anpas­sun­gen auf der Ziel­ta­belle ggf. deut­lich zu redu­zie­ren. Unter­stützt wird diese Funk­tion aller­dings nicht von den fol­gen­den Datenbanken:

  • CDC Repli­ca­tion Engine for Netezza® Technology
  • CDC Repli­ca­tion Engine for FlexRep
  • CDC Repli­ca­tion Engine for Db2 for i

Es ist somit rat­sam im Vor­feld zu prü­fen, wel­che Funk­tio­na­li­tä­ten ggf. ein­ge­schränkt sind.

IBM CDC mehr als eine Daten­über­tra­gungs­soft­ware – Automatisierung

Neben der eigent­li­chen Haupt­funk­tio­na­li­tät der Daten­über­tra­gung kann IBM CDC auch in ande­rer Form genutzt wer­den, um dar­über­hin­aus­ge­hende Auf­ga­ben­fel­der zu erschließen.

Diverse Vor­teile bie­ten in die­sem Zusam­men­hang spe­zi­ell von IBM ent­wi­ckelte CLI-Befehle (sog. CHCCLP) für Power­Shell und indi­vi­du­elle Device Map­per für die Unix Umge­bung. Sie stel­len die Alter­na­tive zur manu­el­len Ver­wen­dung der Manage­ment Con­sole dar.  Hier­durch las­sen sich bei­spiels­weise das Anle­gen von Anbin­dun­gen auto­ma­ti­sie­ren. Doch neben der Mög­lich­keit der auto­ma­ti­sier­ten Ver­wal­tung kann unter ande­rem die Sta­tus Erken­nung für The­men wie Moni­to­ring oder ein auto­ma­ti­sier­tes Feh­ler­ma­nage­ment genutzt werden.

Fazit

IBM CDC bie­tet in jedem Fall eine Alter­na­tive, wahr­schein­lich sogar Ver­bes­se­rung zur her­kömm­li­chen Daten­an­lie­fe­rung durch Files.

Die Art der Anbin­dung ist sehr viel­sei­tig und es kann auf die Bedürf­nisse und Gege­ben­hei­ten des jewei­li­gen Quell- bzw. Ziel­sys­tems ein­ge­gan­gen wer­den. Dar­über hin­aus wer­den Löschun­gen erkannt sowie Real­time Anbin­dun­gen wie die Kop­pe­lung mit Kafka ermög­licht. Durch die geschickte Anwen­dung von z.B. CLI Befeh­len, kann es sogar die betrieb­li­chen Abläufe unter­stüt­zen und ist somit mehr als nur ein rei­nes Datenübertragungstool.