Deutsch   |   English
   
 digg.com  del.icio.us 

Best Practices Datenqualität

Typische Aufgabe in der Datentransformation ist die Integration neuer Daten ohne dabei gewisse Einschränkungen zu verletzen.

Bei herkömmlichen Datenbanksystemen werden Prüfungen z.B. auf Primär- oder Fremdschlüsseleigenschaften meist innerhalb von Einzelsatzverarbeitung (pl/SQL, Cursors) durchgeführt oder aber aus Performancegründen sogar deaktiviert.

Da EXASolution keine Cursors bietet und die Meldung einer Primärschlüsselverletzung innerhalb einer Batchverarbeitung wenig hilfreich ist, sollten hier alle notwendigen Prüfungen noch innerhalb der Staging-Area vorgenommen werden und nur fertig transformierte und geprüfte Daten in das Hauptschema übernommen werden.

Ausgangssituation

  • Faktentabelle customers mit PK (customer_no) und FK (city_id)
  • Dimensionstabelle cities mit PK (city_id) und Infospalte name
  • Stagingtabelle new_customers mit den relevanten Spalten customer_no, last_name, city_name, error_text

Ziel

Entwicklung eines Prozess, der alle Neukunden aus der Stagingtabelle in die Faktentabelle übernimmt und fehlerhafte Einträge mit einer entsprechenden Fehlermeldung in der Stagingtabelle belässt.

Implementation

Für die optimale Nutzung von EXASolution sollte bei Transformationen ein Paradigmenwechsel erfolgen.

Ein typischer Vorgang bei Prüfungen ist:

  1. Man nehme eine Input-Zeile
  2. Versuche in die Zieltabelle einfügen
  3. Auf Exceptions reagieren
  4. Zur nächsten Zeile übergehen

Mit EXASolution sollen Sie anstatt in "FOR-Schleifen" in Datenmengen denken:

  1. Fehlermöglichkeiten im Vorfeld identifizieren
  2. Alle Zeilen auf einen Fehler prüfen und Fehlercodes setzen
  3. Am Ende des Prozesses alle korrekten Zeilen in Zieltabellen integrieren
  4. Fehlerhafte Daten evtl. zur Weiterverarbeitung in der Staging Area belassen.

Step 1: Neue Einträge filtern (PK Prüfen)

  1. UPDATE new_customers n
  2.   SET error_text='Customer already exists'
  3.   WHERE EXISTS
  4.     (
  5.       SELECT * FROM customers c
  6.       WHERE c.customer_no = n.customer_no
  7.     )
  8. ;

Step 2. Prüfung von Fremdschlüssel

  1. UPDATE new_customers n
  2.   SET error_text='Unknown city'
  3.   WHERE error_text IS NULL
  4.     AND NOT EXISTS
  5.       (SELECT * FROM cities
  6.         WHERE cities.name=n.city_name
  7.       );

3. Step: Integration in die Fakttabelle

Nachdem alle bekannten Fehlerfälle abgedeckt sind, können die restlichen Einträge in die Faktentabelle übernommen und aus der Stagingtabelle gelöscht werden:

  1. INSERT INTO customers(customer_no, last_name,
  2.               city_id)
  3.   (SELECT n.customer_no, n.last_name, c.city_id
  4.      FROM new_customers n, cities c
  5.      WHERE n.city_name=c.name
  6.        AND n.error_text IS NULL
  7.   );
  8.  
  9. DELETE FROM new_customers WHERE error_text IS NULL;
  10.  

Aktualisierung der Daten existierender Kunden

In vielen Fällen wird die Staging-Tabelle nicht nur Neueinträge, sondern auch Aktualisierungen existierender Kunden enthalten.

Hierzu könnte dann die PK-Prüfung entfallen sowie das INSERT durch einen geeigneten MERGE ersetzt werden.

MERGE INTO customers c
  USING
    (SELECT n.customer_no,
	  n.last_name,
	  c.city_id
       FROM new_customers n, cities c
       WHERE n.city_name=c.name
         AND n.error_text IS NULL
    ) NEW
  ON 
    (NEW.customer_no=c.customer_no
    )
  WHEN MATCHED THEN
    UPDATE SET city_id = NEW.city_id,
	     last_name = NEW.last_name
  WHEN NOT MATCHED THEN
    INSERT (customer_no,
	  last_name,
	  city_id)
    VALUES (NEW.customer_no,
	  NEW.last_name,
	  NEW.city_id
           )
;
 
Sie kommen nicht weiter?

Hinweis:

Statt in FOR-Schleifen in Datenmengen denken!

