SSIS Data Quality @ PASS

June 14, 2010 13:16 by till

datenfabrik_End In den letzten Wochen habe ich meinen Vortrag “Datenqualität mit den SQL Server Integration Services” in verschiedenen PASS Regionalgruppen gehalten. An dieser Stelle auch mal ein kleiner Dank an die Regionalgruppen für die Einladungen. In dem Vortrag wurde kurz erklärt was Datenqualität bedeutet, welche Auswirkungen diese hat und natürlich wie man für eine gute Datenqualität mittels SSIS sorgen kann.

Hier ist der Abstract zu meinem Vortrag:

“Bei immer mehr Data Warehouse Projekten nimmt die Datenqualität einen großen Anteil am zeitlichen wie auch finanziellen Projektbudget ein. Speziell bei der Übernahme der Daten aus den Quellsystemen lassen sich jedoch Vorkehrungen treffen nur „saubere“ Daten zu Übernehmen oder die Daten direkt zu bereinigen. Was liegt da näher als das Thema einmal mit den Integration Services zu betrachten.

Der Vortrag liefert einen kurzen allgemeinen Überblick über das Thema Datenqualität: Was ist Datenqualität, wie „entstehen“ schlechte Daten und welche Auswirkungen haben diese.
Primär werden wir uns einigen Komponenten der Integration Services widmen, um zu zeigen welche Möglichkeiten die SSIS von Haus aus liefern und welche Möglichkeiten mit Community Komponenten und Third-Party Komponenten bestehen.”

Da meine kleine “Tour” nun beendet ist, stell ich den Vortrag und die Demos hier jetzt komplett zur Verfügung.

Und hier noch ein paar Links zu den Komponenten die ich in meinem Vortrag kurz vorstelle:

 

 

dq_comp


Geodaten – Teil 1

June 7, 2010 02:48 by till

In letzter Zeit habe ich mich viel mit Leuten über das Thema Geodaten unterhalten und, bedingt durch mein Projekt SSIS ShapeFileSource, mich auch selber damit viel beschäftigt. Dadurch dass der SQL Server 2008 R2 mit den Reporting Services jetzt endlich in der Lage ist Geodaten außerhalb des SQL Server Management Studios zu visualisieren, scheinen diese auch immer interessanter zu werden. Da sich aber immer wieder herausstellt das hier und da Informationen nicht nur technischer Art fehlen, wie z.B. wie und wo man an Daten kommt, was diese kosten und wie man mit diese dann auch arbeiten kann, habe ich mich dazu entschlossen, mal einen mehrteiligen Artikel oder besser gesagt eine mehrteilige Linksammlung mit Zusatzinformationen, zum Thema Geodaten zu schreiben.

Der erste Teil informiert kurz über Shapefiles, im zweiten Teil stelle ich ein paar Informationen zur Verarbeitung von Geodaten zusammen und im dritten Teil werde ich ein paar allgemeine Fragen aufgreifen.

 

Shapefiles

Shapefiles (*.shp) ist ein Dateiformat für Geodaten, welches ursprünglich von der Firma ESRI entwickelt wurde. Zur Zeit stellen Shapefiles quasi das Standard Format für Geodaten dar. Shapefiles können sowohl Geometrien (Polygon, Multipolygon) wie auch Punkte oder einfache Linien enthalten. Um Daten auf einer Karte darzustellen, benötigt man am besten Geometrien, meistens als Grenzen von z.B. Bundesländern, Postleitzahlengebieten oder Nielsengebieten. Diese lassen sich dann mit den SSRS einfärben. Punkte eignen sich gut um Daten mit Zusatzinformationen anzureichern oder auch um spezielle Abfragen zu erstellen, wie z.B. selektiere alle Kunden die im Umkreis von 50 Km meiner Filiale XYZ liegen.

Zu einem Shapefile gehört in den meisten Fällen noch eine dbase Datei, die die sogenannten Sachdaten enthält, dies können bei Kartendaten z.B. die Namen von Bundesländern oder die entsprechende Postleitzahl sein. Eine genaue Beschreibungen der Shapfiles ist hier zu finden:

Die SQL Server Reporting Services verwenden zur Anzeige von Daten in Ihren Maps, neben Bing Maps als Overlay, eben diese Shapefiles. Zum Leid aller nicht US Reporting Spezies wird die aktuelle R2 Version nur mit US Karten ausgeliefert. Dies wird sich laut Microsoft leider auch nicht ändern. Dies hängt (wahrscheinlich) damit zusammen, das man in den USA Daten die mit Steuergeldern erhoben worden sind, dem Steuerzahler natürlich auch frei zur Verfügung stellt.

