Duplikat oder Fuzzy?

In mei­nen bei­den vor­he­ri­gen Bei­trags habe ich einen Pro­zess zur Erken­nung bereits vor­han­de­ner Daten­sätze in einer Ziel­da­ten­bank gezeigt. Was aber tun, wenn meine Daten zwar auf Feld­ebene gleich sein soll­ten, es aber de facto nicht sind? Der Vor­name ist in dem einen Fall aus­ge­schrie­ben, im ande­ren Fall nicht. Es haben sich Tipp­feh­ler ein­ge­schli­chen, und so wei­ter. Das Ganze dann auch noch in Kom­bi­na­tion und das Daten­chaos ist per­fekt. Aber ein nor­ma­ler Zustand in der rea­len Welt der Soft­ware­ver­wal­tung.
Im Rah­men eines Kun­den­pro­jek­tes für ein Kos­ten­con­trol­ling kam die Frage auf, warum im Bereich von Soft­ware­li­zen­zen ste­tig stei­gende Kos­ten zu ver­zeich­nen sind, wenn­gleich die Per­so­nal­stärke auf ihrem Niveau sta­gniert. Eine Hypo­these war, dass unnö­tige Lizen­zen bezahlt wer­den. Wir wur­den um Rat gefragt und dar­aus ent­stand die Idee, ein Benut­zer­ma­nage­ment mit Hilfe von Delta­Master ein­zu­füh­ren, damit Ände­run­gen an den Per­so­nal­struk­tu­ren auch in die Ziel­sys­teme wei­ter­ge­tra­gen wer­den. Denn diese bil­den schließ­lich die Basis für die Abrech­nung der benutz­ten Lizen­zen. Rich­tig gele­sen, benutzte Lizen­zen, wel­che aber sind das? Ziel sollte sein, alle Benut­zer aus den Stamm­da­ten der unter­schied­lichs­ten Sys­teme je sei­nem Pen­dant im Active Direc­tory (AD) zuzu­ord­nen. Wel­ches ist aber sein Pen­dant, wenn die Inhalte eben nicht genau über­ein­stim­men? Dupli­kat oder nicht?
An genau die­ser Stelle kam uns die Idee einer soge­nann­ten Fuz­zy­suche (engl. fuzzy = undeut­lich, unscharf). Dabei geht es kurz gesagt um inhalt­li­che Ähn­lich­kei­ten von Zei­chen­fol­gen, defi­nier­bar mit Schwell­wer­ten. Diese ist ein Bestand­teil der Inte­gra­tion Ser­vices des MS SQL Ser­vers (kurz: SSIS) seit der Ver­sion 2005 und kann mit Hilfe des BI Deve­lop­ment Stu­dios (kurz: BIDS) in jeg­li­che ETL-Pro­zesse inte­griert wer­den. Las­sen Sie uns die­ses Hel­fer­lein heute ein­mal genauer unter die Lupe neh­men. wei­ter­le­sen…