Dublicate Checker - Datenbereinigung mit QlikView

Unsere Kunden setzen QlikView gerne ein um die Datenqualität Ihrer Systeme zu sichten. Das Assoziative Grün-Weiss-Grau Datenmodell, und QlikView's Eigenschaft jeden distinkten Wert eines Feldes in einer Listbox anzuzeigen, hilft oft einen schnellen Überblick über den Datenbestand zu bekommen.

Typische Datenqualitätsprobleme in QlikView sichtbar gemacht:  Unterschiedliche Schreibweisen 

Auch bei Migrationen, Umstieg auf neue Systeme und Zusammenführung von Alt-Daten kommt QlikView immer wieder zum Einsatz. Zuletzt bekam ich eine interessante Anfrage von einem Kunden: Ist es mit QlikView einfach möglich Duplikate zu finden? Pflegt man etwa den Artikelstamm in zwei (oder vielleicht sogar mehr) Systemen, kann ich überprüfen ob die Artikel-Ausprägungen für eine ArtikelNr in beiden Systemen gleich ist?

In meinem kleinen Beispiel hat jede Artikel  (ID) drei Ausprägungen: Name, Preis, ShortName.
Aus diesen beiden Quellsystemen sollen Duplikate gefiltert werden


Ziel ist es nun zu überprüfen ob die Kombination aus "Name, Preis und ShortName" sich in den beiden Systemen unterscheiden. QlikView bietet dafür eine praktische Funktion: autonumberhash256. An dieser Funktion kann man eine beliebige Anzahl an Feldern übergeben. Für jede Wert-Kombination wird innerhalb eines QlikView Scripts ein eindeutiger Wert berechnet.

In unserem Beispiel rufen wir also die Funktion mit 
autonumberhash256(Name,Preis,ShortName) 
auf um ein neues Feld "hash" zu generieren.


Wie man sehen kann wird für die Ausprägung (1,Apple,10,A) in beiden Datenquellen der Hashwert 1 generiert. Dieser Datensatz ist also in beiden Quellsystemen gleich, somit keine Dublette. Im Gegensatz dazu liefert die Funktion für die Werte (2,Orange, 11, ORANG) und (2, Orange,11, O) zwei unterschiedliche Hashwerte. Damit hat die Artikel mit ID=2 eine Dublette.

Im nächsten Schritt des QlikView Scripts markiert man sich nun mittels eines group by und einem load above load alle IDs die mehr als einen unterschiedlichen Hashwert aufweisen --> denn genau das sind meine Dubletten. In unserem Fall sind es die zwei Produkte Orange und Banana.

Die zwei gefundenen Dublikate. Artikel 2 und Artikel 3

Die .qvw mit dem Dublicate Checker finden Sie unter diesem Link. Einfach die Felder der autonumberhash256()-Funktion an Ihre Datenquellen anpassen. Der Ansatz funktioniert übrigens auch mit mehr als 2 Source Systemen - autonumberhash256() sei Dank.

Weiters schlummert auf meiner Festplatte ein altes Beispiel (von einem unbekannten Author) mit einem phonetischen Dublettenchecker . Gelöst mit einem Macro das im Skript aufgerufen wird. Sicherlich sehr interessant wenn man mehrere Adressbestände abgleichen möchte. Vielleicht wird das ja mal ein eigener Blogeintrag ;-)





heldendaten GmbH,2017