Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automotive Information Research driven by Apach...

Automotive Information Research driven by Apache Solr

Wir suchen das Unbekannte in den unendlichen Weiten relationaler Datensilos. Wie findet man versteckte und bisher unbekannte Entitäten mit deren Beziehungen? Wie sucht man die relevanten Informationen in einem 10^56 dimensionalen Datenraum? Welche Vorteile bietet hier der Einsatz von Apache Solr als Index-Maschine und NoSQL Storage gegenüber traditionellen, relationalen Ansätzen? Wie erzeugt man ein konsistentes, täglich aktuelles Informationsnetz in über 20 Sprachen? Dieser Vortrag gibt die Antworten und präsentiert eine detaillierte Case Study wie auf Basis von Solr eine globale Informationsrecherche Applikation für einen führenden deutschen Automobilhersteller erfolgreich umgesetzt wurde. Dieser Vortrag wurde auf der #data2day 2016 in Karlsruhe gehalten.

M.-Leander Reimer

October 05, 2016
Tweet

More Decks by M.-Leander Reimer

Other Decks in Technology

Transcript

  1. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Agenda • Reverse Data Engineering und Daten-Exploration mit MIR • Informationsrecherche im Aftersales mit AIR • System-Architektur und Herausforderungen • Lösungen für das Problem der kombinatorischen Explosion • Datenaktualität und Konsistenz • Auflösung von Stücklisten und Bedarfsrechner mit ZEBRA 2
  2. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Reverse Data Engineering und Daten-Exploration mit MIR 4
  3. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer In welchem Daten-Silo sind die gesuchten Daten? 5 System A System B System C System D Fahrzeugdaten Weitere Daten Wo sind die gesuchten Fahrzeugdaten? 60 potentielle Systeme und 5000 Entitäten.
  4. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Welche versteckten Relationen gibt es zwischen den Silos und deren Daten? 6 Wie sind die Daten miteinander verbunden? 400.000 potentielle Relationen. Fahrzeugdaten Weitere Daten System A System B System C System D Teile Dokumente
  5. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Reverse Data Engineering und Exploration mit MIR • MIR indiziert und verwaltet die Beschreibung der Datenmodelle und Records aller relevanten Quell-Systeme (RDBMS, XML, WSDL, …) • MIR ermöglicht die Suche und Navigation in den Meta-Informationen, der Drill- Down funktioniert über Solr Facets • MIR verwaltet das Datenmodell und das Solr XML Schema des Zielsystems AIR 7
  6. Tree-View der Systeme, Tabellen und Attribute Wildcard-Suche Drill-Down über Facetten

    Such- Ergebnisse Mögliche Synonyme für Fahrgestell-Nr. gefunden
  7. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Informationsrecherche im Aftersales mit AIR 9
  8. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Die richtige Information in nur 3 Klicks. Die Ausgangssituation: • Benutzer müssen bis zu 7 verschiedene Applikationen gleichzeitig benutzen. • Die Bestandsapplikationen sind nicht wirklich gut integriert. • Die Suche nach den richtigen Informationen ist aufwändig und fehleranfällig. Die Projektvision: • Aggregation aller relevanten Daten in ein konsistentes Informationsnetz • Freie Suche nach Informationen und Navigation zu den verknüpften Informationen • Ablöse der Bestandsapplikationen durch eine einfache Suchanwendung 10
  9. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer –Unbekannt „Aber Apache Solr ist doch eine Volltext- Suchmaschine. Für die Anwendungsdaten müsst ihr Oracle verwenden.“ 13
  10. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Apache Solr schlägt Oracle deutlich im direkten Vergleich in Sachen Query-Performance und Index-Größe. 14 SELECT * FROM VEHICLE WHERE VIN='V%' INFO_TYPE:VEHICLE AND VIN:V* SELECT * FROM MEASURE WHERE TEXT='engine' INFO_TYPE:MEASURE AND TEXT:engine SELECT * FROM VEHICLE WHERE VIN='%X%' INFO_TYPE:VEHICLE AND VIN:*X* | 038 ms | 000 ms | 000 ms | 383 ms | 384 ms | 383 ms | 092 ms | 000 ms | 000 ms | 389 ms | 387 ms | 386 ms | 039 ms | 000 ms | 000 ms | 859 ms | 379 ms | 383 ms Disk space: 132 MB Solr vs. 385 MB Oracle Test Datenset: 150.000 Records
  11. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Solr und AIR auf einem Raspberry Pi Model B als Proof of Concept lief 1A. 16 Running Debian Linux + JDK8 Jetty Servlet Container mit den Solr und AIR Webapps Reduziertes offline Datenset mit ~1.5 Mio Solr Documents Model B Hardware Specs: • ARMv6 CPU 700Mhz • 512MB RAM • 32GB SD Card And now try this with Oracle!
  12. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Nur ein überlegtes Schema-Design führt zu einer optimalen Solr Query-Performance. 17
  13. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Naive Denormalisierung der Daten führt schnell zu kombinatorischer Explosion. 18 33.071.137 Fahrzeuge 14.830.197 Arbeitswerte 1.678.667 Pakete 5.078.411 AW Gruppen 18.573 Reparatur- Anleitungen 648.129 Technische Dokumente 55.000 Teile 648.129 Maßnamen 41.385 Typen 6.180 Fehler Indikationen Relationship Navigation
  14. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Multi-valued Felder können 1..n Relationen effizient abbilden, ergeben aber manchmal False Positives. 19 { "INFO_TYPE":"AWPOS_GROUP", "NUMMER" :[ "1134190" , "1235590" ] "BAUSTAND" :["1969-12-31T23:00:00Z","1975-12-31T23:00:00Z"] "E_SERIES" :[ "F10" , "E30" ] } Dieser Ansatz erfordert ein Nachfiltern der Suchergebnisse. Bei wenigen Treffern kein Problem. Alternative: neuere Versionen von Solr unterstützen Nested Child Documents. Index 0 Index 1 fq=INFO_TYPE:AWPOS_GROUP AND NUMMER:1134190 AND E_SERIES:F10 fq=INFO_TYPE:AWPOS_GROUP AND NUMMER:1134190 AND E_SERIES:E30
  15. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Die Gültigkeiten von Technischen Dokumenten sind als Boolsche Ausdrücke in binärer Form abgelegt. • Gültigkeits-Ausdrücke haben bis zu 46 verschiedene Terme. • Gültigkeits-Ausdrücke nutzen bis zu fünf Operatoren (AND, NOT, …) • Gültigkeits-Ausdrücke sind geschachtelt und komplex. • Einige Terme sind dynamisch und somit unbekannt zum Zeitpunkt der Indizierung. 20 Die Lösung: Transformation der Ausdrücke in einen equivalenten, ternären Ausdruck. Auswertung der Ausdrücke zum Abfrage-Zeitpunkt über eine Custom Function Query.
  16. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Beispiel für einen binären Gültigkeits-Ausdruck 21 Type(53078923) = ‚Brand‘, Value(53086475) = ‚BMW PKW‘ Type(53088651) = ‚E-Series‘, Value(53161483) = ‚F10‘ Type(64555275) = ‚Transmission‘, Value(53161483) = ‚MECH‘
  17. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Transformation der binären Gültigkeits-Ausdrücke in ihr JavaScript Equivalent während der Indizierung. 22 ((BRAND=='BMW PKW')&&(E_SERIES=='F10')&&(TRANSMISSION=='MECH')) AND(Brand='BMW PKW', E-Series='F10'‚ Transmission='MECH') { "INFO_TYPE": "TECHNISCHES_DOKUMENT", "DOKUMENT_TITEL": "Getriebe aus- und einbauen", "DOKUMENT_ART": " reparaturanleitung", "VALIDITY": "((BRAND=='BMW PKW')&&((E_SERIES=='F10')&&(...))", „BRAND": [„BMW PKW"] }
  18. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Auswertung der JavaScript Gültigkeits-Ausdrücke zum Abfrage-Zeitpunkt über eine Custom Function Query. 23 &fq=INFO_TYPE:TECHNISCHES_DOKUMENT &fq=DOKUMENT_ART:reparaturanleitung &fq={!frange l=1 u=1 incl=true incu=true cache=false cost=500} jsTerm(VALIDITY,eyJNT1RPUl9LUkFGVFNUT0ZGQVJUX01PVE9SQVJCRUlUU 1ZFUkZBSFJFTiI6IkIiLCJFX01BU0NISU5FX0tSQUZUU1RPRkZBUlQiOm51bG wsIlNJQ0hFUkhFSVRTRkFIUlpFVUciOiIwIiwiQU5UUklFQiI6IkFXRCIsIkV kJBVVJFSUhFIjoiWCcifQ==) http://qaware.blogspot.de/2014/11/how-to-write-postfilter-for-solr-49.html Base64 decode { "BRAND":"BMW PKW", "E_SERIES":"F10", "TRANSMISSION":"MECH" }
  19. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Ein flexibler ETL Prozess, Continuous Delivery und DevOps sorgen für Datenaktualität und Konsistenz. 24
  20. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Auflösung von Stücklisten und Bedarfsrechner mit ZEBRA 25
  21. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Bills of Materials (BOMs) explained 26
  22. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer BOMs werden gebraucht für … 27 Produktionsplanung Vorhersage von Bedarfen Scenario-basierte Planung Simulationen
  23. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Die grobe Architektur von ZEBRA 28 Teile / abstrakte Bedarfe Bestellungen / tatsächliche Bedarfe Analytics BOMs / Abhängige Bedarfe Demand Resolver Produktions- Planung 7 Mio. 2 Mio. 21 Mrd.
  24. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Die wesentlichen Solr Optimierungen für ZEBRA 29 Bulk RequestHandler Binary DocValue Support Boolean Interpreter als Post-Filter Massen-Data Response Format Search Komponenten für 
 Custom JOIN Algorithmus Auflösung von tausenden Orders mit einem Request. Effizienter Datenspeicher mit Custom JOIN Logik Drastische Verbesserung der Zugriffszeiten auf die gespeicherten Daten über Binary DocValues. 0111 0111 Nutzt den Default Solr Binary Codec mit einem optimierten Datenmodell. Reduziert die Datenmenge um Faktor 8. Computing BOMs Eigene Post-Filter Implementierung zur Auswertung der am Dokumente gespeicherten Boolean Ausdrücke.
  25. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Low-Level Optimierungen der Solr-Interna führten zu einer drastischen Steigerung der Performance. 30 October 14 January 15 May 15 October 15 4,9 ms 0,28 ms 24 ms Time to calculate the BoM for one order 0,08 ms Scoring (-8%) Default Query Parser (-25%) Stat-Cache (-8%) String DocValues (-28%) Development of the processing time Demand Calulation Service PoC Profiling result and the some improvements to reduce the query time. X X X X
  26. | data2day 2016 | Automotive Information Research driven by Apache

    Solr | @LeanderReimer Solr ist ein leistungsfähiges Werkzeug das für den Bau von Enterprise und Datenanalyse
 Anwendungen eingesetzt werden kann. Seien Sie kreativ! 31