Automotive Information Research driven by Apache Solr

137 Aufrufe

Veröffentlicht am

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.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
137
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Automotive Information Research driven by Apache Solr

  1. 1. Automotive Information Research driven by Apache Solr Mario-Leander Reimer Cheftechnologe, QAware GmbH
 mario-leander.reimer@qaware.de @LeanderReimer
  2. 2. | 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
  3. 3. | data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer Reverse Data Engineering und Daten-Exploration mit MIR 4
  4. 4. | 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.
  5. 5. | 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
  6. 6. | 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
  7. 7. Tree-View der Systeme, Tabellen und Attribute Wildcard-Suche Drill-Down über Facetten Such- Ergebnisse Mögliche Synonyme für Fahrgestell-Nr. gefunden
  8. 8. | data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer Informationsrecherche im Aftersales mit AIR 9
  9. 9. | 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
  10. 10. | data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer11
  11. 11. | data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer12
  12. 12. | 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
  13. 13. | 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 OracleTest Datenset: 150.000 Records
  14. 14. Der Dirt Race Use-Case: •Keine Internet-Verbindung •Low-End Devices
  15. 15. | 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!
  16. 16. | data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer Nur ein überlegtes Schema-Design führt zu einer optimalen Solr Query-Performance. 17
  17. 17. | data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer Naive Denormalisierung der Daten führt schnell zu kombinatorischer Explosion. 18 33.071.137 Fahrzeuge14.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
  18. 18. | 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
  19. 19. | 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.
  20. 20. | 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‘
  21. 21. | 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"] }
  22. 22. | 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 Base64decode { "BRAND":"BMW PKW", "E_SERIES":"F10", "TRANSMISSION":"MECH" }
  23. 23. | 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
  24. 24. | data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer Auflösung von Stücklisten und Bedarfsrechner mit ZEBRA 25
  25. 25. | data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer Bills of Materials (BOMs) explained 26
  26. 26. | data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer BOMs werden gebraucht für … 27 Produktionsplanung Vorhersage von Bedarfen Scenario-basierte PlanungSimulationen
  27. 27. | 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.
  28. 28. | 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.
  29. 29. | 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 TimetocalculatetheBoMforoneorder 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
  30. 30. | 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
  31. 31. Mario-Leander Reimer Cheftechnologe, QAware GmbH mario-leander.reimer@qaware.de https://www.qaware.de https://slideshare.net/MarioLeanderReimer/ https://speakerdeck.com/lreimer/ https://twitter.com/leanderreimer/ &

×