HBase একটি কলাম-ওরিয়েন্টেড ডেটাবেস, যা মূলত বৃহৎ আকারের ডেটা সঞ্চয় ও প্রক্রিয়া করার জন্য ডিজাইন করা হয়েছে। এর ডেটা মডেল সাধারণত চারটি মূল উপাদান দ্বারা গঠিত: টেবিল (Table), রো (Row), কলাম ফ্যামিলি (Column Family), এবং টাইমস্ট্যাম্প (Timestamp)। প্রতিটি উপাদানই HBase এর কার্যক্ষমতা এবং স্কেলেবিলিটিকে মজবুত করে।
টেবিল (Table)
HBase ডেটাবেসের সমস্ত ডেটা টেবিল (Table) আকারে সঞ্চিত থাকে। টেবিল HBase এর ডেটা মডেলের প্রাথমিক একক। প্রতিটি টেবিলের নাম থাকে এবং এটি একাধিক রো এবং কলাম ফ্যামিলি ধারণ করতে পারে। HBase তে প্রতিটি টেবিলকে একাধিক রো (Row) দ্বারা বিভক্ত করা হয়। সাধারণভাবে, HBase তে টেবিলের স্কিমা নির্ধারণ করা হয় না, অর্থাৎ টেবিলের কলাম এবং রোগুলো ডাইনামিকভাবে তৈরি করা যায়।
রো (Row)
HBase তে ডেটা রো (Row) আকারে সঞ্চিত থাকে। প্রতিটি রো একটি ইউনিক আইডেন্টিফায়ার দিয়ে চিহ্নিত হয়, যা রো কী (Row Key) নামে পরিচিত। রো কী হালনাগাদ করা যায় না, এবং এটি ডেটার অ্যাক্সেস ও পারফরমেন্সের জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে। রো কী একটি ইনডেক্স হিসেবে কাজ করে, যা HBase কে দ্রুত নির্দিষ্ট রো অ্যাক্সেস করতে সাহায্য করে।
কলাম ফ্যামিলি (Column Family)
HBase তে ডেটা কলাম ফ্যামিলি (Column Family) আকারে সঞ্চিত হয়। কলাম ফ্যামিলি মূলত ডেটার গোষ্ঠী, যেখানে একাধিক কলাম থাকতে পারে। একটি কলাম ফ্যামিলি একটি রো এর সঙ্গে সম্পর্কিত তথ্য গ্রুপ হিসেবে ব্যবহৃত হয় এবং এটি হোস্ট করা হয় আলাদা স্টোরেজ ইউনিটে। প্রতিটি কলাম ফ্যামিলি ডিফাইন করা হয় টেবিল তৈরির সময় এবং এটি একটি নির্দিষ্ট স্কিমা অনুসরণ করে। কলাম ফ্যামিলি বিভক্ত করা হয় যাতে ডেটার ফাস্ট অ্যাক্সেস এবং স্টোরেজ ইফিসিয়েন্সি উন্নত করা যায়।
কলাম ফ্যামিলির মধ্যে আরও কলাম থাকতে পারে। কলামগুলো একটি ইউনিক কলাম কুয়েরি (Column Qualifier) দ্বারা চিহ্নিত হয়, যা কলামের নাম হিসেবে কাজ করে।
টাইমস্ট্যাম্প (Timestamp)
HBase তে প্রতিটি ডেটা এন্ট্রি একটি টাইমস্ট্যাম্প (Timestamp) সহ সংরক্ষিত হয়, যা নির্দিষ্ট করে দেয় যে ওই ডেটা কখন রেকর্ড করা হয়েছে। HBase তে একই রো এবং কলাম ফ্যামিলির জন্য একাধিক ডেটা রেকর্ড থাকতে পারে, এবং টাইমস্ট্যাম্পের মাধ্যমে এই রেকর্ডগুলোর মধ্যে পার্থক্য করা হয়। এটি ডেটার ভার্সনিং (Versioning) নিশ্চিত করতে সাহায্য করে, এবং বিভিন্ন সময়ের মধ্যে রেকর্ড করা ডেটার তুলনা বা নির্বাচনের জন্য সহায়ক হয়।
HBase Data Model এর উদাহরণ
ধরা যাক, একটি Employee টেবিল রয়েছে যেখানে কর্মচারীদের তথ্য সঞ্চিত রয়েছে। এই টেবিলের মধ্যে নিচের উপাদানগুলো থাকতে পারে:
- টেবিল (Table): Employee
- রো (Row): প্রতিটি কর্মচারীর জন্য একটি রো, যেমন রো কী হিসেবে "emp001", "emp002" ইত্যাদি।
- কলাম ফ্যামিলি (Column Family): personal, professional
- personal কলাম ফ্যামিলির মধ্যে থাকতে পারে: নাম, বয়স, ঠিকানা
- professional কলাম ফ্যামিলির মধ্যে থাকতে পারে: পদ, বিভাগ, বেতন
- টাইমস্ট্যাম্প (Timestamp): প্রতিটি এন্ট্রি একটি নির্দিষ্ট টাইমস্ট্যাম্প দ্বারা চিহ্নিত হবে, যা প্রতিটি রেকর্ডের সঠিক সময় নির্ধারণ করবে।
সারাংশ
HBase এর ডেটা মডেল হল টেবিল, রো, কলাম ফ্যামিলি এবং টাইমস্ট্যাম্পের সমন্বয়ে গঠিত। এই মডেলটি HBase কে বড় পরিসরের ডেটা সঞ্চয় এবং দ্রুত অ্যাক্সেস করতে সক্ষম করে, যেখানে রো এবং কলাম ফ্যামিলি ডাইনামিকভাবে বৃদ্ধি ও পরিবর্তিত হতে পারে। টাইমস্ট্যাম্পের মাধ্যমে ডেটা ভার্সনিং সম্ভব হয়, যা HBase এর পারফরমেন্স এবং কার্যকারিতা বাড়ায়।
Read more