2024-10-04

Analyse der DuckDB-Nutzerumfrage

Gábor Szárnyas

Anfang dieses Jahres haben wir in der DuckDB-Community eine Umfrage durchgeführt. Uns interessierten vor allem folgende Themen:

  1. Wie nutzen die Leute DuckDB?
  2. Wo nutzen sie DuckDB?
  3. Was gefällt ihnen an DuckDB?
  4. Welche Verbesserungen wünschen sie sich in künftigen Releases?

Die Umfrage war etwa drei Wochen offen. Mehr als 500 Personen haben geantwortet, unter den Teilnehmenden haben wir 20 T-Shirts und Hoodies verlost.

Zusammenfassung

Die wichtigsten Ergebnisse der Umfrage:

Schauen wir uns die Details an!

DuckDB nutzen

Umgebungen

Wir haben nach der Umgebung gefragt, in der DuckDB eingesetzt wird: Die meisten, 87 %, führen DuckDB auf dem Laptop aus. Das passt zur ursprünglichen Vision hinter DuckDB: ein System, das die Hardware moderner Endgeräte nutzt. 29 % nutzen DuckDB auf Desktop-Workstations, 58 % auf Servern (Aufschlüsselung später im Abschnitt „Servertypen“).

DuckDB-Umgebungen

Clients

Wenig überraschend wird DuckDB am häufigsten aus Python genutzt (73 %), gefolgt von der eigenständigen Kommandozeilenanwendung (47 %). Platz drei ist heiß umkämpft: R, WebAssembly (!) und Java liegen bei jeweils rund 14 %, gefolgt von Node.js (JavaScript) mit 9 %.

DuckDB-Clients

Die nächsten Plätze mit je 6–7 % belegen ODBC, Rust und Go. Schließlich rundet Arrow (ADBC) die Top 10 mit 5 % ab.

Betriebssysteme

Die meisten, 61 %, führen DuckDB auf Linux-Servern aus. Dazu zählen Cloud-Instanzen, On-Premises-Installationen und Continuous-Integration-(CI-)Runner. Windows-Desktop und macOS haben einen ähnlichen Anteil, 41–45 %. Weitere 9 % nutzen DuckDB auf Windows-Servern.

DuckDB-Plattformen

Die Zahl der Linux-Desktop-Nutzer hat uns überrascht. Während der Marktanteil von Linux-Desktop weltweit bei etwa 4,5 % liegt, gaben 29 % der Befragten an, DuckDB auf Linux-Desktop zu nutzen! Wir vermuten, das liegt an DuckDBs Beliebtheit bei Data Engineers, die oft Linux-Desktop nutzen – wegen der Anpassbarkeit und der Ähnlichkeit zu Linux-Server-Umgebungen.

Servertypen

Wie im Abschnitt „Umgebungen“ beschrieben, läuft DuckDB oft auf Servern. Aber wie groß sind diese Server, und wo werden sie betrieben? Kleine Server (unter 16 GB Speicher) und mittelgroße Server (16–512 GB Speicher) sind beide beliebt: 56 % bzw. 61 % der Nutzer geben an, DuckDB darauf auszuführen. Etwa 14 % der Befragten nutzen DuckDB auf Servern mit mehr als 0,5 TB Speicher.

Servergröße

Zum Ort der Server: On-Premises und AWS liegen mit je 27 % gleichauf. Danach folgen zwei weitere Clouds, Microsoft Azure und Google Cloud Platform. Schließlich führen etwa 4 % DuckDB auf Hetzner-Servern aus.

Serverstandorte

Daten

Datenformate

Wir haben nach den Datenformaten gefragt, die mit DuckDB genutzt werden. Parquet ist das beliebteste Format: 79 % der Nutzer geben an, es zu verwenden. CSV liegt mit 73 % dicht dahinter. JSON ist ebenfalls beliebt: klassisches JSON 42 %, NDJSON 11 %. Etwa ein Drittel nutzt Arrow.

Datenformate

Datensatzgrößen

