SlideShare ist ein Scribd-Unternehmen logo
Automotive Information Research
driven by Apache Solr
Mario-Leander Reimer
Cheftechnologe, QAware GmbH

mario-leander.reimer@qaware.de
@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
Automotive Information Research driven by Apache Solr
| 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-Suche
Drill-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 this
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
Relationship
Navigation
| 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.html
Base64decode
{
"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
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
| 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
mario-leander.reimer@qaware.de
https://www.qaware.de
https://slideshare.net/MarioLeanderReimer/
https://speakerdeck.com/lreimer/
https://twitter.com/leanderreimer/
&

Weitere ähnliche Inhalte

PDF
Automotive Information Research driven by Apache Solr
PDF
Clickstream Analysis with Spark—Understanding Visitors in Realtime by Josef A...
PPTX
Warum sap hana sql data warehousing
PDF
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
PDF
Secure Architecture and Programming 101
PDF
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
PDF
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
PDF
Automotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache Solr
Clickstream Analysis with Spark—Understanding Visitors in Realtime by Josef A...
Warum sap hana sql data warehousing
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Secure Architecture and Programming 101
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
Automotive Information Research driven by Apache Solr

Andere mochten auch (20)

PDF
Hardening cassandra q2_2016
PDF
Cassandra Summit 2014: CQL Under the Hood
PDF
Hadoop 2.0 - The Next Level
PDF
Cassandra presentation at NoSQL
PDF
DataStax: A deep look at the CQL WHERE clause
PDF
Become a super modeler
PDF
Camunda and Apache Cassandra
PDF
The data model is dead, long live the data model
PDF
Leveraging the Power of Solr with Spark
PDF
Cassandra by example - the path of read and write requests
PPTX
Learning Cassandra
PDF
Migrating Netflix from Datacenter Oracle to Global Cassandra
PDF
Architektur Insights - Big Data, NoSQL
PDF
Wide-column Stores für Architekten (HBase, Cassandra)
PPTX
Kristelproyecto
DOCX
INFOTIC AMBIENTAL
PPTX
Creasoft - Software QS
PDF
Manual buenas prácticas suberícolas en masas jóvenes de alcornoque
PDF
VÍDEO DE NACIMIENTO DE GEOGEBRA Y LINEAMIENTOS CURRICULARES 10º
Hardening cassandra q2_2016
Cassandra Summit 2014: CQL Under the Hood
Hadoop 2.0 - The Next Level
Cassandra presentation at NoSQL
DataStax: A deep look at the CQL WHERE clause
Become a super modeler
Camunda and Apache Cassandra
The data model is dead, long live the data model
Leveraging the Power of Solr with Spark
Cassandra by example - the path of read and write requests
Learning Cassandra
Migrating Netflix from Datacenter Oracle to Global Cassandra
Architektur Insights - Big Data, NoSQL
Wide-column Stores für Architekten (HBase, Cassandra)
Kristelproyecto
INFOTIC AMBIENTAL
Creasoft - Software QS
Manual buenas prácticas suberícolas en masas jóvenes de alcornoque
VÍDEO DE NACIMIENTO DE GEOGEBRA Y LINEAMIENTOS CURRICULARES 10º
Anzeige

Mehr von Mario-Leander Reimer (20)

PDF
Steinzeit war gestern! Vielfältige Wege der Cloud-nativen Evolution.
PDF
A Hitchhiker's Guide to Cloud Native Java EE
PDF
Steinzeit war gestern! Die vielfältigen Wege der Cloud-nativen Evolution
PDF
Everything-as-code: DevOps und Continuous Delivery aus Sicht des Entwicklers....
PPTX
Das kleine Einmaleins der sicheren Architektur @heise_devSec
PDF
Polyglot Adventures for the Modern Java Developer #javaone2017
PDF
Elegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2day
PDF
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
PDF
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
PDF
Everything-as-code. A polyglot adventure. #DevoxxPL
PDF
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
PDF
Per Anhalter durch den Cloud Native Stack. #SEACONHH
PDF
Everything-as-code. Ein polyglottes Abenteuer. #jax2017
PDF
Everything-as-code. Eine vielsprachige Reise. #javaland
PDF
Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017
PDF
Kubernetes 101 and Fun
PDF
Everything-as-code. A polyglot journey.
PDF
Lightweight Developer Provisioning with Gradle
PDF
Lightweight Developer Provisioning with Gradle and SEU-as-code
PDF
Secure JEE Architecture and Programming 101
Steinzeit war gestern! Vielfältige Wege der Cloud-nativen Evolution.
A Hitchhiker's Guide to Cloud Native Java EE
Steinzeit war gestern! Die vielfältigen Wege der Cloud-nativen Evolution
Everything-as-code: DevOps und Continuous Delivery aus Sicht des Entwicklers....
Das kleine Einmaleins der sicheren Architektur @heise_devSec
Polyglot Adventures for the Modern Java Developer #javaone2017
Elegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2day
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
Per Anhalter durch den Cloud Native Stack. #SEACONHH
Everything-as-code. Ein polyglottes Abenteuer. #jax2017
Everything-as-code. Eine vielsprachige Reise. #javaland
Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017
Kubernetes 101 and Fun
Everything-as-code. A polyglot journey.
Lightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with Gradle and SEU-as-code
Secure JEE Architecture and Programming 101
Anzeige

Automotive Information Research driven by Apache Solr

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