Kafka Streams und ksqlDB beherrschen

Book description

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Die Arbeit mit unbegrenzten und sich schnell bewegenden Datenströmen war in der Vergangenheit schwierig. Aber mit Kafka Streams und ksqlDB ist es einfach und macht Spaß, Stream-Processing-Anwendungen zu entwickeln. Dieser praktische Leitfaden zeigt Dateningenieuren, wie sie mit diesen Tools hoch skalierbare Stream-Processing-Anwendungen erstellen können, um große Datenmengen in Echtzeit zu bewegen, anzureichern und zu transformieren.

Mitch Seymour, Data Services Engineer bei Mailchimp, erklärt wichtige Stream-Processing-Konzepte vor dem Hintergrund einiger interessanter Geschäftsprobleme. Du lernst die Stärken von Kafka Streams und ksqlDB kennen, damit du das beste Tool für jedes einzelne Stream Processing-Projekt auswählen kannst. Für Nicht-Java-Entwickler ist der ksqlDB-Pfad ein besonders sanfter Einstieg in die Stream-Verarbeitung.

  • Lerne die Grundlagen von Kafka und das Pub/Sub-Kommunikationsmuster
  • Baue zustandslose und zustandsabhängige Stream-Processing-Anwendungen mit Kafka Streams und ksqlDB
  • Ausführen fortgeschrittener zustandsabhängiger Operationen, einschließlich Windowed Joins und Aggregationen
  • Verstehen, wie zustandsabhängige Verarbeitung unter der Haube funktioniert
  • Lerne die Datenintegrationsfunktionen von ksqlDB kennen, die von Kafka Connect unterstützt werden
  • mit verschiedenen Arten von Sammlungen in ksqlDB arbeiten und Push- und Pull-Abfragen durchführen
  • Setze deine Kafka Streams und ksqlDB-Anwendungen in der Produktion ein