Wer Daten nun nicht auf US Karten darstellen möchte, kann Karten kaufen oder eine der verschiedenen freien Quellen verwenden. Bei den freien Quellen sollte jedoch die jeweilige Lizenz beachtet werden, viele Lizenzen erlauben nur die Verwendung zu Demonstrationszwecken. Bei der Auswahl der Daten habe ich meinen Fokus primär auf Deutschland gelegt, trotzdem sind auch einige Links zu anderen Ländern vorhanden. Nicht alle Daten eignen sich unbedingt für die Verwendung in den Reporting Service, wie z.B. die Daten, die aus der OpenStreetMaps extrahiert worden sind. Einige Daten sollten vorher in den SQL Server importiert werden und können dann als Referenz verwendet werden.

Wer mehr Informationen zur Darstellung von Daten mit den Reporting Services benötigt, dem empfehle ich die aktuelle Ausgabe 7.2010 des dot.net magzins und die diesjährige SQLCON 2010. Sowohl im Magazin wie auch auf der Konferenz zeigt Andreas Wolter den Umgang mit den SSRS und dem neuen Map-Control.

 

Kommerzielle Daten

GeoDataSource
Die Firma GeoDataSource stellt eine Datenbank mit alle Städten der Welt mit Zusatzinformationen wie Region, administrative Ebenen usw. zur Verfügung. Die Daten werden als CSV geliefert und eignen sich zur Anreicherung bestehender Daten.

ThinkGeo
Die Firma ThinKeo stellt über ihr Produkt Map Suite Geodaten der Welt zur Verfügung. Die Daten sind für Entwickler sehr interessant, da man für ca. 500$ eine “royalty-free” Lizenz erhält.

LUTUM+TAPPERT
Das Bonner Unternehmen LUTUM+TAPPERT vertreibt verschiedene Karten im ESRI Shapefile Format. Darunter unter anderem Postleitzahlen, Arbeitsamtsbezirke und Strom- und Gasnetze. Einen Überblick der Daten bekommt man im Gesamtkatalog.

infas geodaten
Das ebenfalls aus Bonn stammende Unternehmen infas geodaten vertreibt einen ganzen Satz an verschiedenen Geodaten/Karten unter anderem im ESRI Shapefile Format.

eurogeographics
Als gemeinnütziger Verein der Vermessungseinrichtungen, aus 33 EU Mitgliedsstaaten im Jahr 2001 gegründet, vertreibt eurogeographics verschiedene Daten als Shapefiles.

GfK GeoMarketing
Auch die Firma GfK GeoMarketing vertreibt verschiedene Karten im ESRI Format, darunter Administrative Landkarten und Postleitzahlenkarten.

 

Freie Daten

Geodan Data Samples
Die niederländische Firma Geodan stellt verschiedene Demo Daten im ESRI Shapefile Format über die Niederlande, Europa und die Welt zur Verfügung. Die europäischen Daten enthalten z.B. alle europäischen Länder mit den NUTS0 und NUTS1 Grenzen. (NUTS in der Wikipedia). Geodan vertreibt darüberhinaus auch weitere Karten, müßte also eigentlich auch mit in die Rubrik "kommerzielle Daten".

Geofabrik
Die Geofabrik erstellt Auszüge aus den aktuellen OpenStreetMap Daten und stellt diese für unterschiedliche Länder und Regionen als Shapefiles zur Verfügung.

National Geospatial-Intelligence Agency
Die NGA stellt eine Datenbank mit geographischen Namen und Koordinaten als UTF-8 zur Verfügung, in der (fast) alle Länder der Welt enthalten sind.

Centers for Disease Control and Prevention
Die CDC stellt für alle europäischen Länder die Grenzen der ersten administrativen Ebene (Bundesländer in Deutschland) und für einige ausgewählte auch die der zweiten administrativen Ebene zur Verfügung.

U.S. Census Bureau
Stellt die Grenzen für die 5-stellige Postleitzahlen aller US Bundesstatten zur Verfügung.

CloudMade
Auch CloudMade stellt Daten auf Basis der OpenStreetMap zur Verfügung. Die Daten stehen nicht nur als Shapefiles (612 MB !!!), sondern auch für Garmin oder TomTom zur Verfügung.

Diva-GIS
Die zur Verfügung gestellten Daten decken administrative Ebenen, Straßen, Bevölkerung und noch einges mehr ab. Die Daten werden als ESRI Shapefiles zum Download angeboten. Die Daten für Deutschland gehen runter bis auf die 3. administrative Ebene (Kreisebene). Die Diva-Gis Daten sind die derzeit umfangreichsten freien Daten.

Bundesnetzagentur
Die Bundesnetzagentur stellt eine Karte mit alle Ortsnetzbereich-Grenzen, also den deutschen Telefonvorwahlen, kostenlos als ESRI Shapefile zur Verfügung.

