Post on 25-May-2015
description
transcript
© Zühlke 2013
Alexander Appel, Jochen Reber
Big Data: Online Analyse mit Elastic Search
23. Januar 2013 Folie 1
Elastic Search
© Zühlke 2013
Szenario Flottenmanagement
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber
Transport Status:
• Kartendarstellung
• Aktuelle Informationen
• Verspätung / Panne?
Historieninformationen:
• Zeitlicher Verlauf von Fahrzeugmesswerte (Verbrauch, Geschwindigkeit)
• Statistiken (Pannen, Verspätungen …)
Folie 3
© Zühlke 2013
Übertragene Daten (Event)
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber
"VID" : "ZE000002",
"Timestamp" : "2012-05-21T11:11:11.123",
"Sequence" : "123",
"Driver" : "Sven",
"Message" : "Jag är på väg!",
"Type" : "TRUCK",
"Model" : "MAN TGX 18.680, V 8",
"Status" : "driving",
"Position" : {
"lat" : 57.767972,
"lon" : 12.269754
},
"Speed" : "0",
"Fuel" : "111.66",
"Consumption" : "11.0",
"Temperature" : „92.3",
"Pressure" : "7.3",
...
"Delivery" : {
"Region" : "EUR",
"Description" : "Gothenburg to Alingsas",
"RemainingDistance" : "30.654",
"From" : {
"Start" : "Gothenburg",
"Time" : "2012-05-21T08:00:00„,
"Location" : { … }
},
"To" : {
"Destination" : "Alingsas",
"Time" : "2012-05-21T10:00:00„,
"Location" : { … }
}
zukünftige Änderungen möglich!
Folie 4
© Zühlke 2013
Heterogene Anforderungen
Flexible Auswertungen
Sich änderndes Datenformat
Wachsendes Datenvolumen
Elastic Search
You know, for search
© Zühlke 2013
Elastic Search: Datenspeicherung
© Zühlke 2013
Elastic Search: Datenspeicherung
_index _type _id
▼
VID Timestamp Sequence Type Model Status Driver Speed Fuel Consumption
Temperature
Pressure
Region Descriptio
n remainingDistance
Name Time _score
oopevents history P1PE4oxKT_GzJTqnQDBIHw
1 ZE_1652 2013-01-12T17:48:03.105
14 TRUCK GAZ 3308 DRIVING Mindy 81 null 19.8325 89.19 6.205
5 EUR
from Madrid to Berlin
2321.929 Berlin 2013-01-14T01:43:01
oopevents history mlvbWoyzSemN0GiTakS0OA
1 ZE_1655 2013-01-12T17:48:03.477
14 BIKE BMW R 1200 GS
DRIVING Mittens 134 null 7.8305 118.35 2.2
5 EUR
from Wien to Kiew
1344.383 Kiew 2013-01-13T04:45:02
oopevents history N52BVXftQf6fg0B_1boAtw
1 ZE_1650 2013-01-12T17:48:02.905
14 TRUCK Saab-Scania 114-L
DRIVING Mildred 78 null 19.672 82.615 5.9
1 EUR
from Madrid to Moskau
4181.266 Moskau 2013-01-15T04:46:01
oopevents history OMJvGBUmTYGYtG7oddLQsw
1 ZE_1659 2013-01-12T17:48:03.973
14 BIKE Yamaha XJ6
DRIVING Morgana McCawber 127 null 10.474 133.22 2.5 EUR
from Moskau to Wien
1963.21 Wien 2013-01-13T09:20:02
oopevents history
mzWjNIJcTA-T0JcHZw5feQ
1 ZE_1638 2013-01-12T17:48:01.461
14 BIKE BMW F 800 R
DRIVING Mahra the Baboon
124 null 7.384 119.67 2.3 EUR from Paris to Istanbul 2749.217 Istanbul
2013-01-13T17:14:00
© Zühlke 2013
Elastic Search: Inverted Index
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
OOP Conference Integration Track Elastic Seach 3
Conference 3 7 12
Elastic 3
Integration 1 3
OOP 1 3 7 12
Search 3 7
Track 1 3
Folie 9
© Zühlke 2013
1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber Folie 10
© Zühlke 2013
1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
Term Query
Folie 11
© Zühlke 2013
1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
Range Query
Folie 12
© Zühlke 2013
1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
Geo Filter
Folie 13
© Zühlke 2013
1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
2. Aggregation Durchschnitt Geschwindigkeit, Reifendruck Entwicklung Benzinverbrauch Verteilung nach Fahrzeugtyp Geschwindigkeitsverteilung
Folie 14
© Zühlke 2013
1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
2. Aggregation Durchschnitt Geschwindigkeit, Reifendruck Entwicklung Benzinverbrauch Verteilung nach Fahrzeugtyp Geschwindigkeitsverteilung
Statistical Facet
Folie 15
© Zühlke 2013
Date Histogram Facet 1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
2. Aggregation Durchschnitt Geschwindigkeit, Reifendruck Entwicklung Benzinverbrauch Verteilung nach Fahrzeugtyp Geschwindigkeitsverteilung
Folie 16
© Zühlke 2013
Term Facet 1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
2. Aggregation Durchschnitt Geschwindigkeit, Reifendruck Entwicklung Benzinverbrauch Verteilung nach Fahrzeugtyp Geschwindigkeitsverteilung
Folie 17
© Zühlke 2013
Range Facet 1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
2. Aggregation Durchschnitt Geschwindigkeit, Reifendruck Entwicklung Benzinverbrauch Verteilung nach Fahrzeugtyp Geschwindigkeitsverteilung
Folie 18
© Zühlke 2013
1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
2. Aggregation Durchschnitt Geschwindigkeit, Reifendruck Entwicklung Benzinverbrauch Verteilung nach Fahrzeugtyp Geschwindigkeitsverteilung
3. Berechnungen Verspätungen berechnen
Folie 19
© Zühlke 2013
Scripting 1. Suchfilter Suche nach Fahrer Niedriger Benzinstand Umkreissuche
Features: Elastic Search
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
2. Aggregation Durchschnitt Geschwindigkeit, Reifendruck Entwicklung Benzinverbrauch Verteilung nach Fahrzeugtyp Geschwindigkeitsverteilung
3. Berechnungen Verspätungen berechnen
Folie 20
© Zühlke 2013
Elastic Search: Implementierung
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
• RESTful API
• JSON Message Body
• Beispiel: Geofilter
• Beispiel: Term Facet
Folie 21
© Zühlke 2013
Elastic Search: Implementierung
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
{ "query": { "match_all": {} }, "filter": { "geo_distance": { "distance": "200km", "Position": { "lat": 48.13 "lon": 11.69 } } } }
• RESTful API
• JSON Message Body
• Beispiel: Geofilter
• Beispiel: Term Facet
Folie 22
© Zühlke 2013
Elastic Search: Implementierung
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
{ "query": { "match_all": {} }, "facets": { “models": { “terms": { "field": “model" } } } }
• RESTful API
• JSON Message Body
• Beispiel: Geofilter
• Beispiel: Term Facet
Folie 23
© Zühlke 2013
Document Store Mongo DB: • Sekundärindizes, Geospatial Index • Aggregationen und Map Reduce • Stored Procedures in Java Script • Speicherung von Binärdaten
Vergleich mit NoSQL Datenbanken
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
Vorteile: • Unique Index • Komplexe Auswertungen über Map Reduce
Nachteile: • Keine Volltextsuche • Keine vorgefertigten Auswertungen
Folie 24
Wie wachsen ?
© Zühlke 2013
Elastic Search: Architektur und Skalierung Indexpartitionierung
Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber
P1
R1/1
R1/2
P2
R2/1
R2/2 R3/2
P4
R4/1
R4/2
R3/1
23. Januar 2013
P3
Primary Shard
Replica Shard
Partitionsgruppe
Folie 26
© Zühlke 2013
Elastic Search: Architektur und Skalierung Clusterkonfiguration
Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber
P1
R1/1
R1/2
P2
R2/1
R2/2 R3/2
P4
R4/1
R4/2
R3/1
23. Januar 2013
Primary Shard
Replica Shard
Cluster-Knoten
P3
Folie 27
© Zühlke 2013
Elastic Search: Architektur und Skalierung Suchanfrage
Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber
P1
R1/1
R1/2
P2
R2/1
R2/2 R3/2
P4
R4/1
R4/2
R3/1
23. Januar 2013
Primary Shard
Replica Shard
Cluster-Knoten
P3
Folie 28
© Zühlke 2013
Elastic Search: Architektur und Skalierung Indizierung
Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber
P1
R1/1
R1/2
P2
R2/1
R2/2 R3/2
P4
R4/1
R4/2
R3/1
23. Januar 2013
Primary Shard
Replica Shard
Cluster-Knoten
P3
Folie 29
© Zühlke 2013
Elastic Search Cluster
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 30
© Zühlke 2013
Elastic Search Cluster
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 31
© Zühlke 2013
Elastic Search Cluster
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 32
© Zühlke 2013
Elastic Search Cluster
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 33
© Zühlke 2013
Elastic Search Cluster
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 34
© Zühlke 2013
• Auto Sharding mit Master Slave Replikation
Vergleich mit Mongo DB
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber Folie 35
© Zühlke 2013
Amazon Web Services Elastic Compute Cloud (EC2)
Instanztypen
• Large (m1.large) 7,5 GB RAM 4 EC2 Compute Units (2 virtual cores) I/O Performance: High
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber
$ 0,340 pro Stunde
Folie 37
$ 3,410 pro Stunde
• High I/O Quadruple Extra Large (hi1.4xlarge) 60,5 GB RAM 35 EC2 Compute Units (16 virtual cores) I/O Performance: Very High (10 Gigabit Ethernet) 2 SSD-based volumes each with 1024 GB of instance storage
© Zühlke 2013
Amazon Web Services EC2 Persistenz
Instance Storage
• Lokaler Festplattenspeicher, Größe abhängig vom Instanztyp
• Flüchtig! Existiert so lange Instanz läuft
• Keine Zusatzkosten für E/A Operationen
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber
Elastic Block Store (EBS)
• Netzwerk Speicher Medien
• Persistent – unabhängig von Instanz-Lebenszyklus
• Kosten abhängig vom Datenvolumen und E/A Operationen
• Option: Zugesicherte E/A pro Sekunde (provisioned IOPS)
Folie 38
© Zühlke 2013
Amazon Web Services Automatisierung
Wieso braucht man das?
• Unterschiedliche Cluster Konfigurationen
• Von 6 bis 24 Cluster Instanzen
• Arbeitsverteilung über mehrere Instanzen
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber
„Infrastructure as code“ spart Kosten!
• Es müssen weniger Ressourcen vorgehalten werden
• Es gehen keine Konfigurationen verloren
Folie 39
Manuell aufwendig und fehleranfällig!
Ein Muß für die Arbeit in der Cloud!
© Zühlke 2013
Szenario Architektur
Alexander Appel, Jochen Reber 6. Januar 2013
Transport Status Dashboard
Master Nodes
Data Nodes
Event Generator instances
Event Scheduler instances
Folie 40
Elastic Search Cluster
© Zühlke 2013
Gewählte Infrastruktur
Alexander Appel, Jochen Reber 6. Januar 2013 Folie 41
Event Generator
Event Scheduler
Master Nodes
Data Nodes
9 Instanzen (m2.2xlarge)
8 Instanzen (m1.xlarge)
a) 1 Master 5 Data (m1.large) 5 shards + 1 replica
b) 1 Master/Data (hi1.4xlarge) 5 shards
c) 4 Master 20 Data (m1.large) 20 shards + 1 replica (provisioned IOPS)
• Monitoring (2 x m1.small), Suchanfragen (m1.large)
Größte Ausbaustufe: 35 Instanzen gleichzeitig
© Zühlke 2013
Bild Ergebnisse
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 42
© Zühlke 2013
Das entspricht real:
• 100.000 Fahrzeuge (DHL: 80.000)
• Aktualisierung: 1 x pro Minute
1660 Aktualisierungen/s
über 16 Stunden
Szenario Kennzahlen „Labor Aufbau“
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber
• Events: 500.000.000
• Eventgröße: 1 kByte
• Indexgröße (1 Replica): 1,7 TB
• Verhältnis: 1 : 3,5
Folie 43
1500 900
3200 3100
2200
3000
5500
0
1000
2000
3000
4000
5000
6000
SingleIndexing
SingleIndex mit
Suche
BulkIndexing
SingleIndexing
BulkIndexing
SingleIndexing
BulkIndexing
Messergebnisse Indizierung
a) 1 Master 5 Data (m1.large) 5 shards +1 replica
1660
b) 1 Master/Data (hi1.4xlarge) 5 shards
c) 4 Master 20 Data (m1.large) 20 shards + 1 replica (provisioned IOPS)
t (ms)
© Zühlke 2013
Suchanfrage Genutzte Features Anfragedauer
Auswertung aktuell verspäteter Fahrzeuge
Scripting Range Facet
120 ms
Alle Events von einem bestimmten Fahrer
Term Query 400 ms
Zeitliche Pannenstatistik zu einem bestimmten Fahrzeugtyp
Term Query Date Histogram Facet
620 ms
Verteilung der Status aller Fahrzeuge im Umkreis von 200km
Geo Range Filter Facet Filter
7690 ms
Durchschnitt Geschwindigkeit, Reifendruck, Motortemperatur aller Events
Date Histogram Statistik
14550 ms
Messergebnisse Suche
23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 45
Kosten für Szenario
Dienst Anzahl Knoten Laufzeit (Tage)
Kosten ($)
Large Instance 25 2,16 440
Extra Large Instance 8 1,75 175
Provisioned IOPS 20 9,5 500
Weiteres (IO, Netzwerk, Small Instances, …)
145
Gesamt 1260
© Zühlke 2013
• Frühzeitig Account Limits erhöhen!
• Kosten: Provisioned IOPS vs Standard EBS
• Spot Request Instanzen: Markt kleiner als gedacht
• Ausfälle passieren!
Lessons Learned
21. Dezember 2012 Big Data: Elastic Search in the Amazon Cloud | Alexander Appel, Jochen Reber Folie 48
Leicht skalierbare Suchmaschine
Alternativer Document Store
Nicht umsonst
Ideal für Evaluationen
Flexibel
Alexander Appel aap@zuehlke.com
Jochen Reber jre@zuehlke.com