Realtime Data Stream Pipelines

Real-Time Pipelines (eBook und print)

Data Streaming und damit die Real-Time Analysen großer Datenströme gewinnen zunehmend an Bedeutung. Die Anwendungsbeispiele reichen von Internet of Things (IoT) bis hin zum modernen Data Lake.
Das Fachgebiet entwickelt sich rasend schnell und schon sind erste Standards in Arbeit. Real-Time Pipelines wird über kurz oder lang derselbe Stellenwert zukommen, wie heute SQL und relationalen Datenbanken.
Mit vielen Diagrammen und ohne Code-Beispiele erläutert dieses Buch die grundlegenden Konzepte und Architekturen dieser verteilten Big-Data-Systeme. Detaillierte Erläuterungen der Funktionsweise von Apache Spark und Apache Kafka vertiefen das Verständnis dieses faszinierenden neuen Fachgebiets.

Blick ins Buch

Die Screenshots beziehen sich auf die Print-Ausgabe. Zum Vergrößern aufs Bild klicken.

Bonus

  • Das eBook enthält den gleichen Inhalt wie die Printausgabe plus ein Bonuskapitel zu Apache Zookeeper.
  • Bei Erwerb der Print-Ausgabe steht das eBook Apache Zookeeper nach Abschluss des Kaufprozesses unmittelbar zum kostenlosen Download zur Verfügung.

Lieferung eBook

Das eBook wird unmittelbar nach Abschluss des Kaufprozesses als PDF zum Download angeboten. Weitere Formate sind in Vorbereitung und können kostenlos nachlizenziert werden, sofern das eBook auf der Verlagsseite erworben wurde und das weitere Format dort direkt ausgeliefert wird.

Lieferung Print Ausgabe

Die Print-Ausgabe wird als Print-On-Demand direkt ab Druckerei geliefert.

Inhaltsverzeichnis erste Auflage

1 EINLEITUNG

2 URSPRÜNGE UND ANWENDUNGEN
2.1 Open Source
2.2 Einsatz von Real-Time Pipelines
2.2.1 Social Media Plattformen
2.2.2 Internet of Things
2.2.3 Log-Daten
2.2.4 Webanwendungen
2.2.5 Active Data Warehouses
2.3 Anforderungen an Real-Time Pipelines
2.3.1 Skalierbarkeit
2.3.2 Korrekte Auswertungen
2.3.3 Hochverfügbarkeit
2.3.4 Einfach Programmierbar
2.3.5 Einfache Administration
2.4 Herausforderungen
2.4.1 Herausforderung: Skalierbarkeit
2.4.2 Herausforderung: Geringe Latenz und hoher Durchsatz
2.4.3 Herausforderung: Korrekte Auswertungen
2.4.4 Herausforderung: Hochverfügbarkeit
2.4.5 Herausforderung: Einfach Programmierbar
2.4.6 Einfache Administration

3 ANATOMIE EINER REAL-TIME PIPELINE
3.1 Klassische Architektur Patterns
3.1.1 Lambda Architektur
3.1.2 Kappa Architektur
3.1.3 Aktuelle Entwicklungen
3.1.4 Cloud
3.2 Verallgemeinerte Architektur
3.2.1 Firewalls
3.2.2 Load Balancer und Webserver
3.2.3 Collection
3.2.4 Event Hub
3.2.5 Stream Analytics Engine
3.2.6 In-Memory-Cache
3.2.7 Data Lake
3.2.8 Datenzugriff und Ergebnisdarstellung
3.2.9 Architekturvarianten
3.3 Installation und Deployment
3.3.1 On Premise
3.3.2 Cloud Lösungen
3.4 Cluster – Ein Rechnerverbund

4 EVENT HUBS
4.1 Einsatzmöglichkeiten
4.1.1 Message Queue und Event Hub
4.1.2 Middleware – Abgrenzung zum Event Hub
4.2 Publish-Subscribe
4.3 Skalierbarkeit und Ausfallsicherheit
4.3.1 Replikation von Partitionen
4.3.2 Hochverfügbarkeit
4.4 Latenz und Durchsatz
4.4.1 Append only Logs
4.4.2 Buffer
4.4.3 Kompression
4.4.4 Leseoptimierung
4.4.5 Unflushed buffered writes
4.4.6 Zero-Copy
4.4.7 Garbage Collection vermeiden
4.4.8 Consumer und Topics optimieren
4.5 Auslieferungsgarantien (Delivery Guarantee)
4.6 Unbeschränkte Datasets
4.7 Event Hub – eine Definition

