Hasso-Plattner-Institut
Prof. Dr. Felix Naumann
 

Data Refinery

Für den idealo-Preisvergleich werden täglich eine Milliarde Datensätze mit Angebotsdaten aus verschiedenen Online-Shops zusammengeführt und verarbeitet. Diese müssen in ein Standardformat transformiert, gefiltert und katalogisiert werden um für die Endbenutzer geeignet zu sein. Die unterschiedlichen Eingangsformate und Katalog-Logiken, die Datenqualität und das schiere Volumen der Daten sind einige der spannendsten Herausforderungen hierbei.

Die aktuelle idealo-Architektur beruht auf einer Vielzahl von Prozessen, Datenbanken und Kommunikationskanälen, was einerseits zu hohem Betriebs- und Wartungsaufwand führt, andererseits den Durchsatz und die Verarbeitungsgeschwindigkeit beeinträchtigt.

Projektpartner

idealo ist Deutschlands größter Online-Preisvergleich. Seit seiner Gründung im Jahr 2000 hat sich das Unternehmen vom Drei-Mann-Startup zum Marktführer unter den Produktpreisvergleichen entwickelt. In den Büros in Berlin-Kreuzberg arbeiten über 600 Menschen täglich daran, Verbraucher umfassend, aktuell und genau über Online-Angebote und -Händler zu beraten.

idealo  arbeitet  eng  mit  tausenden  Onlineshops  zusammen.  Egal  ob  Global  Player  wie  Amazon  oder spezialisierter Anbieter mit kleinem Produktsortiment: Bei idealo hat jeder Händler die Chance, mit dem günstigsten Angebot ganz oben zu stehen.

idealo  ist  der  erste  und  einzige  Produktpreisvergleich  mit  dem  Siegel  des  TÜV  Saarland  für  geprüfte Vergleichsportale.  Das  Unternehmen  legt  Wert  auf  Nachhaltigkeit  und  kooperiert  u.a.  mit  Verbraucherschutz-Vertretern wie der Stiftung Warentest, HTV-Life und Der Blaue Engel.

Projektbeschreibung

Das Ziel des Bachelorprojektes ist es, eine innovative, ganzheitliche Architektur für die idealo-Angebotsverarbeitung zu konzipieren und prototypisch umzusetzen. Die Plattform soll auf Technologien verteilter Datenverarbeitung wie z.B. Hadoop, Spark und Flink basieren. Es kann dabei davon ausgegangen werden, dass die shop-spezifischen Angebotsdaten bereits von der Datenquelle empfangen und in ein einheitliches Rohdatenformat abgebildet wurden. Daher müssen beispielsweise das Herunterladen von CSV-Dateien und das Auslesen der relevanten Spalten nicht betrachtet werden.

Im Projekt sollen die nachfolgend aufgeführten Anforderungen umgesetzt werden. Bis zu welcher Tiefe dies jeweils erfolgt, stimmen wir gemeinsam im Projektverlauf ab.

  • Schnittstellenimplementierung: Anbindung  an die  bereits  in  einheitlicher  Struktur  vorliegenden Rohdaten
  • Transformation  und  Filterung:  Globale  und  shop-spezifische  Normalisierungen, Ersetzungen, Erkennung ungültiger Werte, etc.
  • Änderungserkennung: Frühzeitiger Abbruch  der  Verarbeitungskette, wenn  sich  für  nachfolgende Verarbeitungsschritte wesentliche Daten nicht geändert haben
  • Delta-Berechnung: Erkennung zu löschender Angebote aus aktualisierten Angebotslisten
  • Deduplizierung: Entfernung von Produktduplikaten global und innerhalb der Lieferung einzelner Shops anhand shop-spezifischer Kriterien
  • Produktzuordnung: Zuordnung von  Shop-Angeboten  zu  idealo-Kategorien  sowie  Produkten aus dem idealo-Katalog
  • Produktvorschläge: Ermittlung geeigneter Angebotsgruppen zur Erweiterung des Produktkatalogs basierend auf erwarteter Angebotsanzahl, Popularität und Marktrelevanz
  • Wartung: Konfigurierbarkeit globaler und shop-spezifischer Regeln für alle o. g. Schritte
  • Data Lineage: Nachvollziehbarkeit der Verarbeitungsschritte und -fehler je Angebot
  • Horizontale  Skalierbarkeit für  kleine  (Testdaten)  und  sehr  große  Angebotsmengen,  idealerweise mit automatischer Anpassung an Lastspitzen
  • Datenaktualität und -konsistenz durch eine event-getriebene Verarbeitungskette mit minimalen Durchlaufzeiten von der Datenanlieferung bis zum Endnutzer

Weiterhin sollen die üblichen Anforderungen in der Softwareentwicklung beachtet werden: Wiederverwendung (ggf. existierender idealo-Module zur Angebotsanreicherung), Modularität (Erweiterbarkeit), Einfachheit,  Effizienz,  Robustheit  (Fehlertoleranz),  Transparenz  (Monitoring) und Integrierbarkeit mit anderen Systemkomponenten (Importer, Content-Tools, Frontend).

Als zu untersuchende Zielplattform für die Implementierung sollen vor allem streaming-orientierte In-Memory-Frameworks  berücksichtigt  werden,  wie  z.  B. Apache  Spark oder Apache  Flink. Hinsichtlich der Anwendungsarchitektur ist ein möglicher Lösungsansatz CQRS (Command-Query-Responsibility-Se-paration), bei dem Angebots-Rohdaten als Command-Stream ein verteiltes Objektmodell aktualisieren und die daraus resultierenden Änderungen als Event an Query-Datenbanken (z. B. eine Suchmaschine) für die Endnutzer weitergeleitet werden.

Um  eine  gemeinsame  und  flexible  Konkretisierung  der  zu  erreichenden  Ziele  zu  ermöglichen,  ist  ein agiles Vorgehen erwünscht.

Betreuung

Das Projekt wird durch Prof. Dr. Felix Naumann, Sebastian Kruse und Thorsten Papenbrock betreut.