Buchbesprechung: DuckDB in Action

Daten aus diversen Quellen verarbeiten, mit SQL analysieren und das Ergebnis in diversen Formaten exportieren – das Buch "DuckDB in Action" zeigt, wie’s geht.

In Pocket speichern vorlesen Druckansicht 7 Kommentare lesen
Container in Reihe

(Bild: iX / generiert mit ChatGPT)

Lesezeit: 7 Min.
Von
  • Thorben Janssen
Inhaltsverzeichnis

Mark Needham, Michael Hunger, Michael Simons
DuckDB in Action
Manning Early Access Program (MEAP) 2023, erscheint vsl. August 2024
310 Seiten, ab ca. 22 Euro (E-Book)
ISBN: 978-1-63343725-8

Was wäre, wenn es ein Tool gäbe, mit dem es unglaublich einfach ist, Datensätze aus verschiedenen Quellen zu verarbeiten, sie mit SQL zu analysieren und das Ergebnis in verschiedenen Formaten zu exportieren? Und das ohne die ganze Komplexität, die wir von typischen relationalen Datenbanken oder einer benutzerdefinierten Implementierung kennen.

Thorben Janssen

(Bild: 

Thorben Janssen

)

Thorben Janssen löst als freiberuflicher Consultant und Trainer Persistenzprobleme mit JPA und Hibernate. Er ist Autor des Amazon-Bestsellers "Hibernate Tips – More than 70 solutions to common Hibernate problems" und internationaler Redner mit 20 Jahren Erfahrung mit JPA und Hibernate. Auf thorben-janssen.com schreibt er wöchentlich über Persistenzthemen und hilft Entwicklern im Persistence Hub, ihre Fertigkeiten zu verbessern.

Klingt zu schön, um wahr zu sein, oder?

Das dachte ich auch, als Michael Simons mich nach meiner Meinung zu seinen Kapiteln für das Buch "DuckDB in Action" fragte. Und ich wurde schnell eines Besseren belehrt.

Disclaimer: Als Rezensent habe ich ein kostenloses Exemplar dieses Buches erhalten, um Feedback zu einigen Kapiteln zu geben und eine ehrliche Buchkritik zu schreiben.

Mit "DuckDB in Action" haben Mark Needham, Michael Hunger und Michael Simons ein unterhaltsames Buch geschrieben. Sie vermitteln darin nicht nur die Grundlagen zu DuckDB, sondern zeigen mithilfe vieler Beispiele, wie sich verschiedenste praxisnahe Anforderungen umsetzen lassen.

"DuckDB in Action" ist ein unterhaltsames und leicht verständliches Buch, in dem die Autoren zeigen, wie man mit DuckDB verschiedene Aufgaben umsetzen kann. Das Buch ist vollgepackt mit kleinen Code-Beispielen, die der Leserschaft einen direkten Einstieg ermöglichen und sie zum eigenen Experimentieren und Ausprobieren anregen.

DuckDB ist eine eingebettete Analysedatenbank, die Daten aus verschiedenen Quellen verarbeiten, umwandeln, analysieren und die Ergebnisse in unterschiedlichen Formaten exportieren kann. Mich hat beim Lesen des Buches besonders fasziniert, wie einfach eine solche Verarbeitung implementiert werden und wie flexibel DuckDB mit unterschiedlichsten Daten umgehen kann.

Wie das genau funktioniert, erläutert das Buch detailliert und anhand vieler Beispiele.

Zum Zeitpunkt der Erstellung des Artikels ist "DuckDB in Action" noch Teil des Manning Early Action Program, das heißt, es handelt sich um eine Vorabversion. Allerdings sind alle elf Kapitel sowie der erste Teil des Anhangs bereits verfügbar.

Kapitel 1 und 2: Erste Schritte

Zu Beginn des Buches geben die Autoren eine kurze Einführung in DuckDB und einen Überblick über die Themen, die das Inhaltsverzeichnis bietet. Danach zeigen sie, wie man DuckDB installiert, die ersten Datensätze importiert und einfache Abfragen ausführt.

Kapitel 3 und 4: Analysieren der Daten

In Kapitel 3 vermitteln die Autoren die wichtigsten Konzepte von SQL. Sie zeigen, wie man ein Tabellenmodell in DuckDB erstellt, Daten importiert und einige grundlegende Abfragen durchführt. Leserinnen und Leser lernen dabei auch einige DuckDB-spezifische Erweiterungen von SQL kennen.

Danach gehen die Autoren auf fortgeschrittenere SQL- und DuckDB-spezifische Abfragefunktionen zur Datenanalyse ein. Sie erläutern unter anderem Fensterfunktionen, PIVOT-Anweisungen, Tabellenfunktionen, laterale Joins und mehr.

In meinem Arbeitsalltag beschäftige ich mich hauptsächlich mit der Optimierung von Persistenzschichten. Daher hatte ich an diesen Kapiteln das größte Interesse. Mir haben beide Kapitel sehr gut gefallen. Wer noch kein SQL-Experte ist, lernt in diesen beiden Kapiteln bestimmt etwas Neues und kann sein SQL-Verständnis vertiefen.