Table of contents

  1. Vorwort
  2. Vorwort
    1. Wer sollte dieses Buch lesen?
    2. Navigieren in diesem Buch
    3. Quellcode
    4. Kafka Streams Version
    5. ksqlDB Version
    6. In diesem Buch verwendete Konventionen
    7. Code-Beispiele verwenden
    8. O'Reilly Online Learning
    9. Wie du uns kontaktierst
    10. Danksagungen
  3. I. Kafka
  4. 1. Eine schnelle Einführung in Kafka
    1. Kommunikationsmodell
    2. Wie werden die Streams gespeichert?
    3. Themen und Partitionen
    4. Veranstaltungen
    5. Kafka Cluster und Makler
    6. Verbrauchergruppen
    7. Kafka installieren
    8. Hallo, Kafka
    9. Zusammenfassung
  5. II. Kafka-Streams
  6. 2. Erste Schritte mit Kafka Streams
    1. Das Kafka-Ökosystem
      1. Vor Kafka Streams
      2. Kafka Streams eingeben
    2. Funktionen im Überblick
    3. Betriebliche Merkmale
      1. Skalierbarkeit
      2. Verlässlichkeit
      3. Instandhaltbarkeit
    4. Vergleich mit anderen Systemen
      1. Bereitstellungsmodell
      2. Verarbeitungsmodell
      3. Kappa Architektur
    5. Anwendungsfälle
    6. Prozessor-Topologien
      1. Unter-Topologien
      2. Depth-First-Verarbeitung
      3. Vorteile der Datenflussprogrammierung
      4. Aufgaben und Stream Threads
    7. High-Level-DSL vs. Low-Level-Prozessor-API
    8. Wir stellen unser Tutorial vor: Hallo, Streams
      1. Projekt einrichten
      2. Ein neues Projekt erstellen
      3. Hinzufügen der Kafka-Streams-Abhängigkeit
      4. DSL
      5. Prozessor-API
    9. Ströme und Tische
      1. Dualität Strom/Tisch
      2. KStream, KTable, GlobalKTable
    10. Zusammenfassung
  7. 3. Zustandslose Verarbeitung
    1. Zustandslose versus zustandsorientierte Verarbeitung
    2. Einführung in unser Tutorial: Verarbeitung eines Twitter-Streams
    3. Projekt einrichten
    4. Hinzufügen eines KStream-Quellprozessors
    5. Serialisierung/Desialisierung
      1. Bau einer benutzerdefinierten Serde
      2. Definieren von Datenklassen
      3. Einen benutzerdefinierten Deserializer implementieren
      4. Einen benutzerdefinierten Serialisierer implementieren
      5. Die Tweet-Serden bauen
    6. Daten filtern
    7. Daten verzweigen
    8. Tweets übersetzen
    9. Ströme zusammenführen
    10. Bereichernde Tweets
      1. Avro Datenklasse
      2. Stimmungsanalyse
    11. Avro-Daten serialisieren
      1. Registryless Avro Serdes
      2. Schema Registry-Aware Avro Serdes
    12. Hinzufügen eines Senkenprozessors
    13. Den Code ausführen
    14. Empirische Überprüfung
    15. Zusammenfassung
  8. 4. Zustandsbezogene Verarbeitung
    1. Vorteile der zustandsorientierten Verarbeitung
    2. Vorschau auf zustandsabhängige Operatoren
    3. Staatliche Läden
      1. Gemeinsame Merkmale
      2. Persistente versus In-Memory-Speicher
    4. Wir stellen unser Tutorial vor: Videospiel-Rangliste
    5. Projekt einrichten
    6. Datenmodelle
    7. Hinzufügen der Quellprozessoren
      1. KStream
      2. KTable
      3. GlobalKTable
    8. Registrierung von Streams und Tabellen
    9. Tritt bei
      1. Operatoren verbinden
      2. Typen verbinden
      3. Co-Partitionierung
      4. Wertschreiner
      5. KStream zu KTable Join (Spieler Join)
      6. KStream to GlobalKTable Join (Produkte Join)
    10. Datensätze gruppieren
      1. Ströme gruppieren
      2. Gruppentabellen
    11. Aggregationen
      1. Aggregieren von Streams
      2. Aggregierte Tabellen
    12. Alles zusammenfügen
    13. Interaktive Abfragen
      1. Materialisierte Stores
      2. Zugriff auf schreibgeschützte State Stores
      3. Abfrage von nicht-fenstergestützten Key-Value-Speichern
      4. Lokale Abfragen
      5. Fernabfragen
    14. Zusammenfassung
  9. 5. Fenster und Zeit
    1. Wir stellen unser Tutorial vor: Anwendung zur Patientenüberwachung
    2. Projekt einrichten
    3. Datenmodelle
    4. Zeitsemantik
    5. Zeitstempel-Extraktoren
      1. Enthaltene Zeitstempel-Extraktoren
      2. Benutzerdefinierte Zeitstempel-Extraktoren
      3. Streams mit einem Zeitstempel-Extraktor registrieren
    6. Windowing Streams
      1. Fenster-Typen
      2. Ein Fenster auswählen
      3. Gefensterte Aggregation
    7. Emittierende Fenster Ergebnisse
      1. Karenzzeit
      2. Unterdrückung
    8. Filtern und Umtippen von Fenstertabellen
    9. Fensterverbindungen
    10. Zeitgesteuerter Datenfluss
      1. Alarme Senke
      2. Abfrage von Key-Value-Speichern mit Fenster
    11. Zusammenfassung
  10. 6. Erweiterte Zustandsverwaltung
    1. Persistent Store Disk Layout
    2. Fehlertoleranz
      1. Changelog Themen
      2. Ersatzreplikate
    3. Rebalancing: Feind des Staates (Store)
    4. Verhinderung der Staatsmigration
      1. Klebrige Zuweisung
      2. Statische Mitgliedschaft
    5. Verringerung der Auswirkungen von Rebalances
      1. Inkrementelles kooperatives Rebalancing
      2. Kontrolle der Staatsgröße
    6. Deduplizierung von Schreibvorgängen mit Datensatz-Caches
    7. State Store Überwachung
      1. Hinzufügen von State Listenern
      2. Hinzufügen von State Restore Listenern
    8. Eingebaute Metriken
    9. Interaktive Abfragen
    10. Custom State Stores
    11. Zusammenfassung
  11. 7. Prozessor-API
    1. Wann wird die Prozessor-API verwendet?
    2. Wir stellen unser Tutorial vor: IoT Digital Twin Service
    3. Projekt einrichten
    4. Datenmodelle
    5. Hinzufügen von Quellprozessoren
    6. Hinzufügen zustandsloser Stream-Prozessoren
    7. Zustandslose Prozessoren erstellen
    8. Zustandsabhängige Prozessoren erstellen
    9. Periodische Funktionen mit Interpunktionszeichen
    10. Zugriff auf Datensatz-Metadaten
    11. Hinzufügen von Sink-Prozessoren
    12. Interaktive Abfragen
    13. Alles zusammenfügen
    14. Die Kombination der Prozessor-API mit der DSL
    15. Prozessoren und Transformatoren
    16. Alles zusammenfügen: Refactor
    17. Zusammenfassung
  12. III. ksqlDB
  13. 8. Erste Schritte mit ksqlDB
    1. Was ist ksqlDB?
    2. Wann wird ksqlDB verwendet?
    3. Entwicklung einer neuen Art von Datenbank
      1. Kafka Streams Integration
      2. Integration verbinden
      3. Was ist der Unterschied zwischen ksqlDB und einer herkömmlichen SQL-Datenbank?
      4. Ähnlichkeiten
      5. Unterschiede
    4. Architektur
      1. ksqlDB Server
      2. ksqlDB Klienten
    5. Einsatzmodi
      1. Interaktiver Modus
      2. Kopfloser Modus
    6. Tutorial
      1. Installieren von ksqlDB
      2. Einen ksqlDB Server betreiben
      3. Themen vorbereiten
      4. Verwendung der ksqlDB CLI
      5. Zusammenfassung
  14. 9. Datenintegration mit ksqlDB
    1. Kafka Connect Übersicht
    2. Externer versus integrierter Anschluss
      1. Externer Modus
      2. Eingebetteter Modus
    3. Konfigurieren von Connect Workern
      1. Konverter und Serialisierungsformate
    4. Tutorial
    5. Installieren von Verbindern
      1. Erstellen von Konnektoren mit ksqlDB
      2. Verbinder anzeigen
      3. Beschreiben von Verbindern
      4. Fallenlassen von Steckern
    6. Überprüfen des Source Connectors
    7. Direkte Interaktion mit dem Kafka Connect Cluster
    8. Introspektion von verwalteten Schemata
    9. Zusammenfassung
  15. 10. Grundlagen der Stream-Verarbeitung mit ksqlDB
    1. Tutorial: Änderungen bei Netflix überwachen
    2. Projekt einrichten
    3. Quelle Themen
    4. Datenarten
      1. Benutzerdefinierte Typen
    5. Sammlungen
      1. Erstellen von Quellensammlungen
      2. Mit Klausel
    6. Arbeiten mit Streams und Tabellen
      1. Ströme und Tabellen anzeigen
      2. Beschreiben von Strömen und Tabellen
      3. Ändern von Strömen und Tabellen
      4. Ströme und Tabellen fallen lassen
    7. Grundlegende Abfragen
      1. Werte einfügen
      2. Einfache Selects (transiente Push-Abfragen)
      3. Projektion
      4. Filtern
      5. Komplexe Strukturen abflachen/entschachteln
    8. Bedingte Ausdrücke
      1. Koaleszieren
      2. IFNULL
      3. Fallbeispiele
    9. Ergebnisse zurück nach Kafka schreiben (Persistent Queries)
      1. Abgeleitete Sammlungen erstellen
    10. Alles zusammenfügen
    11. Zusammenfassung
  16. 11. Fortgeschrittene und erweiterte Stream-Verarbeitung mit ksqlDB
    1. Projekt einrichten
    2. Bootstrapping einer Umgebung aus einer SQL-Datei
    3. Datenanreicherung
      1. Tritt bei
      2. Fensterverbindungen
    4. Aggregationen
      1. Grundlagen der Aggregation
      2. Gefensterte Aggregate
    5. Materialisierte Ansichten
    6. Kunden
    7. Pull-Abfragen
      1. Locke
    8. Push-Abfragen
      1. Push-Abfragen über Curl
    9. Funktionen und Operatoren
      1. Betreiber
      2. Funktionen anzeigen
      3. Funktionen beschreiben
      4. Benutzerdefinierte Funktionen erstellen
      5. Zusätzliche Ressourcen für benutzerdefinierte ksqlDB-Funktionen
    10. Zusammenfassung
  17. IV. Der Weg zur Produktion
  18. 12. Testen, Überwachen und Einsetzen
    1. Testen
      1. Testen von ksqlDB-Abfragen
      2. Kafka-Streams testen
      3. Verhaltenstests
      4. Benchmarking
      5. Kafka Cluster Benchmarking
      6. Abschließende Überlegungen zum Testen
    2. Überwachung
      1. Checkliste Überwachung
      2. JMX Metriken extrahieren
    3. Einsatz
      1. ksqlDB-Behälter
      2. Kafka Streams Container
      3. Container-Orchestrierung
    4. Betrieb
      1. Zurücksetzen einer Kafka-Streams-Anwendung
      2. Ratenbegrenzung für die Ausgabe deiner Anwendung
      3. Aktualisieren von Kafka-Streams
    5. Aktualisieren von ksqlDB
    6. Zusammenfassung
  19. A. Kafka Streams Konfiguration
    1. Konfigurationsmanagement
    2. Konfiguration Eigenschaften
      1. Verbraucherspezifische Konfigurationen
  20. B. ksqlDB Konfiguration
    1. Abfrage-Konfigurationen
    2. Server-Konfigurationen
    3. Sicherheitskonfigurationen
  21. Index

Product information

  • Title: Kafka Streams und ksqlDB beherrschen
  • Author(s): Mitch Seymour
  • Release date: September 2024
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781098189273