DuckDB एक ओपन-सोर्स, कॉलम-ओरिएंटेड रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है, जिसे एम्बेडेड कॉन्फ़िगरेशन में उच्च-प्रदर्शन विश्लेषणात्मक क्वेरी के लिए डिज़ाइन किया गया है। यह ऑनलाइन विश्लेषणात्मक प्रसंस्करण (OLAP) कार्यभार को लक्षित करता है, जैसे कि सैकड़ों कॉलम और अरबों पंक्तियों वाली तालिकाओं को संयोजित करना, न कि लेन-देन (OLTP) अनुप्रयोगों को। पारंपरिक क्लाइंट-सर्वर डेटाबेस के विपरीत, DuckDB एक होस्ट प्रक्रिया के अंदर चलता है, जो इसे इंटरैक्टिव डेटा विश्लेषण, स्क्रिप्टेड पाइपलाइनों और Python जैसे उपकरणों के साथ एकीकरण के लिए उपयुक्त बनाता है। हाल की गणनाओं के अनुसार, परियोजना प्रति माह 6 मिलियन से अधिक डाउनलोड की रिपोर्ट करती है।
सिस्टम एक वेक्टराइज़्ड क्वेरी प्रोसेसिंग इंजन के चारों ओर बनाया गया है, जिसमें C++17 कंपाइलर के अलावा कोई बाहरी निर्भरता नहीं है। DuckDB का SQL पार्सर Lukas Fittl द्वारा pg_query लाइब्रेरी से लिया गया है, जो स्वयं PostgreSQL के पार्सर का एक छोटा संस्करण है। डेटा को या तो Apache Parquet फ़ाइलों में या एकल-फ़ाइल भंडारण प्रारूप में संग्रहीत किया जा सकता है, दोनों कुशल स्कैन और बल्क संचालन के लिए अनुकूलित हैं। DuckDB Emscripten के माध्यम से WebAssembly में भी संकलित होता है, जो ब्राउज़र-आधारित विश्लेषण उपकरणों में SQL निष्पादन को सक्षम बनाता है।
इतिहास
DuckDB को मूल रूप से Mark Raasveldt और Hannes Mühleisen द्वारा नीदरलैंड के Centrum Wiskunde & Informatica (CWI) में विकसित किया गया था। सह-संस्थापकों का उद्देश्य तेज़ विश्लेषणात्मक क्वेरी के लिए एक इन-प्रोसेस OLAP डेटाबेस बनाना था, जो SQLite जैसे एम्बेडेड डेटाबेस द्वारा छोड़े गए अंतर को भरता है जो लेन-देन प्रसंस्करण पर केंद्रित हैं। पहला सार्वजनिक रिलीज़ 2019 में दिखाई दिया, और संस्करण 1.0.0, कोडनेम SnowDuck, 3 जून 2024 को जारी किया गया था।
वास्तुकला और विशेषताएं
DuckDB एक वेक्टराइज़्ड क्वेरी प्रोसेसिंग इंजन का उपयोग करता है, जो व्यक्तिगत पंक्तियों के बजाय डेटा के बैचों पर संचालित होता है। यह डिज़ाइन विकल्प विश्लेषणात्मक कार्यभार के लिए थ्रूपुट में काफी सुधार करता है। सिस्टम अपने Python बाइंडिंग के माध्यम से उपयोग किए जाने पर डेटा को सीधे NumPy सरणियों में रख सकता है, और अतिरिक्त API के माध्यम से अन्य भाषाओं का समर्थन करता है। DuckDB का भंडारण प्रारूप एक एकल फ़ाइल है जो कुशल स्कैन और बल्क अपडेट, ऐपेंड और डिलीट के लिए डिज़ाइन किया गया है। इसका पार्सर, PostgreSQL से लिया गया, SQL संगतता की उच्च डिग्री बनाए रखता है।
अन्य प्रणालियों के साथ तुलना
DuckDB का OLAP क्षेत्र का अर्थ है कि यह Microsoft SQL Server, PostgreSQL, या Oracle database जैसी पारंपरिक रिलेशनल डेटाबेस प्रबंधन प्रणालियों के साथ सीधे प्रतिस्पर्धा नहीं करता है। जबकि यह क्वेरी के लिए SQL का उपयोग करता है, DuckDB सर्वरलेस अनुप्रयोगों को लक्षित करता है और Apache Parquet फ़ाइलों या अपने स्वयं के भंडारण प्रारूप से पढ़ते समय अत्यंत तेज़ प्रतिक्रिया प्रदान करता है। यह बड़े डेटासेट के इंटरैक्टिव विश्लेषण के लिए एक लोकप्रिय विकल्प बनाता है, जहां यह इन-प्रोसेस कार्यभार के लिए पारंपरिक क्लाइंट-सर्वर डेटाबेस से बेहतर प्रदर्शन कर सकता है।
व्यावसायिक अपनाना और शासन
DuckDB का उपयोग Facebook, Google और Airbnb सहित कंपनियों में विश्लेषणात्मक कार्यों के लिए किया जाता है। सह-लेखक Hannes Mühleisen DuckLabs चलाते हैं, जो एक समर्थन और परामर्श फर्म है जिसे पहले DuckDB Labs के रूप में जाना जाता था। DuckLabs ने जानबूझकर उद्यम पूंजी वित्तपोषण से परहेज किया है, Mühleisen ने कहा, "हमें लगता है कि निवेश परियोजना की दिशा को मुद्रीकरण की ओर धकेल देगा, और हम DuckDB को यथासंभव अधिक से अधिक लोगों के लिए खुला और उपलब्ध रखना पसंद करेंगे।" अगस्त 2026 में, DuckLabs को Amazon द्वारा अधिग्रहित किया गया था, इसके कर्मचारी Amazon Web Services सहायक कंपनी में शामिल हुए। अलग से, MotherDuck, जो DuckDB पर एक डेटा प्लेटफ़ॉर्म बना रही है, ने $100 मिलियन का वित्तपोषण जुटाया है, जिसमें Andreessen Horowitz सहित निवेशक शामिल हैं।
स्वतंत्र गैर-लाभकारी DuckDB Foundation परियोजना की अधिकांश बौद्धिक संपदा रखती है और इसकी ओपन-सोर्स स्थिति की रक्षा करती है। धर्मार्थ दान द्वारा वित्तपोषित, फाउंडेशन के क़ानून यह सुनिश्चित करते हैं कि DuckDB स्थायी रूप से MIT लाइसेंस के तहत बना रहे।
तकनीकी अवलोकन
DuckDB का वेक्टराइज़्ड इंजन डेटा को बैचों में संसाधित करता है, जो विश्लेषणात्मक क्वेरी के लिए उच्च थ्रूपुट सक्षम करता है। यह C और C++ के अलावा Python, R, Java और अन्य सहित प्रोग्रामिंग भाषाओं की एक विस्तृत श्रृंखला का समर्थन करता है, मूल बाइंडिंग के माध्यम से। Python एकीकरण डेटा को सीधे NumPy सरणियों में रख सकता है, जो डेटा विज्ञान और Machine learning में कार्यप्रवाह को सुविधाजनक बनाता है। DuckDB Artificial intelligence पाइपलाइनों के साथ बातचीत के लिए बाइंडिंग भी प्रदान करता है, जहां तेज़ इन-प्रोसेस विश्लेषणात्मक क्वेरी मॉडल अनुमान कार्यों को पूरक करती हैं।
इसकी वास्तुकला एक्सटेंशन का समर्थन करती है, जो कार्यक्षमता जोड़ने के लिए गतिशील रूप से लोड होते हैं। DuckDB टीम द्वारा बनाए रखा गया मुख्य एक्सटेंशन में HTTP, HTTPS और S3-संगत भंडारण के माध्यम से दूरस्थ फ़ाइल एक्सेस के लिए httpfs शामिल है (v1.5 से Azure लेखन समर्थन के साथ); v1.5 से अंतर्निहित GEOMETRY प्रकार के साथ भू-स्थानिक कार्यों के लिए spatial; REST कैटलॉग समर्थन के साथ Apache Iceberg तालिका पढ़ने/लिखने के लिए iceberg; Delta Kernel के माध्यम से Delta Lake एकीकरण के लिए delta; और ducklake, एक लेकहाउस प्रारूप जिसमें ACID सिमेंटिक्स, टाइम ट्रैवल और स्कीमा विकास शामिल है। 30 से अधिक सामुदायिक एक्सटेंशन ग्राफ़ क्वेरी (SQL/PG) से लेकर Kafka एकीकरण और मशीन-लर्निंग अनुमान तक के उपयोग के मामलों को कवर करते हैं।
अन्य डेटाबेस के साथ तुलना
DuckDB का OLAP फोकस इसे Microsoft SQL Server, PostgreSQL और Oracle Database जैसे पारंपरिक DBMS से अलग करता है। जबकि यह क्वेरी के लिए SQL का उपयोग करता है, यह सर्वरलेस अनुप्रयोगों को लक्षित करता है और Parquet फ़ाइलों या अपने स्वयं के भंडारण प्रारूप को पढ़ते समय तेज़ प्रतिक्रिया प्रदान करता है। यह इसे इंटरैक्टिव बड़े-डेटासेट विश्लेषण के लिए एक लोकप्रिय विकल्प बनाता है, विशेष रूप से डेटा विज्ञान और विश्लेषण वातावरण में जहां यह मौजूदा Machine learning स्टैक को पूरक करता है। यह OLTP प्रणालियों को बदलने के लिए डिज़ाइन नहीं किया गया है; इसके बजाय, यह विश्लेषणात्मक कार्यभार के लिए उनके साथ बैठता है।
अपनाना और व्यावसायिक पारिस्थितिकी तंत्र
DuckDB का उपयोग Facebook, Google और Airbnb में बड़े पैमाने पर डेटा विश्लेषण के लिए किया जाता है। परियोजना के सह-लेखक Hannes Mühleisen DuckLabs (पूर्व में DuckDB Labs) चलाते हैं, जो एक समर्थन और परामर्श फर्म है। DuckLabs ने जानबूझकर उद्यम पूंजी वित्तपोषण से परहेज किया है, यह कहते हुए कि निवेश परियोजना को मुद्रीकरण की ओर धकेल देगा, DuckDB को खुला रखना पसंद करते हैं। अगस्त 2026 में, DuckLabs को Amazon द्वारा अधिग्रहित किया गया था; इसके कर्मचारी Amazon Web Services सहायक कंपनी में शामिल हुए। अलग से, MotherDuck ने DuckDB पर आधारित डेटा प्लेटफ़ॉर्म के लिए $100 मिलियन का वित्तपोषण जुटाया, जिसमें Andreessen Horowitz सहित निवेशक शामिल हैं।
DuckDB Foundation
स्वतंत्र गैर-लाभकारी DuckDB Foundation परियोजना के दीर्घकालिक रखरखाव और विकास की रक्षा करती है। यह अधिकांश बौद्धिक संपदा रखती है और धर्मार्थ दान द्वारा वित्तपोषित है। फाउंडेशन के क़ानून यह सुनिश्चित करते हैं कि DuckDB स्थायी रूप से MIT लाइसेंस के तहत ओपन-सोर्स बना रहे, परियोजना को व्यावसायिक कब्जे से बचाते हुए। यह शासन संरचना, DuckLabs द्वारा उद्यम पूंजी से बचने के निर्णय के साथ, तकनीक को व्यापक रूप से सुलभ रखने की प्रतिबद्धता को दर्शाती है।
भाषा समर्थन और एक्सटेंशन
DuckDB मूल C और C++ API प्रदान करता है, साथ ही Python, R, Java, Julia और अन्य जैसी भाषाओं के लिए अतिरिक्त बाइंडिंग भी। Python एकीकरण क्वेरी परिणामों को सीधे NumPy सरणियों में रखने की अनुमति देता है, जो डेटा विज्ञान और Machine learning संदर्भों में सहज कार्यप्रवाह को सुविधाजनक बनाता है। एक्सटेंशन सिस्टम इन-ट्री और सामुदायिक-अनुरक्षित मॉड्यूल दोनों का समर्थन करता है, जिसमें httpfs एक्सटेंशन HTTP, HTTPS और S3-संगत ऑब्जेक्ट स्टोरेज के माध्यम से दूरस्थ फ़ाइल एक्सेस सक्षम करता है, जिसमें संस्करण 1.5 से Azure लेखन समर्थन शामिल है। spatial एक्सटेंशन ST_* परिवार में भू-स्थानिक कार्य प्रदान करता है, और GEOMETRY v1.5 में एक अंतर्निहित कोर प्रकार बन गया। लेकहाउस परिदृश्यों के लिए, DuckDB क्रमशः Apache Iceberg और Delta Lake तालिका प्रारूपों के लिए iceberg और delta एक्सटेंशन प्रदान करता है।
उपयोग के मामले और प्रदर्शन
DuckDB का उपयोग अक्सर डेटा विज्ञान कार्यप्रवाह में किया जाता है जहां उपयोगकर्ता Python इंटरप्रेटर या Jupyter नोटबुक से बड़े डेटासेट पर इंटरैक्टिव रूप से क्वेरी करते हैं, परिणामों को सीधे NumPy सरणियों में रखते हैं। इसका उपयोग विश्लेषण उपकरणों में भी किया जाता है जो WebAssembly के माध्यम से ब्राउज़र में चलते हैं। क्योंकि यह क्लाइंट-सर्वर नेटवर्क परत के ओवरहेड से बचता है, DuckDB Parquet या अपने स्वयं के कॉलमर प्रारूप में संग्रहीत डेटा पर उप-सेकंड प्रतिक्रिया दे सकता है। यह इसे एम्बेडेड विश्लेषण, बैच प्रोसेसिंग और हल्के डेटा परिवर्तन कार्यों के लिए एक व्यावहारिक विकल्प के रूप में स्थान देता है, जिससे उपयोगकर्ता समर्पित डेटाबेस क्लस्टर तैनात किए बिना बड़े पैमाने पर डेटा संभाल सकते हैं।
भाषा समर्थन
मूल C और C++ API के अलावा, DuckDB Python, R, Java, Node.js और अन्य भाषाओं के लिए बाइंडिंग प्रदान करता है, जो इसे विविध Large language model विकास स्टैक और सामान्य डेटा टूलिंग में सुलभ बनाता है। Python पैकेज इंटरैक्टिव विश्लेषण और उत्पादन पाइपलाइनों में व्यापक रूप से उपयोग किया जाता है, अक्सर जब डेटासेट उपलब्ध RAM से अधिक हो जाते हैं तो इन-मेमोरी डेटाफ्रेम के ड्रॉप-इन प्रतिस्थापन के रूप में।
एक्सटेंशन और पारिस्थितिकी तंत्र
एक्सटेंशन सिस्टम कोर इंजन को पुनः संकलित किए बिना गतिशील लोडिंग की अनुमति देता है। सामुदायिक एक्सटेंशन ग्राफ़ क्वेरी से लेकर Kafka एकीकरण और ML अनुमान तक विविध उपयोग के मामलों को कवर करते हैं। DuckDB टीम कई मुख्य एक्सटेंशन बनाए रखती है, आधिकारिक रजिस्ट्री में 30 से अधिक अतिरिक्त सामुदायिक-अनुरक्षित सूचीबद्ध हैं। यह पारिस्थितिकी तंत्र भू-स्थानिक विश्लेषण, दूरस्थ डेटा एक्सेस और आधुनिक डेटा लेक प्रारूपों के साथ एकीकरण सहित विश्लेषणात्मक परिदृश्यों की एक विस्तृत श्रृंखला का समर्थन करता है।
संदर्भ
- Woodie, Alex. "DuckDB Walks to the Beat of Its Own Analytics Drum." 5 मार्च 2024।