🎯 Definicja

DuckDB to wbudowana baza danych SQL typu OLAP (analityczna). Można o niej myśleć jak o “SQLite dla analityki”. Działa wewnątrz procesu aplikacji (np. Pythona), nie wymaga serwera, instalacji ani konfiguracji, a przetwarza miliony wierszy w ułamku sekundy dzięki formatowi kolumnowemu.

🔑 Kluczowe punkty

  • In-Process: Nie ma “połączenia sieciowego”. Baza siedzi w pamięci RAM twojego skryptu.
  • Kolumnowa: Zoptymalizowana do agregacji (SUM, AVG, GROUP BY), a nie transakcji (INSERT).
  • Zero-Copy: Potrafi czytać dane bezpośrednio z Pandas DataFrame lub plików Parquet bez ich kopiowania.
  • SQL: Pełne wsparcie dla standardu SQL.

📚 Szczegółowe wyjaśnienie

DuckDB wypełnia lukę między Pandas (dobre do małych danych, słabe SQL) a Sparkiem/Snowflake (dobre do Big Data, ale wymagają klastra). Pozwala robić zaawansowane SQL na plikach lokalnych (.csv, .parquet, .json) na zwykłym laptopie. Jest fundamentem trendu “Modern Data Stack in a Box”.

💡 Przykład zastosowania

Masz 10GB plików parquet z logami serwera na dysku. Chcesz policzyć liczbę błędów 500 na godzinę. W Pandas: Musiałbyś wczytać wszystko do RAM (może braknąć pamięci). W DuckDB: duckdb.query("SELECT hour, count(*) FROM 'logs/*.parquet' WHERE status=500 GROUP BY hour").df() DuckDB zrobi to strumieniowo, używając mało RAMu i wszystkich rdzeni procesora.

📌 Źródła

  • DuckDB.org Documentation.
  • “DuckDB: SQLite for Analytics”.

👽 Brudnopis

  • Idealne narzędzie dla Data Scientista i Inżyniera Danych do lokalnych testów.
  • Używane przez dbt (dbt-duckdb) do lokalnego developmentu.