30 Punkte von xguru 2024-06-13 | 5 Kommentare | Auf WhatsApp teilen
  • DuckDB ist eine SQL-Datenbank in einer einzigen Datei, die auf Datenanalyse spezialisiert ist
    • Die meisten Bewertungen von DuckDB konzentrieren sich tendenziell auf quantitative Analysen
    • Insbesondere bei der Geschwindigkeit zeigt DuckDB im Allgemeinen eine gute Performance
  • Aus Nutzersicht haben weitere Geschwindigkeitssteigerungen jedoch kaum noch Bedeutung, sobald die Performance ein zufriedenstellendes Niveau erreicht hat
    • Stattdessen ist Benutzerfreundlichkeit wichtiger, und genau hier hat DuckDB seine Stärken
  • Vorteile von DuckDB bei der Benutzerfreundlichkeit:
    1. Developer Experience
    2. Verarbeitung von Datensätzen, die größer als der Arbeitsspeicher sind
    3. Einfache Installation und Ausführung

Ergonomie

  • DuckDB wurde so entwickelt, dass sich gängige Aufgaben einfach erledigen lassen
    • So können beispielsweise Tabellen direkt aus Eingabedateien erzeugt und Schemas automatisch abgeleitet werden
    • Bei Parquet-Dateien können sogar Dateien aus dem Web gelesen werden
  • Daten lassen sich abfragen, ohne Tabellen vorab anzulegen
    • Die Funktion read_parquet gibt eine Relation zurück und kann daher als Unterabfrage verwendet werden
  • DuckDB unterstützt die meisten SQL-Funktionen, die auch in Postgres verwendet werden
    • So werden zum Beispiel Window Functions vollständig unterstützt

Verarbeitung von Datensätzen, die größer als der Arbeitsspeicher sind

  • Viele Datentools funktionieren nicht richtig, wenn der Datensatz größer als der Arbeitsspeicher des Computers wird
    • Das kann eine unterschätzte Quelle von Frust sein
  • DuckDB hingegen unterstützt Datensätze, die größer als der Arbeitsspeicher sind, vollständig
    • Bei Pandas können Probleme auftreten, wenn ein DataFrame mehr als 50 % des Systemspeichers belegt

Einfache Installation und Ausführung

  • DuckDB wird zu einer einzelnen ausführbaren Datei duckdb kompiliert
  • Über WASM kann DuckDB direkt im Browser ausprobiert werden (shell.duckdb.org)
    • Da es auf WASM basiert, läuft alles im Browser und nicht auf einem Server
  • DuckDB wie eine DataFrame-Bibliothek verwenden
    • DuckDB ist gut in Python integriert
    • Innerhalb von Python können Abfragen ausgeführt und Rückgabewerte weiterverwendet werden
      • So lassen sich schrittweise umfangreichere Datenoperationen aufbauen
    • Man erhält sowohl die Vorteile von SQL als auch die Vorteile von DataFrames

Datenspeicherung mit csvbase

  • Die Client-Bibliothek von csvbase kann über die fsspec API mit verschiedenen Systemen integriert werden
    • Ebenso kann DuckDB zusammen mit csvbase verwendet werden

Skalierbarkeit

  • DuckDB skaliert nicht auf Tausende von Maschinen
    • Apache Spark kann das zwar, bringt aber erhebliche Komplexität mit sich
  • Auch Skalierung nach unten ist wichtig
    • DuckDB funktioniert auf Ebene einzelner Nutzer und hat nicht viele Anforderungen

Zusammenfassung

  • DuckDB kann eine attraktive Wahl für Datenanalysten sein, die SQL beherrschen
  • Es kann Daten verarbeiten, die größer als der Arbeitsspeicher sind, ist einfach zu installieren und in vielen Fällen eine gute Alternative zu Spark

5 Kommentare

 
cometkim 2024-06-13

ParadeDB hat kürzlich eine gute Alternative hinzugefügt. https://blog.paradedb.com/pages/introducing_lakehouse

 
silveris23 2024-06-13

Besonders beim Erstellen einfacher interaktiver Dashboards mit Streamlit und ähnlichen Tools ist es wirklich gut.

 
brainer 2024-06-13

Lohnt sich dafür ein Wechsel von Huggingface Datasets?

 
hackerwins 2024-06-13

Ich experimentiere gerade damit, eine Tabellenkalkulation auf Basis von DuckDB zu bauen. Ich bin sehr gespannt auf DuckDB.