Kapitel 5: Daten verarbeiten, ohne sie zu speichern

Während der Lektüre des Buches war dies für mich das faszinierendste Kapitel. In der Vergangenheit habe ich für verschiedene Anwendungen Import- und Exportfunktionen erstellt. Die Unterstützung verschiedener Formate und die Implementierung der erforderlichen Transformationen waren dabei meist eine komplexe Aufgabe.

Wie die Autoren zeigen, kann DuckDB in diesen Situationen ein interessantes Werkzeug sein. Anstatt Daten in DuckDB zu speichern und anschließend zu analysieren, können sie auch aus verschiedenen Quellen gelesen, transformiert und direkt in das bevorzugte Format exportiert werden. Diese Formate können gängige Dateiformate wie Parquet, JSON und CSV oder sogar Tabellen in einer relationalen Datenbank sein.

Wenn ich das nächste Mal Importe oder Exporte erstellen muss, die unterschiedliche Formate unterstützen sollen, werde ich DuckDB auf jeden Fall ausprobieren.

Kapitel 6: Verwenden von DuckDB mit Python

Als Java-Entwickler habe ich keine praktische Erfahrung mit Python. Daher habe ich dieses Kapitel nur kurz überflogen. Mit Python vertraute Leserinnen und Leser erfahren in diesem Kapitel, wie man DuckDB mit Python verwenden und mit verschiedenen Bibliotheken integrieren kann.

Für alle Java-Entwicklerinnen und -Entwickler ist Anhang A deutlich interessanter. Hier erfahren sie, wie sich DuckDB mit verschiedenen Client-APIs kombinieren lässt.

(Bild: Manning)

Kapitel 7: DuckDB in der Cloud

DuckDB lässt sich lokal auf dem eigenen Rechner ausführen oder nach einer Registrierung bei MotherDuck in der Cloud betreiben. In Kapitel 7 zeigen die Autoren, was dafür notwendig ist und wie die unterschiedlichen DuckDB-APIs verwendet werden können.

Kapitel 8 und 9: Erstellen von Pipelines und Anwendungen

Basierend auf dem in den vorangegangenen Kapiteln Gelernten, können Datenpipelines und Anwendungen unter Verwendung von DuckDB erstellt werden. Kapitel 8 befasst sich mit Datenpipelines, erklärt die Rolle von DuckDB in verschiedenen Situationen und zeigt, wie man es mit häufig verwendeten Tools wie dbt und Dagster integriert.

Wer seinen Anwenderinnen und Anwendern die Analyse der Daten ermöglichen möchte, ohne dass diese SQL-Abfragen schreiben müssen, sollte Kapitel 9 lesen. Hier erfährt man, wie sich mit DuckDB benutzerdefinierte Datenanwendungen mit StreamLit bauen, die Daten mit Plot.ly visualisieren und Dashboards mit Apache Superset erstellen lassen.

Kapitel 10: Arbeiten mit großen Datensätzen

Jede Entwicklerin und jeder Entwickler hat sicherlich schon erlebt, wie eine wachsende Datenmenge bestehende Anwendungsprobleme verschlimmert – und scheinbar neue Probleme schafft. Denn große Datenmengen fügen der ohnehin schon komplexen Verarbeitungslogik noch weitere Performanzherausforderungen hinzu. Das ist natürlich auch beim Verwenden von DuckDB der Fall.

In Kapitel 10 geben die Autoren daher zahlreiche Tipps und Hinweise zum Umgang mit großen Datenmengen. Auch wenn das Thema selbst komplex und das Kapitel daher etwas schwerer verständlich ist als andere Teile des Buches, ist es erfahrenen Entwicklern (und allen, die es werden wollen) als Pflichtlektüre zu empfehlen.

Kapitel 11: Schlussfolgerung

Das letzte Kapitel des Buches bietet eine kurze Zusammenfassung aller im Buch behandelten Themen und liefert Links zu weiteren Ressourcen.

Anhang A: Client-APIs (einschließlich Java)

Wie bereits erwähnt, ist Anhang A ein interessantes Kapitel für alle Java-Entwickler. Sie erfahren hier, wie DuckDB mit verschiedenen Client-APIs verwendet werden kann. Dies schließt einen relativ langen Abschnitt über Java und DuckDBs JDBC-Treiber mit ein. Wer mit Python nicht vertraut ist, sollte dieses Kapitel auf jeden Fall lesen und damit nicht notwendigerweise bis zum Schluss warten.

DuckDB ist eine interessante Datenbank, und das Buch "DuckDB in Action" bietet eine gelungene Einführung. Als ich anfing, das Buch zu lesen, war ich vor allem an den SQL-Teilen interessiert, die die Kapitel 3 und 4 erklären. Ich stellte jedoch schnell fest, dass DuckDB viel mehr zu bieten hat, und daher habe ich mit großem Interesse das gesamte Buch gelesen.

Jedem, der eine interessante Datenbank kennenlernen möchte oder nach einer neuen Möglichkeit sucht, Daten aus verschiedenen Quellen zu verarbeiten und umzuwandeln, empfehle ich "DuckDB in Action" zu lesen.

(map)