Automotive Information Research driven by Apache Solr

32
Automotive Information Research driven by Apache Solr Mario-Leander Reimer Cheftechnologe, QAware GmbH [email protected] @LeanderReimer

Transcript of Automotive Information Research driven by Apache Solr

Automotive Information Research driven by Apache Solr

Mario-Leander Reimer Cheftechnologe, QAware [email protected] @LeanderReimer

| 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

| data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer

Reverse Data Engineering und Daten-Exploration mit MIR

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.

| 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

| 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

Tree-View der Systeme, Tabellen

und Attribute

Wildcard-SucheDrill-Down über Facetten

Such- Ergebnisse

Mögliche Synonyme für Fahrgestell-Nr.

gefunden

| data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer

Informationsrecherche im Aftersales mit AIR

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

| data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer11

| data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer12

| 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

| 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

Der Dirt Race Use-Case:

•Keine Internet-Verbindung

•Low-End Devices

| 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 th

is

with Oracle!

| data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer

Nur ein überlegtes Schema-Design führt zu einer optimalen Solr Query-Performance.

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

RelationshipNavigation

| 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

| 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.

| 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‘

| 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"] }

| 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.htmlBa

se64

dec

ode {

"BRAND":"BMW PKW", "E_SERIES":"F10", "TRANSMISSION":"MECH" }

| 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

| data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer

Auflösung von Stücklisten und Bedarfsrechner mit ZEBRA

25

| data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer

Bills of Materials (BOMs) explained

26

| data2day 2016 | Automotive Information Research driven by Apache Solr | @LeanderReimer

BOMs werden gebraucht für …

27

Produktionsplanung Vorhersage von Bedarfen

Scenario-basierte PlanungSimulationen

| 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.

| 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.

| 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

Tim

e to

cal

cula

te th

e Bo

M fo

r one

ord

er

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.

XX

XX

| 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

Mario-Leander Reimer Cheftechnologe, QAware GmbH [email protected]

https://www.qaware.de https://slideshare.net/MarioLeanderReimer/ https://speakerdeck.com/lreimer/ https://twitter.com/leanderreimer/

&