Inhaltsverzeichnis
- Abstract
- Überblick
- Lernziele
- Zielgruppe
- Voraussetzungen
- Inhalte
- Praxis-Labs
- Technischer Rahmen
Abstract
Grundlegende Konzepte von Apache Arrow: Datenmodell, Speicherlayout, Schemas und Austauschformate. Fokus auf Verständnis, Interoperabilität und saubere Designentscheidungen für spätere Performance.
Dauer: 2 Tage
Format: Präsenz oder Live-Online
Überblick
Im Seminar werden die Bausteine von Arrow strukturiert aufgebaut: von Arrays und Buffern bis zu Tabellen, RecordBatches und Schema‑Evolution.
Neben dem Format werden typische Integrationspfade zwischen Python, JVM und Analyse‑Engines betrachtet, um Interop‑Risiken früh zu erkennen.
Lernziele
- Spaltenorientiertes Speichermodell erklären und auf eigene Datenstrukturen abbilden
- Schemas, Datentypen, Dictionaries, Unions und Nullability korrekt einsetzen
- Arrow IPC (Stream/File) sicher anwenden und Kompatibilitätsfallen vermeiden
- Zero‑Copy‑Datenaustauschprinzipien verstehen und Grenzen identifizieren
- Entscheidungskriterien: Arrow vs. row‑basierte Formate in konkreten Architekturen
Zielgruppe
- Data Engineers und Analytics Engineers
- Backend‑Entwickelnde für Datenservices
- Architekturen für Datenplattformen und Lakehouse‑Integrationen
- Teams, die Interoperabilität zwischen Sprachen/Engines standardisieren
Voraussetzungen
- Grundverständnis von Datenstrukturen (Arrays, Spalten, Datentypen)
- Programmierung in mindestens einer Sprache (Python, Java oder C++)
- Grundlagen zu Parquet/CSV hilfreich, aber nicht erforderlich
Inhalte
Modul 1: Datenmodell und Speicherlayout
- Arrays, Buffers, Validity Bitmap und Offset‑Buffer
- Fixed‑Width vs. Variable‑Width, Nested Types (List, Struct, Map)
- Dictionary Encoding und Speicher‑/CPU‑Trade‑offs
Modul 2: Schema‑Design und Kompatibilität
- Schema, Field Metadata, Nullability‑Strategien
- Schema‑Evolution: additive Änderungen, Typ‑Migrationen, Kompatibilitätsregeln
- Extension Types und Datenverträge
Modul 3: IPC und Datenaustausch
- IPC Stream vs. IPC File, RecordBatch‑Sequenzen, Dictionary Batches
- Chunking‑Strategien, Alignment und Cache‑Effekte
- Interoperabilität zwischen Toolchains
Modul 4: Einordnung im Ökosystem
- Arrow als Austauschschicht zwischen Engine, Service und Pipeline
- Typische Integrationsmuster und Anti‑Patterns
- Qualitätskriterien: Tests, Validierung, Reproduzierbarkeit
Praxis-Labs
Lab 1: Speicherlayout sichtbar machen
- Beispieldaten als Arrow Arrays und Tables erzeugen
- Validity Bitmaps und Offset‑Buffer inspizieren
- Nested Types (List/Struct) auf Buffer‑Strukturen abbilden
- Auswirkungen von Nulls und Dictionaries messen
Lab 2: IPC‑Austausch und Kompatibilität
- RecordBatches serialisieren (Stream und File)
- Schema‑Änderungen simulieren und kompatible vs. inkompatible Fälle unterscheiden
- Dictionary‑Batches testen und typische Fehlerbilder reproduzieren
- Validierungschecks als automatisierte Tests ergänzen
Lab 3: Zero‑Copy‑Interop in der Praxis
- Daten aus einer Engine in Arrow exportieren
- In einer zweiten Laufzeitumgebung einlesen und ohne Kopie weiterverarbeiten
- Grenzen identifizieren: Encoding, Endianness, Alignment, Large‑Types
- Checkliste für produktive Interop‑Pipelines erstellen
Technischer Rahmen
- Beispielcode in Python und optional Java
- Lokale Ausführung oder Container‑Setup
- Tools: Editor/IDE, CLI, einfache Benchmark‑Hilfen
- Übungsdaten: synthetische und realitätsnahe Tabellen