Der Bundeswahlleiter
Über die Seite der Bundeswahlleiter werden verschiedene statistische Informationen zu den Bundestagswahlen der Bundesrepublik Deutschland zur Verfügung gestellt. Zu den beiden derzeit erfassten Bundestagswahlen 2005 und 2009 können die Grenzen der Wahlkreise in unterschiedlichen Formaten, darunter auch ESRI Shapefiles, abgerufen werden.
Auch einige Bundesländer, wie z.B. NRW, stellen Karten ihrer Wahlkreise als ESRI Shapefiles zur Verfügung.

NHGIS
Das National Historical Geographic Information System stellt zwar auch wieder keine Daten für Deutschland zur Verfügung, aber den Dienst an sich finde ich sehr interessant. Man kann hier unter anderem Grenzdaten als Shapefile der US Bundesstaaten angefangen von 1790 bis 2000 bekommen.

Floramap CIAT
Das Centro Internacional de Agricultura Tropical stellt für verschiedene Länder, unter anderem auch Europa, Shapefiles mit den entsprechenden Klimadaten zur Verfügung.


Ich hoffe ich kann diese Liste in Zukunft noch mit weiteren freien Daten erweitern.


ISBN Prüfung mit einer abgeleiteten Spalte

May 9, 2010 19:46 by till

ISBN Nummern dienen dazu, Bücher weltweit eindeutig zu identifizieren. Bis zum 31.12.2006 wurde zur Identifizierung die sogenannte ISBN-10 eingesetzt. Da die damit möglichen Nummern in einigen Ländern nicht mehr ausreichen, wird seit dem 1.1.2007 die ISBN-13 verwendet. Die ISBN verwendet eine Prüfziffer, also eine Zahl die durch spezielle Verfahren aus den übrigen Ziffern berechnet wird, um z. B. Eingabefehler zu erkennen.

Die Prüfziffer für die ISBN-10 “3-86645-654-9” wird wie folgt berechnet:

Nummer Gewichtung Summe
3 10 30
8 9 72
6 8 48
6 7 42
4 6 24
5 5 25
6 4 24
5 3 15
4 2 8
Summe   288
modulo 11   2
Differenz zu 11   9
Prüfziffer   9

Diese ganze Prozedur kann mit einer abgeleiteten Spalte berechnen lassen und somit überprüfen, ob eine ISBN-Nummer richtig oder falsch übermittelt wurde.

image

Der zu verwendende Ausdruck dazu ist relativ einfach, aufgrund seiner Länge gestaltet sich die Arbeit innerhalb des Editors aber ein bisschen schwieriger.

   1: ((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),10,1) == 11 - (
   2:     (((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),1,1) * 10) 
   3:     + ((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),2,1) * 9) 
   4:     + ((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),3,1) * 8) 
   5:     + ((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),4,1) * 7) 
   6:     + ((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),5,1) * 6) 
   7:     + ((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),6,1) * 5) 
   8:     + ((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),7,1) * 4) 
   9:     + ((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),8,1) * 3) 
  10:     + ((DT_I8)SUBSTRING(REPLACE(ISBN10,"-",""),9,1) * 2)
  11:     ) % 11) ? true : false)

Aus der ISBN-10 Nummer wird jeweils der mögliche Bindestrich entfernt. Danach werden die einzelnen Positionen mit der jeweiligen Gewichtung multipliziert und zusammen addiert. Der Rest dieser Summe geteilt durch 11 (Modulo 11) wird von 11 subtrahiert. Die resultierende Differenz bildet die Prüfziffer.
Entspricht diese Prüfziffer der letzten Ziffer der ISBN-10, so wird als Ergebnis true ausgegeben, ansonsten false.

Die Berechnung der aktuellen ISBN-13 folgt an sich dem selben Schema, jedoch mit einer anderen Gewichtung und Modulo 10.

Im folgenden kurz aufgeschlüsselt für die ISBN-13 “978-3-86645-654-9”:

Nummer Gewichtung Summe
9 1 9
7 3 21
8 1 8
3 3 9
8 1 8
6 3 18
6 1 6
4 3 12
5 1 5
6 3 18
5 1 5
4 3 12
Summe   131
modulo 10   1
Differenz zu 10   9
Prüfziffer   9

Wer nähere Informationen zu den ISBN benötigt, findet diese im ISBN User’s Manual.

Ähnliche Verfahren lassen sich natürlich nicht nur für die ISBN verwenden, es können auch weitere Nummern die ein Prüfziffernverfahren verwenden wie z.B. EAN,  Patentnummern oder Identcodes der Deutschen Post AG geprüft werden. Eine umfangreiche Liste von Prüfziffern, deren Berechnungsmethoden und teilweise auch weiterführenden Informationen ist hier zu finden.