DuckDB - एम्बेडेड OLAP DB ओपन सोर्स
(duckdb.org)"SQLite for Analytics"
-
जटिल analytics queries के लिए optimized embedded RDBMS
-
C++11 में लिखा गया, बिना dependencies वाला single binary जो host process के भीतर चलता है
-
Python/R/Java/C/C++/Node.js API उपलब्ध
-
SQLite की तरह DB एक ही file में store होता है
-
उपयुक्त use cases
→ CSV/Parquet जैसे tabular data का processing और storage
→ कई बड़े tables को Join & Aggregate करने वाला interactive data analysis
→ कई बड़े tables में एक साथ बड़े बदलाव करने के समय (कई rows जोड़ना या columns जोड़ना/हटाना/बदलना आदि)
6 टिप्पणियां
ऐसा लगता है कि एम्बेडेड DB में OLTP के लिए SQLite और OLAP के लिए DuckDB के रूप में विभाजन करने का लक्ष्य है।
हालांकि SQLite 20 साल पहले आया था और अब एम्बेडेड क्षेत्र पर लगभग कब्ज़ा कर चुका है, लेकिन DuckDB एक नया open source प्रोजेक्ट है, जिसकी 0.1 रिलीज़ आए अभी लगभग डेढ़ साल ही हुआ है. ^^
कुछ दिन पहले node.js API भी नया जोड़ा गया है, इसलिए अब इसे कई तरह से इस्तेमाल करना और आसान लग रहा है।
जब भी देखता हूँ, यही महसूस होता है कि OLTP और OLAP के बीच का फर्क मुझे अब भी साफ़-साफ़ समझ नहीं आता. टीटी. ऐसा भी लगता है कि कहीं कोई ऐसी सामग्री नहीं है जो इसे सच में खुलकर समझाए.
हाँ, आम तौर पर जो व्याख्या सुनने को मिलती है वह transaction और analysis (नाम के मुताबिक ही) की होती है, इसलिए मशहूर RDBs तो डेटा डालने-निकालने में भी तेज़ होते हैं और analysis कामों में भी तेज़ होते हैं। उदाहरण के लिए Oracle या PostgreSQL को किसी एक तरफ खास तौर पर specialized कहना भी मुश्किल है... और big data के दौर की analysis तो वैसे भी उन जैसे सिस्टमों से कब की बहुत आगे निकल चुकी लगती है, इसलिए आज भी OLTP और OLAP को अलग-अलग बाँटने का क्या मतलब है, बस मैं यही कह रहा था ^^;
OLTP डालना, निकालना, हटाना वगैरह जैसे कामों के लिए खास तौर पर उपयुक्त होता है.
OLAP में पहले से मौजूद चीज़ों को तरह-तरह से प्रोसेस करके उनका विश्लेषण किया जाता है.
मोटे तौर पर इसे ऐसे समझ सकते हैं, क्या ख़याल है?
उम्.. मैं इसे इस तरह समझाता हूँ
OLTP क्षैतिज है: कुछ पंक्ति-आधारित जोड़ा जाता है (नया ऑर्डर आता है)
OLAP ऊर्ध्वाधर है: किसी खास कॉलम को पूरा पढ़कर उस पर गणना करना या बदलाव करना (दैनिक बिक्री का औसत निकालना)
OLTP क्षैतिज है
OLAP ऊर्ध्वाधर है