Elasticsearch

0 77

Dauer: 25 Minuten
Schwierigkeit: Anfänger
Voraussetzungen: Keine

Lernziele

  • Verstehen, was Elasticsearch ist und wofür es verwendet wird
  • Den Unterschied zwischen Elasticsearch und traditionellen Datenbanken kennen
  • Grundlegende Konzepte verstehen (Dokumente, Indizes, Cluster)
  • Reale Anwendungsfälle kennenlernen
  • NEU: Sehen, welche großen Unternehmen Elasticsearch einsetzen

Was ist Elasticsearch?

Elasticsearch ist eine verteilte Suchmaschine und Analyse-Engine, die auf Apache Lucene basiert. Stell dir vor, du hast Millionen von Dokumenten und möchtest in Millisekunden relevante Ergebnisse finden – genau dafür ist Elasticsearch gebaut.

Einfache Analogie:

  • Google für das Internet = Elasticsearch für deine Daten
  • Du gibst Suchbegriffe ein, bekommst sofort relevante Ergebnisse

Elasticsearch vs. Traditionelle Datenbanken

Aspekt Traditionelle DB (MySQL) Elasticsearch
Primärer Zweck Daten speichern Daten durchsuchen
Suche Langsam bei LIKE-Queries Extrem schnell (ms)
Volltextsuche Begrenzt Exzellent
Skalierung Vertikal (größerer Server) Horizontal (mehr Server)
Datenstruktur Tabellen mit Zeilen JSON-Dokumente
ACID Ja Teilweise (eventual consistency)

Wann was verwenden?

  • MySQL/PostgreSQL: Transaktionen, Finanzen, strikte Konsistenz
  • Elasticsearch: Suche, Logs, Analytics, Echtzeitanalyse

Grundlegende Konzepte

Dokument (Document)

Das kleinste Element – ähnlich einer Zeile in einer Datenbank.

json

{
  "id": 1,
  "name": "Andreas Müller",
  "job": "Web Developer",
  "skills": ["PHP", "Laravel", "Elasticsearch"],
  "location": "Frankfurt",
  "experience_years": 20
}
```

**Wichtig:**
- Dokumente sind im JSON-Format
- Jedes Dokument hat eine eindeutige ID
- Flexibles Schema (nicht alle Dokumente brauchen dieselben Felder)

#### 2️⃣ **Index**
Eine Sammlung von ähnlichen Dokumenten - wie eine Datenbank-Tabelle.
```
Index: "employees"
├── Dokument 1: Andreas Müller
├── Dokument 2: Sarah Schmidt  
├── Dokument 3: Michael Weber
└── ...
```

**Wichtig:**
- Ein Index hat einen Namen (Kleinbuchstaben: "employees", "products", "logs")
- Kann Millionen von Dokumenten enthalten
- Optimiert für schnelle Suche

#### 3️⃣ **Cluster**
Eine Gruppe von Servern (Nodes), die zusammenarbeiten.
```
Cluster: "mein-produktions-cluster"
├── Node 1 (Master + Data)
├── Node 2 (Data)
└── Node 3 (Data)
```

**Wichtig:**
- Automatische Verteilung der Daten
- Hochverfügbarkeit (Node fällt aus = kein Datenverlust)
- Horizontal skalierbar

#### 4️⃣ **Node**
Ein einzelner Server im Cluster.

**Node-Typen (lernen wir später im Detail):**
- **Master Node:** Cluster-Verwaltung
- **Data Node:** Speichert Daten
- **Ingest Node:** Datenverarbeitung

#### 5️⃣ **Shard**
Ein Stück eines Index - für Skalierung.
```
Index "products" (100 GB)
├── Shard 0 (20 GB) → Node 1
├── Shard 1 (20 GB) → Node 2
├── Shard 2 (20 GB) → Node 3
├── Shard 3 (20 GB) → Node 1
└── Shard 4 (20 GB) → Node 2
```

**Warum Shards?**
- Große Indizes werden aufgeteilt
- Parallele Verarbeitung
- Bessere Performance

---

### 🎯 Reale Anwendungsfälle

#### 1. **Log-Analyse** (Sehr häufig!)
```
Szenario: Du hast 1000 Server, jeder produziert Logs
Problem: Fehler finden in Millionen von Log-Zeilen
Lösung: Elasticsearch + Kibana

Beispiel-Suche:
"Zeige mir alle ERROR-Logs der letzten 5 Minuten 
 vom Server 'web-prod-42' 
 die das Wort 'database timeout' enthalten"

