Kontakt aufnehmen

Schulungsübersicht

Modul 1: Grundlagen von Big Data & Spark

  • Überblick über das Big-Data-Ökosystem und die Rolle von Spark in modernen Datenplattformen
  • Verständnis der Spark-Architektur: Driver, Executoren, Cluster Manager, Lazy Evaluation, DAG und Ausführungsplanung
  • Unterschiede zwischen den RDD- und DataFrame-APIs und wann welcher Ansatz verwendet wird
  • Anlegen und Konfigurieren von SparkSession und Verständnis der Grundlagen der Anwendungskonfiguration

Modul 2: PySpark DataFrames

  • Lesen und Schreiben von Daten aus Enterprise-Quellen und -Formaten: CSV, JSON, Parquet und Delta
  • Arbeit mit PySpark DataFrames: Transformationen, Aktionen, Spaltenausdrücke, Filterung, Joins und Aggregationen
  • Implementierung fortgeschrittener Operationen wie Window-Funktionen, Behandlung von Zeitstempeln und Arbeit mit verschachtelten Daten
  • Umsetzung von Datenqualitätsprüfungen und Schreiben von wiederverwendbarem, wartbarem PySpark-Code

Modul 3: Kubernetes- & Docker-Grundlagen für Spark-Nutzer

  • Verständnis des Zusammenhangs zwischen Docker-Images und Kubernetes-Pods sowie Spark-Driver- und Executor-Prozessen – eine konzeptionelle Sichtweise für Cluster-Nutzer, nicht für Administratoren
  • Verständnis dessen, was passiert, wenn ein Spark-Job auf Kubernetes läuft: Pod-Scheduling, Ressourcenanforderungen und -limits sowie die Abbildung von Sitzungseinstellungen darauf
  • Verständnis dessen, was Sie über Spark-Sitzungsparameter steuern, im Gegensatz zu dem, was das Platform-Team über die Cluster-Vorrichtung steuert – und warum diese Grenze für das Tuning wichtig ist
  • Praktische Übung: Überprüfung eines laufenden Spark-on-Kubernetes-Jobs im Sandbox-Cluster und Identifizierung der Driver- und Executor-Pods

Modul 3: Konfiguration der Spark-Sitzung auf Kubernetes – Im Detail

  • Verständnis der Unterscheidung zwischen Anzahl und Größe von Executoren: Kompromisse zwischen Speicher und Kernen und wie man darüber nachdenkt
  • Speicherallokierung für Driver und Executoren, Speicher-Overhead und wie sich diese in Pod-Ressourcen übertragen
  • Dynamische Allokierung: Wie sie auf Kubernetes funktioniert, wann sie Ressourcen spart und wann nicht
  • Praktische Übung: Ausführung desselben Jobs unter verschiedenen Executor- und Kernkonfigurationen und Vergleich der Laufzeit und des Ressourceneinsatzes

Modul 5: Skalierungsverhalten & Kostenoptimierung

  • Verständnis dafür, wie das Hinzufügen oder Entfernen von Nodes das Verhalten des Jobs, die Abschlusszeit und den Ressourcenverbrauch ändert
  • Vergleich vieler kleiner Executoren mit wenigen großen: Kompromisse zwischen Performance und Kosten
  • Shuffle-Verhalten und Tuning von Shuffle-Partitionen, einschließlich der Schätzung der Kostenauswirkung von Konfigurationsentscheidungen
  • Praktische Übung: Skalierung des Sandbox-Clusters von fünf auf zehn Nodes und Beobachtung der Auswirkungen auf die Job-Abschlusszeit und den Ressourcenverbrauch

Modul 6: Effiziente Datenübernahme & Partitionierung

  • Verständnis des Problems kleiner Dateien: Warum Quellen, die über viele Parquet-Dateien von 1–5 MB verteilt sind, die Performance beeinträchtigen und die Partitionierung verzerren
  • Strategien zur Re-Partitionierung und Koaleszenz
  • Steuerung der Partitiongrößen beim Lesen und Schreiben
  • Effizientes Schreiben von Parquet, um das Problem kleiner Dateien nachgelagert zu vermeiden
  • Praktische Übung: Laden eines Datensatzes, der aus vielen kleinen Parquet-Partitionen besteht, Anwendung verschiedener Re-Partitionierungsstrategien und Vergleich der Performance vor und nach der Optimierung