5 APACHE KAFKA ALS EVENT HUB
5.1 Kafka APIs und Einsatzzweck
5.2 Kafka Architektur
5.2.1 Broker
5.2.2 Topics und Logs
5.2.3 Producer API
5.2.4 Consumer API
5.3 Topics
5.3.1 Offset
5.3.2 Log Retention
5.3.3 Grundstruktur eines Producer Records (Teil 1)
5.3.4 Partitionen
5.3.5 Replikation
5.4 Cluster
5.4.1 Broker
5.4.2 Controller
5.5 Producer
5.5.1 Producer Record im Detail (Teil 2)
5.5.2 Key und Log Compaction
5.5.3 Kompression
5.5.4 Partitioner
5.5.5 Publikation und Replikation
5.5.6 Dauerhaftigkeitsgarantie
5.5.7 Idempotenter Producer und Ordnung
5.6 Consumer
5.6.1 Lesevorgang – High Level Betrachtung
5.6.2 __consumer_offset Topic
5.6.3 Details zum Lesevorgang
5.6.4 Consumer und Partitionen
5.6.5 High Watermark Offset und Repeatable Read
5.6.6 Consumer Groups
5.6.7 Group Coordinator
5.6.8 Poll
5.6.9 FindCoordinator
5.6.10 Das Rebalance Protokoll
5.6.11 Commit
5.7 Transaktionen
5.7.1 Herausforderungen
5.7.2 Ergänzungen im Producer-Broker – Protokoll
5.7.3 Transaction Coordinator und __transaction_control
5.7.4 Erweiterungen im Producer Record (Teil 3)
5.7.5 Erweiterungen im Consumer
5.7.6 Ein Blick auf das Protokoll
5.7.7 Erweiterung

6 STREAM ANALYTICS ENGINES
6.1 Aufkommender Standard
6.1.1 Motivation
6.1.2 Verarbeitungsarten
6.2 Window-Typen
6.3 Inkrementelle Aggregationen und Joins von Streams
6.3.1 Klassischer Join statischer Tabellen
6.3.2 Time varying relationship – Zeitabhängige Relationen
6.3.3 Time varying Join
6.3.4 Ausblick
6.4 Zeitstempel – aber welcher?
6.5 Reihenfolge und Ordnung Out-of-Order-data
6.6 Event-Time Auswertungen
6.6.1 Event-Zeit vs. Verarbeitungszeit
6.6.2 Event-Zeit verarbeiten
6.7 Inkrementelle Ausführungspläne (DAG)
6.7.1 Ausführungspläne oder DAG
6.7.2 Inkrementelle Ausführungspläne
6.7.3 Cache Layer – ein Data Store
6.8 Der Einsatz des Clusters
6.8.1 Anatomie eines Nodes
6.8.2 Allgemeine Architektur eines Stream Analytics Clusters
6.8.3 Orchestrierung durch den Cluster-Manager
6.8.4 Analytics Master
6.9 Semantiken und Garantien
6.9.1 Map Reduce
6.9.2 At-Most-Once-Verarbeitung
6.9.3 At-Least-Once-Verarbeitung
6.9.4 Exactly-Once-Verarbeitung
6.9.5 Eigenschaften des Zustandsspeichers (State Store)
6.9.6 Idempotente Senke
6.10 Backpressure
6.11 Rolle des Frameworks

7 SPARK ALS STREAM ANALYTICS ENGINE
7.1 Der Spark Stack
7.2 Die Ausgangslage
7.3 Architektur
7.3.1 Catalyst Optimizer und MetaStore
7.4 RDD – Resilient Distributed Dataset
7.4.1 Das RDD API – Transformationen und Aktionen
7.4.2 Memory, Cache und Persist
7.4.3 Broadcast Variablen
7.4.4 Accumulator Variablen
7.5 DStreams
7.6 DataSet und DataFrame
7.7 Structured Streaming
7.7.1 Ausführungsplan
7.8 Ausführung einer Spark Applikation
7.8.1 Das WebUI des Drivers
7.8.2 Deploy Mode
7.8.3 Schedulers
7.8.4 JobScheduler der Applikation
7.9 Hochverfügbarkeit
7.10 Continuous Streaming
7.11 Andere Stream Analytics Engines

8 ZOOKEEPER
8.1 Einsatzszenarien
8.1.1 Konfigurationsinformationen
8.1.2 Naming Service
8.1.3 Verteilte Synchronisation
8.1.4 Group Services
8.2 Wording
8.3 Filesystem und Datenstruktur
8.3.1 Persistente Znodes
8.3.2 Ephemeral Znodes und Sessions
8.3.3 Sequenzielle Znodes
8.3.4 Watches
8.3.5 Data Access
8.4 ZooKeeper API
8.4.1 Befehlssatz
8.4.2 Verwendung des API
8.5 ZooKeeper Garantien
8.5.1 Konsistenz
8.5.2 Sequentielle Konsistenz
8.5.3 Atomarität
8.5.4 Single System Image
8.5.5 Zuverlässigkeit (Reliability)
8.5.6 Timeliness
8.6 ZooKeeper als verteiltes System
8.6.1 Interaktion zwischen Applikation und ZooKeeper
8.6.2 Ensemble – Interna
8.6.3 Transaktionen
8.7 Beispielszenario – Master-Node bestimmen

9 AUSBLICK

10 ANHANG
10.1 Literaturverzeichnis
10.2 Stichwortverzeichnis