Antwortzeit: < 100ms ✅
```

#### 2. **E-Commerce Suche**
```
Szenario: Online-Shop mit 100.000 Produkten
Problem: Nutzer sucht "rotes kleid sommer"
Lösung: Elasticsearch findet:
  - Rote Kleider
  - Sommerkleider in Rot
  - "Sommerliches rotes Abendkleid"
  - Auch bei Tippfehlern: "rotes kleid somer"

Features:
- Typo-Toleranz
- Relevanz-Ranking
- Filter (Größe, Preis, Marke)
- Auto-Suggest
```

#### 3. **Security Analytics**
```
Szenario: Firewall-Logs analysieren
Problem: Angriffe erkennen in Echtzeit
Lösung: Elasticsearch mit Aggregationen

Beispiel:
"Zeige Anzahl der Verbindungen pro IP in letzter Stunde
 → IP mit > 10.000 Requests = möglicher Angriff"
```

#### 4. **Application Performance Monitoring (APM)**
```
Szenario: Microservices überwachen
Problem: Welcher Service ist langsam?
Lösung: Request-Traces in Elasticsearch

Beispiel:
"Zeige alle Requests > 2 Sekunden
 mit Breakdown nach Service"
```

#### 5. **Business Intelligence**
```
Szenario: Verkaufsdaten analysieren
Problem: Trends erkennen
Lösung: Aggregationen in Elasticsearch

Beispiel:
"Umsatz pro Produkt-Kategorie, pro Tag, letzte 3 Monate
 → Visualisierung in Kibana"

Welche großen Unternehmen nutzen Elasticsearch?

Elasticsearch wird von tausenden Unternehmen weltweit eingesetzt. Hier sind einige prominente Beispiele, die zeigen, wie vielseitig und leistungsfähig Elasticsearch ist:

E-Commerce & Retail

eBay

  • Use Case: Produktsuche für 1,3+ Milliarden Listings
  • Skalierung: Hunderte von Nodes
  • Features: Typo-Toleranz, Faceted Search, Personalisierung
  • Warum ES? Extrem schnelle Suche auch bei riesigen Produktmengen

Zalando

  • Use Case: Produktsuche und Fashion-Empfehlungen
  • Volumen: Millionen Produkte, Millionen Suchanfragen täglich
  • Features: Multi-Language-Support, Filter-Kombinationen

Otto.de

  • Use Case: Produktkatalog-Suche und Recommendations
  • Besonderheit: Einer der größten deutschen Online-Shops

Media & Entertainment

Netflix

  • Use Case: Logging, Monitoring, Security Analytics
  • Volumen: Über 800 Milliarden Events pro Tag!
  • Cluster-Größe: Mehrere 1000 Nodes
  • Features: Echtzeit-Überwachung des Streaming-Systems

Spotify

  • Use Case: Logging, Monitoring, User-Analytics
  • Volumen: Mehrere Petabytes an Daten
  • Features: Analyse von User-Verhalten und Playback-Daten

Tinder

  • Use Case: Geo-Suche für Matches, Analytics
  • Besonderheit: Location-based Search in Echtzeit

Automotive & Transportation

Uber

  • Use Case: Logging, Monitoring, Marketplace-Analytics
  • Volumen: Millionen Fahrten täglich analysieren
  • Features: Echtzeit-Tracking, Fehleranalyse

Tesla

  • Use Case: Fahrzeugdaten-Analyse, Telemetrie
  • Features: Monitoring von Millionen Datenpunkten pro Fahrzeug

Tech-Unternehmen

Microsoft

  • Use Case: Azure Monitoring, GitHub-Suche
  • Features: Code-Suche in Millionen Repositories

Adobe

  • Use Case: Experience Platform, Analytics
  • Features: Marketing-Datenanalyse in Echtzeit

LinkedIn

  • Use Case: Mitglieder-Suche, Job-Suche, Feed-Personalisierung
  • Volumen: 900+ Millionen Mitglieder durchsuchbar

Stack Overflow

  • Use Case: Code-Suche in Millionen Fragen/Antworten
  • Features: Tag-basierte Suche, Code-Snippet-Suche

Banking & Finance

Goldman Sachs

  • Use Case: Log-Analyse, Compliance, Security
  • Besonderheit: Echtzeit-Überwachung von Trading-Systemen