Modul 7: Speicherverwaltung & Fehlerdiagnose in Pandas

  • Verständnis der Ursachen für Out-of-memory-Fehler in Pandas und Erkennung der Symptome
  • Anwendung speichereffizienter Konversionsmuster zwischen Spark und Pandas
  • Vermeidung von Speicheraufblähung beim Schreiben großer Datensätze nach CSV
  • Einsatz von Chunking und dtype-Optimierung in ressourcenbeschränkten Umgebungen
  • Praktische Übung: Reproduktion eines typischen Pandas-Out-of-memory-Szenarios und Behebung mittels Chunking und dtype-Optimierung

Modul 8: Polars als ergänzendes Werkzeug

  • Positionierung von Polars im Verhältnis zu Pandas: Leistungsmerkmale, Lazy Evaluation und Speicherverhalten
  • Verständnis dafür, wo Polars neben PySpark und Pandas in modernen Cloud-Daten-Stacks und Migrationsroadmaps seinen Platz findet, einschließlich AWS-Umgebungen
  • Praktische Übung: Umschreiben einer Pandas-lastigen Transformation in Polars und Vergleich der Speichernutzung und der Verarbeitungsgeschwindigkeit

Modul 9: Anwendung der Optimierung auf ETL- & ML-Workloads

  • Anwendung von Konfigurations-, Partitionierungs- und Speicherverwaltungsprinzipien in einer realistischen ETL-Pipeline
  • Verständnis von Optimierungserwägungen, die spezifisch für Machine-Learning-Workloads auf demselben Cluster sind
  • Anwendung eines praktischen Tuning-Workflows zur systematischen Diagnose von Kosten- und Leistungsproblemen
  • Praktische Übung: Abschluss eines End-to-End-Mini-Projekts, das Datenladen, Transformation und einen einfachen Modelltrainingsschritt kombiniert, wobei die Teilnehmer die Spark-Konfiguration selbst tunen

Voraussetzungen

Die Teilnehmer sollten über folgendes verfügen:

  • Praktische Erfahrung in Python-Programmierung, einschließlich Funktionen, Module und grundlegende objektorientierte Konzepte.
  • Grundlegende bis mittlere Erfahrung in der Arbeit mit Pandas und tabellarischen Datenverarbeitungs-Workflows.
  • Grundlegende Vertrautheit mit PySpark und Spark DataFrames, einschließlich des Lesens von Daten, Transformationen, Aktionen, Joins und Aggregationen.
  • Ein allgemeines Verständnis von SQL- und Datenverarbeitungskonzepten, einschließlich Filterung, Gruppierung und Verknüpfung von Datensätzen.
  • Grundlegende Vertrautheit mit Docker- und Kubernetes-Konzepten, wie Containern, Images und Pods. Keine Erfahrung in der Kubernetes-Administration ist erforderlich.
  • Grundlegendes Verständnis gängiger Datenformate wie CSV, JSON und Parquet.

Die Teilnehmer müssen keine Kubernetes-Administratoren oder Infrastrukturspezialisten sein. Der Kurs konzentriert sich darauf, wie Data Engineers, Entwickler und Data Scientists ihre auf Kubernetes laufenden Spark-Workloads aus Sicht der Anwendung und Konfiguration verstehen und optimieren können.

Zielgruppe

Dieser Kurs richtet sich an Fachkräfte, die Datenverarbeitungs- und Machine-Learning-Workloads mit Python und Spark in Cloud- oder containerbasierten Umgebungen entwickeln, pflegen oder optimieren.

Er ist besonders geeignet für:

  • Data Engineers, die mit PySpark, verteilten Datenverarbeitung und ETL-Pipelines arbeiten.
  • Data Scientists, die große Datensätze verarbeiten oder Machine-Learning-Workloads mit Spark, Pandas oder Polars ausführen.
  • Python-Entwicklern, die an datenintensiven Anwendungen arbeiten und die Speichereffizienz und Verarbeitungsperformance verbessern möchten.
  • Machine-Learning-Engineers, die Datenbereitstellungs- und Modelltraining-Workloads in geteilten Kubernetes- oder Cloud-Umgebungen verwalten.
  • Analytics Engineers, die mit großen Datensätzen arbeiten und die Effizienz der Datenverarbeitung steigern möchten.
  • DevOps-, Plattform- und Cloud-Engineers, die Spark-Workloads auf Kubernetes unterstützen und verstehen müssen, wie anwendungsspezifische Konfigurationen den Ressourceneinsatz und die Performance beeinflussen.
  • Technischen Leitern und Lösungsarchitekten, die an der Gestaltung oder Optimierung moderner Datenverarbeitungsplattformen beteiligt sind.
 21 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (1)

Kommende Kurse

Verwandte Kategorien