- DuckDB एक single-file SQL database है, जो data analysis के लिए विशेष रूप से बनाया गया है
- DuckDB के ज़्यादातर मूल्यांकन quantitative analysis पर केंद्रित होते हैं
- खासकर speed के मामले में DuckDB आम तौर पर अच्छा performance दिखाता है
- लेकिन user के नज़रिए से, एक बार performance संतोषजनक स्तर पर पहुँच जाए तो उसके बाद की अतिरिक्त speed का ज़्यादा महत्व नहीं रहता
- इसके बजाय ease of use ज़्यादा महत्वपूर्ण हो जाती है, और DuckDB इस मामले में बढ़त रखता है
- DuckDB की ease of use के फ़ायदे:
- developer experience
- memory से बड़े datasets को संभालने की क्षमता
- install और run करना आसान
Ergonomics
- DuckDB को इस तरह डिज़ाइन किया गया है कि सामान्य काम आसानी से किए जा सकें
- उदाहरण के लिए, input file से सीधे table बनाया जा सकता है और schema infer किया जा सकता है
- Parquet file के मामले में web पर मौजूद files भी पढ़ी जा सकती हैं
- पहले से table बनाए बिना भी data को query किया जा सकता है
read_parquet function relation लौटाता है, इसलिए इसे subquery की तरह इस्तेमाल किया जा सकता है
- DuckDB, Postgres में इस्तेमाल होने वाले ज़्यादातर SQL features को support करता है
- उदाहरण के लिए, window functions पूरी तरह supported हैं
memory से बड़े datasets को संभालना
- कई data tools तब ठीक से काम नहीं करते जब dataset computer memory से बड़ा हो जाता है
- यह दर्द का एक कम आंका गया स्रोत हो सकता है
- इसके विपरीत, DuckDB memory से बड़े datasets को पूरी तरह support करता है
- Pandas के मामले में, dataframe अगर system memory के 50% से ज़्यादा हो जाए तो समस्याएँ आ सकती हैं
आसान install और run
- DuckDB को एक single executable
duckdb के रूप में compile किया जाता है
- WASM के ज़रिए browser में सीधे DuckDB का अनुभव लिया जा सकता है (shell.duckdb.org)
- क्योंकि यह WASM आधारित है, इसलिए सब कुछ server पर नहीं बल्कि browser में चलता है
- DuckDB को dataframe library की तरह इस्तेमाल करना
- DuckDB, Python के साथ अच्छी तरह integrate होता है
- Python के भीतर query चलाकर उसके return value का उपयोग किया जा सकता है
- इससे step-by-step बड़े data operations बनाए जा सकते हैं
- SQL और dataframe, दोनों के फ़ायदे एक साथ मिल सकते हैं
csvbase के ज़रिए data storage
- csvbase की client library, fsspec API के माध्यम से कई तरह के systems के साथ integrate हो सकती है
- इसी तरह DuckDB को भी csvbase के साथ इस्तेमाल किया जा सकता है
Scalability
- DuckDB हज़ारों machines तक scale नहीं करता
- इसके उलट Apache Spark ऐसा कर सकता है, लेकिन इसके साथ काफ़ी complexity भी आती है
- scaling down भी महत्वपूर्ण है
- DuckDB individual user स्तर पर काम करता है और इसकी बहुत ज़्यादा requirements नहीं हैं
सारांश
- DuckDB, SQL जानने वाले data analysts के लिए एक आकर्षक विकल्प हो सकता है
- यह memory से बड़े data को संभाल सकता है, install करना आसान है, और कई मामलों में Spark का अच्छा विकल्प बन सकता है
5 टिप्पणियां
ParadeDB ने हाल ही में एक अच्छा विकल्प जोड़ा है। https://blog.paradedb.com/pages/introducing_lakehouse
खासकर streamlit आदि के साथ सरल interactive dashboard बनाते समय यह वाकई बहुत अच्छा है।
क्या यह Huggingface Datasets से स्विच करने लायक होगा?
मैं DuckDB पर आधारित एक spreadsheet बनाने का प्रयोग कर रहा हूँ। DuckDB को लेकर मैं बहुत उत्साहित हूँ।
DuckDB - Embedded OLAP DB ओपन सोर्स
डेटा के बिना भी डेटाबेस बन जाने वाला DuckDB
नए jq के रूप में DuckDB
DuckDB 1.0.0 रिलीज़