Deutsche Bank

  • Use Case: Security Information and Event Management (SIEM)
  • Features: Betrugserkennung, Compliance-Monitoring

Healthcare & Science

NASA

  • Use Case: Telemetrie-Daten von Missionen
  • Features: Analyse von Sensor-Daten aus dem Weltraum

Mayo Clinic

  • Use Case: Medizinische Forschungsdaten durchsuchen
  • Features: Klinische Studien-Daten analysieren

News & Publishing

The Guardian

  • Use Case: Artikel-Suche für Leser und Redakteure
  • Volumen: Millionen Artikel durchsuchbar
  • Features: Multi-Language, Relevanz-Tuning

New York Times

  • Use Case: Archiv-Suche (Artikel seit 1851!)
  • Features: Historical Data Search

Gaming

Sony PlayStation

  • Use Case: Gaming-Logs, User-Analytics
  • Features: Performance-Monitoring von Gaming-Servern

Riot Games (League of Legends)

  • Use Case: Player-Statistics, Match-Daten
  • Volumen: Millionen Matches pro Tag

Enterprise & Productivity

Slack

  • Use Case: Nachrichten-Suche für Teams
  • Features: Echtzeit-Indexierung von Milliarden Messages

Atlassian (Jira, Confluence)

  • Use Case: Issue-Tracking, Dokumenten-Suche
  • Features: Cross-Project-Suche

Typische Skalierungs-Zahlen aus der Praxis

Hier siehst du, wie groß Elasticsearch-Deployments wirklich werden können:

Unternehmen Nodes Dokumente Indexing-Rate Use Case
Netflix 1000+ 800 Mrd+ Events/Tag 1+ Mio Events/Sek Logging/Monitoring
eBay 500+ 1,3+ Mrd Listings Hoch Produktsuche
LinkedIn 100+ Milliarden Docs Hoch Member Search
Uber Viele Cluster Millionen Fahrten/Tag Sehr hoch Analytics/Monitoring

🎯 Was zeigen diese Beispiele?

Diese Unternehmen nutzen Elasticsearch, weil:

  1. Skalierung: Horizontal auf 1000+ Nodes möglich
  2. Performance: Millisekunden-Antwortzeiten auch bei Milliarden Dokumenten
  3. Flexibilität: Von Produktsuche bis Log-Analyse alles möglich
  4. Echtzeit: Near Real-Time Indexing und Search
  5. Zuverlässigkeit: 24/7 Hochverfügbarkeit möglich

Wichtig: Wenn diese globalen Player Elasticsearch vertrauen, zeigt das die Enterprise-Reife der Technologie!


💡 Wie funktioniert die Suche? (Vereinfacht)

Traditionelle Datenbank (MySQL):

sql

SELECT * FROM products 
WHERE name LIKE '%laptop%'

→ Muss jede Zeile durchgehen 🐌 (bei 1 Mio Produkten = langsam)

Elasticsearch:

json

{
  "query": {
    "match": { "name": "laptop" }
  }
}
```
→ Nutzt **invertierten Index** 🚀 (wie ein Buch-Index)

**Invertierter Index (Beispiel):**
```
Begriff     → Dokumente
"laptop"    → [1, 5, 42, 103, 505]
"macbook"   → [5, 103]
"gaming"    → [42, 999]

Suche "laptop" → Direkt zu Dokumenten [1, 5, 42, 103, 505]
Keine Tabellen-Scan nötig! ⚡

🎓 Zusammenfassung

Was du gelernt hast:

✅ Elasticsearch ist eine Suchmaschine, keine Datenbank
Dokumente (JSON) sind die kleinste Einheit
Indizes sammeln ähnliche Dokumente
Cluster = mehrere Server arbeiten zusammen
Shards verteilen Daten für Skalierung
✅ Ideal für: Logs, Suche, Analytics, Monitoring
Invertierter Index macht Suche extrem schnell
Wird von Tausenden Unternehmen weltweit genutzt – von eBay bis Netflix
Bewährt bei extremen Skalierungen – Milliarden Dokumente, 1000+ Nodes

Author: Andreas Lang

Sphinx-Flashdesign.de

Andreas Lang konzentriert sich seit zwei Jahrzehnten auf die Webentwicklung und Webdesign mit dem Schwerpunkt PHP, Laravel und Javascript und betreut seine Kunden mit Herz und Seele in allen Bereichen von Entwicklung, Design, Suchmaschinenoptimierung, IT-Recht, IT-Sicherheit etc.