Wir haben nach der Größe des größten mit DuckDB verarbeiteten Datensatzes gefragt. Datensatzgröße haben wir als Größe der Daten im unkomprimierten CSV-Format definiert. Für Parquet-Dateien und DuckDB-Datenbankdateien sollten die Nutzer die CSV-Größe näherungsweise als das Fünffache der Dateigröße angeben.

Die Antworten zeigen: Nur wenige Befragte nutzen DuckDB für Big Data. Bei drei Vierteln lag der größte Datensatz unter 100 GB, 20 % haben einen Datensatz zwischen 100 GB und 1 TB verarbeitet, etwa 5 % sind in den Bereich über 1 TB vorgedrungen. Etwa 1 % haben Datensätze über 10 TB verarbeitet. Das passt zu Statistiken aus einem aktuellen Redshift-Nutzungsdatensatz von Jordan Tigani von MotherDuck und zur aktuellen Analyse der Snowflake- und Redshift-Datensätze von George Fraser von Fivetran.

Datensatzgrößen

Diese Ergebnisse sind natürlich etwas verzerrt – wer riesige Datensätze knacken muss, arbeitet (noch) vielleicht nicht mit DuckDB –, die Schieflage zu kleineren Datensätzen ist aber deutlich und zeigt, dass viele reale Anwendungsfälle mit kleinen bis mittelgroßen Datensätzen lösbar sind. Die Ergebnisse zeigen auch, dass DuckDB viele Probleme auf Datensätzen über 1 TB lösen kann.

Features

Beliebteste Features

Uns hat interessiert: Was gefällt den Nutzern an DuckDB am besten? Der Plot zeigt die häufigsten Antworten: Beliebteste DuckDB-Features

Das beliebteste Feature ist hohe Performance. Außerdem schätzen die Nutzer Dateiformatunterstützung (CSV, Parquet, JSON usw.), Einfachheit, umfangreiche SQL-Unterstützung (einschließlich Friendly SQL) und In-Memory-Integrationen wie Unterstützung für Pandas, Arrow und NumPy. Schließlich wurden geringer Speicherverbrauch, Protokollunterstützung (z. B. HTTPS, S3), Datenbankintegrationen und Portabilität genannt.

Feature-Wünsche

Wir haben nach den Features gefragt, die sich die Nutzer in künftigen DuckDB-Versionen am meisten wünschen. Die beliebtesten Wünsche stehen in der Tabelle:

Feature Anteil
Verbesserte Partitionierung und Optimierungen rund um Partitionierung 39%
Bessere Unterstützung für Zeitreihen und Optimierungen für vorsortierte Daten 35%
Unterstützung für materialisierte Sichten 28%
Unterstützung für Vektorsuche 24%
Unterstützung für das Anbinden von Datenbanksystemen über ODBC 24%
Unterstützung für Time-Travel-Queries (Abfrage der Datenbank zu einem Zeitpunkt) 23%
Unterstützung für das Delta-Lake-Format 22%
Bessere Iceberg-Unterstützung (einschließlich Schreiben) 17%

Seit der Umfrage (vor v1.0.0; DuckDB steht jetzt bei Version 1.1.1) sind einige dieser Wünsche bereits Realität:

An weiteren gewünschten Features wird bei DuckLabs gearbeitet. Bleiben Sie dran!

Nutzerrollen

Wir haben die Befragten gebeten, ihre Hauptrollen in der Organisation anzugeben. Die Top-5-Antworten:

Nutzerrollen

Keine Überraschung: DuckDB ist in den „Data“-Rollen beliebt: 26 % der Befragten sind Data Engineers, 14 % Data Scientists, 9 % Data Analysts. Der Anteil der Software Engineers war überraschend hoch: 23 %. Schließlich gaben etwa 2 % an, dass ihre primäre Rolle DBA ist.

Fazit

Wir danken allen Teilnehmenden, die sich Zeit für die Umfrage genommen haben. Die Antworten fließen in die künftige Entwicklung von DuckDB ein, und wir hoffen, dass diese Auswertung auch für die Leserinnen und Leser informativ ist.