DuckDB: Rychlá analýza dat bez instalace

Zpět na blog

DuckDB: Rychlá analýza dat bez instalace

DuckDB SQL Python Pandas Data

Během krátké doby si DuckDB dokázala získat značnou popularitu jako databáze pro analytické zpracování dat. A zároveň si kolem sebe vytvořila širokou komunitu, která nadšeně propaguje její výhody všude, kde se dá.

Co je DuckDB

DuckDB je rychlá databáze díky které můžete analyzovat data na vašem laptopu. A nejen na něm. Funguje na všech operačních systémech, můžete ji snadno propojit s programovacími jazyky a navíc je zdarma.

Další její výhodou je rychlá instalace - stačí stáhnout a spustit jediný soubor. Na rozdíl od tradičních databází, není nutné žádné nastavování.

Prostě na příkazovém řádku spustíte soubor duckdb a můžete začít.

Rychlá analýza

DuckDB je optimalizovaná pro datovou analýzu (OLAP) a čištění a úpravu dat (ETL). Její architektura je přizpůsobená výše uvedeným potřebám a proto není vhodná pro transakční systémy (OLTP).

V porovnání např. s pythonovskou knihovnou Pandas má několik výhod:

  • Zvládne větší datové sady.
  • Je rychlejší.
  • Umí lépe pracovat s pamětí.
  • Nabízí API pro spolupráci s programovacími jazyky.
  • Její přátelské SQL je pro mnoho uživatelů příjemnější než syntaxe Pythonu a Pandas.

Sami tvůrci o ní mluví jako o SQLite pro datovou analýzu.

Bezproblémový import a export

Mnoho uživatelů určitě potěší široká podpora různých datových formátů pro import a export - např.:

  • CSV,
  • Excel,
  • JSON,
  • Parquet,
  • přímé napojení na databáze (RDBMS)
  • a další.

Většinu těchto formátů dokáže načíst automagicky, to znamená, že stačí zadat cestu k souboru. Umí načítat i externí data, např. z cloudových úložišť nebo přes HTTPS.

Přátelské SQL

Autoři kladou důraz na tzv. friendly SQL.

DuckDB standardní SQL, které znáte z ostatním databázových systémů, rozšiřuje a přináší navíc další, uživatelsky příjemnou syntaxi.

Následující SQL jsou z pohledu DuckDB stejná:

SELECT * 
FROM 'zoo.csv' 
LIMIT 3;
FROM 'zoo.csv' 
LIMIT 3;

Ano, opravdu v druhém příkladu chybí SELECT!

Když ho vynecháte, DuckDB to chápe jako SELECT * a vybere všechny sloupce.

Pokud máte pocit, že je logičtější začínat FROM, DuckDB vám ráda vyhoví.

FROM 'zoo.csv' 
SELECT * 
LIMIT 3;

Data nemusíte načítat lokálně, ale rovnou z internetu:

SELECT * 
FROM 'https://www.lovelydata.cz/media/files/zoo.csv' 
LIMIT 3;

Funkce

Následující dvě SQL jsou z pohledu DuckDB stejné:

SELECT 
  nazev_cz, 
  lower(nazev_cz) AS "Název (malá písmena)"
FROM 'https://www.lovelydata.cz/media/files/zoo.csv' 
LIMIT 3;
SELECT 
  nazev_cz, 
  (nazev_cz).lower() AS "Název (malá písmena)"
FROM 'https://www.lovelydata.cz/media/files/zoo.csv' 
LIMIT 3;

Databázové funkce se dají volat a řetězit pomocí tečky. Tím se podobají syntaxi např. Pythonu.

Je na uživateli, který způsob je mu příjemnější. Někomu vyhovuje vnořování funkcí do závorek, jiný zas preferuje tečkovanou syntaxi.



Alternativa Pythonu a Pandas

Pokud analyzujete data - a ani nemusíte být datový analytik nebo datový vědec - je typickým pracovním postupem načtení dat ze souboru CSV nebo jiného zdroje dat. Následuje čištění a úprava, po kterých konečně může začít samotná analýza.

V praxi se pro tyto účely často používá Python v kombinaci s knihovnou Pandas. Data se filtrují, spojují, agregují - a to vše pomocí syntaxe v Pythonu.

Jenže pro mnoho uživatelů je příjemnější toto vše provádět pomocí SQL. Také se jim nechce na svůj počítač instalovat databázový systém, protože pak často zápasí s konfigurací serveru a klienta.

S DuckDB toto vše odpadá, protože stačí spustit jediný soubor a můžete hned začít pracovat s daty.

Rozsáhlý ekosystém

I když je DuckDB relativně mladá databáze (vývoj začal v roce 2018), začíná se její komunita rozrůstat a s tím i počet různých nástrojů a integrací.

Existuje dokonce stránka Awesome DuckDB, která se tento ekosystém snaží zmapovat.

Závěrem

DuckDB šetří váš čas, protože se snadno používá a efektivně se dotazuje na jakákoli data.

Místo toho, abyste při načítání dat a dotazování využívali klasický databázový systém RDBMS, stačí použít DuckDB.

Pokud vám standardní práce v terminálu (CLI) nevyhovuje, můžete využít JDBC konektory, které dovolí využívat DuckDB spolu se standardními SQL klienty, jako je např. SQL Workbench/J, DBeaver, apod.


Líbil se vám článek? Sdílejte ho s ostatními

nebo nám napište něco hezkého. Děkujeme!

Zpět na blog

Python - základy

Naučte se základy Pythonu - populárního jazyka, který vzal datovou vědu doslova útokem.

Zobrazit kurz

Pandas - analýza a zpracování dat

Naučte se základy Pandas - pythonovské knihovny, která je standardem pro analýzu a zpracování dat.

Zobrazit kurz

OK, Python

Automatizujte rutinní práci v Excelu, nechte za sebe pracovat Python a zjednodušte si život.

Zobrazit knihu

Hledáme další autory

Publikujte na Lovely Blogu a inspirujte ostatní! Sdílením svých znalosti si budujete osobní značku.

Kontaktujte nás

Odběr novinek

Novinky, návody a tipy přímo do vašeho emailu.

Copyright © 2018-2024, Colorbee, s.r.o.

Designed by grafikli.cz in Prague.