HBase একটি কলাম-ওরিয়েন্টেড ডেটাবেস সিস্টেম যা বিশাল পরিমাণ ডেটার জন্য ব্যবহৃত হয়। HBase-এ ডেটা সাধারণত রো (Row) ভিত্তিক থাকে এবং এটি কলাম-ওরিয়েন্টেড আর্কিটেকচার অনুসরণ করে। ডেটা দ্রুত অ্যাক্সেস করার জন্য সাধারণত ইনডেক্সিং ব্যবহার করা হয়। HBase-এ সাধারণত দুটি ধরনের ইনডেক্স ব্যবহৃত হয়: Primary Index এবং Secondary Index। এই দুটি ইনডেক্সের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে।
Primary Index
Primary Index হল ইনডেক্স যা ডেটা সঞ্চয়ের সময় প্রথম থেকে তৈরি করা হয় এবং এটি টেবিলের Row Key এর ভিত্তিতে তৈরি হয়। Primary Index প্রতিটি রো এর জন্য একক এবং এটি HBase টেবিলের স্বাভাবিক গঠন অনুযায়ী তৈরি হয়। HBase-এ, Row Key টেবিলের প্রাথমিক ইনডেক্স হিসেবে কাজ করে, এবং এটি ডেটা অ্যাক্সেসের জন্য দ্রুততম পথ প্রদান করে।
Primary Index এর বৈশিষ্ট্য:
- Row Key ভিত্তিক: Primary Index Row Key এর উপর ভিত্তি করে তৈরি হয়। Row Key একটি টেবিলের প্রতিটি রোকে ইউনিকভাবে চিহ্নিত করে।
- স্বয়ংক্রিয়ভাবে তৈরি হয়: যখন টেবিল তৈরি করা হয় এবং ডেটা ইনসার্ট করা হয়, তখন Primary Index স্বয়ংক্রিয়ভাবে Row Key এর ভিত্তিতে তৈরি হয়।
- দ্রুত ডেটা অ্যাক্সেস: Primary Index Row Key ব্যবহার করে ডেটাকে দ্রুত অ্যাক্সেস করতে সাহায্য করে, কারণ Row Key একটি সঠিকভাবে সাজানো এবং দ্রুত খুঁজে পাওয়া যায় এমন কিপল ডেটা ফিচার।
- একটি টেবিলের জন্য একমাত্র ইনডেক্স: HBase টেবিলের জন্য একটি Primary Index থাকে, এবং Row Key এর ভিত্তিতে ডেটা খোঁজা হয়।
Primary Index এর সুবিধা:
- ডেটা দ্রুত অ্যাক্সেস করা সম্ভব, বিশেষত যখন Row Key তে ইনডেক্স করা হয়।
- কম জটিলতার সাথে ডেটা রিড/রাইট অপারেশন সম্পাদন করা সম্ভব।
Secondary Index
Secondary Index হল এমন একটি ইনডেক্স যা HBase টেবিলের কোনো নির্দিষ্ট কলাম বা কলাম ফ্যামিলির উপর ভিত্তি করে তৈরি করা হয়। Secondary Index সাধারণত Row Key ছাড়া অন্য কোনো কলামে ডেটার অনুসন্ধান করতে ব্যবহৃত হয়। HBase-এ Secondary Index তৈরি করা হলে, এটি Row Key এর বাইরেও ডেটার অনুসন্ধান করতে সক্ষম হয় এবং ব্যবহারকারীরা নির্দিষ্ট কলামের মাধ্যমে ডেটা খুঁজে পেতে পারেন।
Secondary Index এর বৈশিষ্ট্য:
- Non-Row Key ভিত্তিক: Secondary Index Row Key ছাড়া অন্যান্য কলাম বা কলাম ফ্যামিলির উপর তৈরি হয়।
- ব্যবহারকারীর কাস্টমাইজড: এটি সাধারণত ব্যবহারকারীদের কাস্টম রিকোয়ারমেন্ট অনুসারে তৈরি করতে হয়, যেহেতু এটি Row Key এর বাইরে ডেটা খোঁজার জন্য প্রয়োজন হয়।
- ডেটার দ্রুত অনুসন্ধান: Secondary Index নির্দিষ্ট কলাম বা কলাম ফ্যামিলির ভিত্তিতে ডেটা অনুসন্ধান করার জন্য তৈরি হয়, যা ডেটার অ্যাক্সেস গতি বাড়ায়।
- মেমরি এবং স্টোরেজের প্রভাব: Secondary Index তৈরি করার ফলে মেমরি এবং স্টোরেজ স্পেসের ব্যবহার বেড়ে যায়, কারণ এটি অতিরিক্ত ইনডেক্স ফাইল তৈরি করে।
Secondary Index এর সুবিধা:
- Row Key ছাড়া ডেটা অনুসন্ধান সম্ভব হয়, যা নির্দিষ্ট কলামের ভিত্তিতে ডেটা খোঁজার জন্য সুবিধাজনক।
- এটি এমন ক্ষেত্রের জন্য কার্যকর যেখানে Row Key এর ভিত্তিতে ডেটা খুঁজে পাওয়া সম্ভব নয় বা অনুচিত।
Primary এবং Secondary Index এর মধ্যে পার্থক্য
| বিষয় | Primary Index | Secondary Index |
|---|---|---|
| ভিত্তি | Row Key | নির্দিষ্ট কলাম বা কলাম ফ্যামিলি |
| স্বয়ংক্রিয়ভাবে তৈরি | হ্যাঁ (Row Key ভিত্তিক) | না, কাস্টমাইজড এবং ম্যানুয়ালভাবে তৈরি করতে হয় |
| ডেটা অ্যাক্সেসের গতি | দ্রুত এবং দক্ষ (Row Key অনুসারে) | Row Key ছাড়া নির্দিষ্ট কলামে ডেটা অনুসন্ধান করতে সাহায্য করে |
| ব্যবহার | Row Key এর মাধ্যমে দ্রুত অ্যাক্সেস | Row Key ছাড়া ডেটা অনুসন্ধান, বিশেষত কোনো নির্দিষ্ট কলামে |
| ইনডেক্সিং | একমাত্র ইনডেক্স (একটি টেবিলের জন্য) | একাধিক Secondary Index তৈরি করা যায় |
| মেমরি এবং স্টোরেজ | কম মেমরি এবং স্টোরেজ ব্যবহার (Row Key এর জন্য) | বেশি মেমরি এবং স্টোরেজ প্রয়োজন হতে পারে |
| ডেটার তাজাতা | ডেটা ইনসার্ট বা আপডেট করার পর তাজা থাকে | ডেটা পরিবর্তন হলে ইনডেক্স আপডেট করতে হতে পারে |
HBase এ Secondary Index ব্যবহার
HBase ডিফল্টভাবে Secondary Index সমর্থন করে না, তবে এটি কাস্টম ইমপ্লিমেন্টেশন ব্যবহার করে করা সম্ভব। সাধারণত, Apache Phoenix বা HBase Indexer এর মতো টুল ব্যবহার করে Secondary Index তৈরি করা হয়, যা HBase-এর উপর একটি ইনডেক্সিং স্তর যোগ করে এবং কলাম ভিত্তিক অনুসন্ধান সহজ করে তোলে।
সারাংশ:
- Primary Index হল HBase টেবিলের Row Key ভিত্তিক ইনডেক্স, যা ডেটার দ্রুত অ্যাক্সেসের জন্য ব্যবহৃত হয়।
- Secondary Index হল এমন একটি ইনডেক্স যা Row Key ছাড়া অন্যান্য কলাম বা কলাম ফ্যামিলি ভিত্তিক ডেটার অনুসন্ধান করে, তবে এটি ম্যানুয়ালি তৈরি করতে হয় এবং এতে অতিরিক্ত স্টোরেজ ও মেমরি খরচ হতে পারে।
Read more