51
© Zühlke 2013 Alexander Appel, Jochen Reber Big Data: Online Analyse mit Elastic Search 23. Januar 2013 Folie 1

OOP2013 Online Analyse mit Elastic Search

  • Upload
    zuehlke

  • View
    1.927

  • Download
    1

Embed Size (px)

DESCRIPTION

Big Data: Online-Analyse mit Elastic Search Vortrag auf der OOP 2013 von Jochen Reber und Alexander Appel (Zühlke Engineering) Elastic Search bietet eine leicht skalierbare, cloudfähige Lösung für die echtzeitnahe Indizierung und Suche, sowie statistische Analyse großer Datenmengen. Der Vortrag zeigt anhand von Erfahrungen in der Amazon Cloud, wie in einem Flottenmanagementsystem mit mehreren Millionen aktiven Fahrzeugen laufende Aktualisierungen von Sensordaten schnell verarbeitet werden können. Der Vortrag geht auch auf alternativen Technologien wie NoSQL Datenbanken ein und zeigt die Vor- und Nachteile der verschiedenen Ansätze auf. Sie lernen: Praxisbericht Big Data - Nutzung von Suchmaschinentechnologie - Online Analytics mit Elastic Search im Vergleich zu klassischen Ansätzen

Citation preview

Page 1: OOP2013 Online Analyse mit Elastic Search

© Zühlke 2013

Alexander Appel, Jochen Reber

Big Data: Online Analyse mit Elastic Search

23. Januar 2013 Folie 1

Page 2: OOP2013 Online Analyse mit Elastic Search

Elastic Search

Page 3: OOP2013 Online Analyse mit 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

Page 4: OOP2013 Online Analyse mit Elastic Search

© 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

Page 5: OOP2013 Online Analyse mit Elastic Search

© Zühlke 2013

Heterogene Anforderungen

Flexible Auswertungen

Sich änderndes Datenformat

Wachsendes Datenvolumen

Page 6: OOP2013 Online Analyse mit Elastic Search

Elastic Search

You know, for search

Page 7: OOP2013 Online Analyse mit Elastic Search

© Zühlke 2013

Elastic Search: Datenspeicherung

Page 8: OOP2013 Online Analyse mit Elastic Search

© 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

Page 9: OOP2013 Online Analyse mit Elastic Search

© 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

Page 10: OOP2013 Online Analyse mit Elastic Search

© 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

Page 11: OOP2013 Online Analyse mit Elastic Search

© 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

Page 12: OOP2013 Online Analyse mit Elastic Search

© 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

Page 13: OOP2013 Online Analyse mit Elastic Search

© 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

Page 14: OOP2013 Online Analyse mit Elastic Search

© 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

Page 15: OOP2013 Online Analyse mit Elastic Search

© 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

Page 16: OOP2013 Online Analyse mit Elastic Search

© 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

Page 17: OOP2013 Online Analyse mit Elastic Search

© 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

Page 18: OOP2013 Online Analyse mit Elastic Search

© 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

Page 19: OOP2013 Online Analyse mit Elastic Search

© 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

Page 20: OOP2013 Online Analyse mit Elastic Search

© 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

Page 21: OOP2013 Online Analyse mit Elastic Search

© 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

Page 22: OOP2013 Online Analyse mit Elastic Search

© 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

Page 23: OOP2013 Online Analyse mit Elastic Search

© 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

Page 24: OOP2013 Online Analyse mit Elastic Search

© 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

Page 25: OOP2013 Online Analyse mit Elastic Search

Wie wachsen ?

Page 26: OOP2013 Online Analyse mit Elastic Search

© 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

Page 27: OOP2013 Online Analyse mit Elastic Search

© 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

Page 28: OOP2013 Online Analyse mit Elastic Search

© 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

Page 29: OOP2013 Online Analyse mit Elastic Search

© 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

Page 30: OOP2013 Online Analyse mit Elastic Search

© Zühlke 2013

Elastic Search Cluster

23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 30

Page 31: OOP2013 Online Analyse mit Elastic Search

© Zühlke 2013

Elastic Search Cluster

23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 31

Page 32: OOP2013 Online Analyse mit Elastic Search

© Zühlke 2013

Elastic Search Cluster

23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 32

Page 33: OOP2013 Online Analyse mit Elastic Search

© Zühlke 2013

Elastic Search Cluster

23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 33

Page 34: OOP2013 Online Analyse mit Elastic Search

© Zühlke 2013

Elastic Search Cluster

23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 34

Page 35: OOP2013 Online Analyse mit Elastic Search

© 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

Page 36: OOP2013 Online Analyse mit Elastic Search
Page 37: OOP2013 Online Analyse mit Elastic Search

© 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

Page 38: OOP2013 Online Analyse mit Elastic Search

© 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

Page 39: OOP2013 Online Analyse mit Elastic Search

© 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!

Page 40: OOP2013 Online Analyse mit Elastic Search

© 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

Page 41: OOP2013 Online Analyse mit Elastic Search

© 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

Page 42: OOP2013 Online Analyse mit Elastic Search

© Zühlke 2013

Bild Ergebnisse

23. Januar 2013 Big Data: Online Analyse mit Elastic Search | Alexander Appel, Jochen Reber Folie 42

Page 43: OOP2013 Online Analyse mit Elastic Search

© 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

Page 44: OOP2013 Online Analyse mit Elastic Search

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)

Page 45: OOP2013 Online Analyse mit Elastic Search

© 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

Page 46: OOP2013 Online Analyse mit Elastic Search
Page 47: OOP2013 Online Analyse mit Elastic Search

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

Page 48: OOP2013 Online Analyse mit Elastic Search

© 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

Page 49: OOP2013 Online Analyse mit Elastic Search

Leicht skalierbare Suchmaschine

Alternativer Document Store

Nicht umsonst

Ideal für Evaluationen

Flexibel

Page 50: OOP2013 Online Analyse mit Elastic Search
Page 51: OOP2013 Online Analyse mit Elastic Search

Alexander Appel [email protected]

Jochen Reber [email protected]