DuckDb, আমরা সবাই SQLite এর নাম শুনেছি। ছোট ছোট অ্যাপ্লিকেশনে, মোবাইল ফোনে কিংবা এমবেডেড সিস্টেমে – যেখানে হালকা, ঝামেলাহীন ডাটাবেস দরকার, সেখানে SQLite হচ্ছে সবচেয়ে বেশি ব্যবহৃত সমাধান।

কিন্তু যদি ট্রানজ্যাকশনাল ডাটার পরিবর্তে তোমার দরকার হয় অ্যানালিটিক্স? যেমন: বড় ডাটাসেটে গড়ে কত বিক্রি হলো, একটা কলামে গড় টেম্পারেচার কত, বা টাইম সিরিজ ডাটায় ট্রেন্ড কী? তখন কিন্তু SQLite খুব একটা কাজে আসে না।
ঠিক এই জায়গাতেই DuckDB হাজির হয়।
DuckDB কী?
DuckDB হলো একটা ওপেন-সোর্স, এমবেডেবল SQL OLAP ডাটাবেস, যেটা ২০১৯ সালে নেদারল্যান্ডসে ডেভেলপ করা হয়েছে। এটা মূলত C++ এ লেখা এবং এর মূল ফোকাস হচ্ছে অ্যানালিটিক্স ও টাইম সিরিজ ডাটা প্রসেসিংকে দ্রুত ও সহজ করা।
এক কথায় বললে, যদি SQLite হয় “row-based lightweight database”, তাহলে DuckDB হলো “column-based lightweight database”।
Row Store vs Column Store
এখন প্রশ্ন হলো, কলাম-ভিত্তিক ডাটাবেস এত স্পেশাল কেন?
- Row-based storage (SQLite, MySQL ইত্যাদি):
এগুলো ট্রানজ্যাকশনাল ওয়ার্কলোডের জন্য পারফেক্ট। যেমন ই-কমার্স ওয়েবসাইটে যখন একজন ইউজারের পুরো অর্ডার একসাথে পড়তে বা লিখতে হবে। - Column-based storage (DuckDB):
এগুলো অ্যানালিটিক্স বা টাইম সিরিজ ডাটার জন্য দুর্দান্ত। ধরো, তোমার দরকার হলো “গত এক মাসের প্রতিদিনের গড় টেম্পারেচার কত?” তখন শুধুমাত্র একটি কলামের ডাটাই পড়তে হবে। কলাম-বেইজড স্টোরেজের কারণে এই কাজটা হয় অনেক দ্রুত।
Complete web development with Programming Hero
-৪৩০০+ জব প্লেসমেন্ট
– ৩ বেলা ডেডিকেটেড লাইভ সাপোর্ট
-১০০% জব প্লেসমেন্ট সাপোর্ট
-৮৫ টি মডিউল, ১২+ মাইলস্টোন
-ডেডিকেটেড হেল্প ডেস্ক ২৪/৭
কেন DuckDB ফাস্ট?
DuckDB ফাস্ট হওয়ার মূল কারণগুলো হলো:
- Columnar storage – এক কলামের ডাটা একসাথে স্টোর করা থাকে।
- Vectorized execution engine – ডাটা ছোট ছোট ব্যাচে (ভেক্টর আকারে) প্রসেস হয়। এতে CPU অনেকগুলো ভ্যালু একসাথে হ্যান্ডেল করতে পারে।
- Multi-threaded by default – একসাথে একাধিক কোর ব্যবহার করে ডাটাকে প্রসেস করা যায়।
ফলাফল? বড় বড় ডাটাসেটে অ্যাগ্রিগেশন, ফিল্টার বা জয়েন অনেক দ্রুত হয়।
কাদের মধ্যে জনপ্রিয়?
আশ্চর্যের ব্যাপার হলো, DuckDB এখন ইতিমধ্যেই Meta (Facebook), Google, এমনকি Airbnb এর মতো বড় বড় কোম্পানিতে ব্যবহার হচ্ছে।
কিভাবে শুরু করবে?
ব্যবহার করা খুবই সহজ।
- প্রথমে ইনস্টল করো (Linux, Mac, Windows – সবখানেই চলে)।
- টার্মিনালে
duckdb
রান করো। - এখন চাইলে সরাসরি SQL কমান্ড লিখতে পারো।
তুমি চাইলে .csv
বা .parquet
ফাইল থেকেও সরাসরি ডাটা পড়তে পারবে, আর সেটা আবার SQL দিয়ে প্রসেস করতে পারবে। শুধু তাই নয়, সেই ডাটাকে JSON বা HTML টেবিল আকারেও এক্সপোর্ট করতে পারবে।
টাইম সিরিজ ডাটায় ম্যাজিক
ধরো তোমার কাছে কোটি কোটি স্টক প্রাইস ডাটার লিস্ট আছে। এখন তোমার দরকার –
- দিনের গড় দাম (average)
- সর্বোচ্চ দাম (max)
- সর্বনিম্ন দাম (min)
SQL এর SELECT
আর GROUP BY
দিয়েই তুমি এগুলো খুব সহজে বের করতে পারবে। কিন্তু পার্থক্য হলো, DuckDB ভেতরে ভেতরে এগুলোকে ভেক্টর আকারে, মাল্টি-থ্রেডিং ব্যবহার করে প্রসেস করবে। যার ফলে রেজাল্ট আসবে মুহূর্তেই।
DuckDB হলো “SQLite for Analytics”। ছোট্ট, সহজে এমবেডেবল, কিন্তু অ্যানালিটিক্সের জন্য ভয়ংকর ফাস্ট। যদি তুমি বড় ডাটাসেট নিয়ে কাজ করো, টাইম সিরিজ অ্যানালাইসিস করো, বা কেবল সহজ কিন্তু শক্তিশালী ডাটাবেস খুঁজছো – তবে DuckDB একবার ট্রাই করতেই পারো।
Technology এর সকল আপডেট সবার আগে বিস্তারিত পেতে চেক করুন