Referenzen
  • AHOOLY
  • COOP
  • „Mit EXASolution sind wir für zukünftiges Datenwachstum bestens gerüstet. Dadurch, dass wir jetzt Geodaten verarbeiten, sprich die Dimension des Raumbezugs mit auswerten können, bieten wir unseren Kunden ganz neue Analysemöglichkeiten und noch umfassendere Marktübersichten. Wir sind sehr zufrieden mit der neuen Lösung, können flexibel auf zukünftige Anforderungen reagieren und trotzdem unsere Total Cost of Ownership reduzieren, da der so gewählte BI-Stack unsere Vision eines „Lean-BI“ in vollem Umfang unsterstützt.“

    Guido Niermann, IT-Leiter, Dataforce GmbH

    Dataforce
  • "Durch die Einbindung von EXASOL können wir unseren Kunden ein ganz neues Erlebnis bezüglich der explorativen Datenanalyse bieten… Neben der Technologie waren wir vor allem mit der Pre-Sales Beratung und dem Support während der Integration äußerst zufrieden."

     Martin Heink
    Geschäftsführer und Inhaber, econda GmbH 

    Econda
  • "Entscheidend für die IMS Health war insbesondere, dass wir uns durch einen sehr schnell aufgesetzten Proof of Concept von der Leistungsfähigkeit von EXASolution direkt überzeugen konnten."

     Michael Kempke
    Director Data Collection Global Operations, IMS Health GmbH & Co. OHG

    IMS
  • "Mit der innovativen Datenbank von EXASOL können wir komplexe Berechnungen genauer und umfangreicher durchführen. Das gibt uns einen signifikanten Technologievorsprung gegenüber der Konkurrenz."

     Tobias Kiessling
    CTO, intelliAd 

    Intelliad
  • "Die durchgängig hohe Leistung und die Möglichkeit, Echtzeitanalysen fahren zu können, waren für uns ausschlaggebend bei der Wahl von EXASolution."

     Tobias Kroha, Geschäftsführer der für das m-pathy-Projekt verantwortlichen seto GmbH

    m-pathy
  • Media Control
  • Olympus
  • "Wir haben uns für EXASolution entschieden, da die Hochleistungsdatenbank mit den zu erwartenden großen Datenmengen sehr gut umgehen kann und optimale Flexibilität bietet."

     Dr. Michael Röbbecke
    (ehem.) Geschäftsführer, RatePAY 

    RatePAY
  • "Mit EXASolution können wir unsere Geschäftsprozesse deutlich optimieren." 

     Gerhard Zapf
    Projektleiter, Semikron 

    Semikron
  • "Ein zuverlässiger und schneller Support, eine bessere Kundenbetreuung sowie eine bewiesene Fachkompetenz…"

     David Hodge
    IT Director, Sony Music Entertainment Germany 

    Sony Music
  • SOQUERO
  • SponsorPay
  • Stayfriends
  • "Die Datenbank von EXASOL ist Technik made in Germany, auf die wir uns langfristig verlassen können. Da sie bei steigendem Datenvolumen selbstständig skaliert und auch physisch beliebig erweitert werden kann, wächst unsere Datenbank mit unserem Unternehmen, und wir können auch in Zukunft flexibel und schnell auf neue Anforderungen reagieren."

     Heinrich Zetlmayer
    Geschäftsführer, Turtle Entertainment 

    Turtle Entertainment
  • United Internet Dialog
  • "Mit EXASolution haben wir eine Lösung erworben, die unsere hohen Leistungsansprüche komplexer Analysen bei steigenden Datenmengen für unsere Kunden optimal erfüllt." 

     Christian Sauer
    Geschäftsführer, Webtrekk GmbH 

    Webtrekk
  • "Wir haben uns nach einem ausgiebigen Benchmark-Test für die Lösung von EXASOL entschieden. Die hohe Performance des Systems, das Preis-/Leistungs-Verhältnis und der Service haben uns vollauf überzeugt"

    Dr. Ulrich Fricke
    Leiter Business Intelligence, XING AG 

    Xing
  • "Neben Wirtschaftlichkeit, Geschwindigkeit und hoher Leistungsfähigkeit war Flexibilität eines der entscheidenden Kriterien bei der Wahl unserer Datenbank… Die neue Datenbank bietet uns diese Skalierbarkeit bei reduzierten Total Cost of Ownership. So können wir auch in Zukunft immer die optimale Analyseleistung für unsere Kunden erbringen…"

     Sebastian Hoop
    Head of Operations, xplosion interactive gmbh 

    Xplosion
  • Zalando