آپاچی HBase یک سیستم مدیریت پایگاه داده ستونی می باشد که بر روی فایل سیستم هدوپ کار می کند. این پایگاه داده برای مجموعه داده های پراکنده که در عظیم داده امری متداول است مناسب می باشد. HBase بر خلاف پایگاه داده های رابطه ای از زبان SQL پشتیبانی نمی کند. در واقع HBase به هیچ عنوان یک پایگاه داده رابطه ای نیست. برنامه های تحت HBase مانند  MapReduceبه زبان جاوا نوشته می شوند. HBase زبانهای دیگری مانند Avro, REST و Thrift  را نیز پشتیبانی می کند.  

پایگاه داده HBase شامل مجموعه ای از جداول می باشد که هر جدول همانند یک پایگاه داده رابطه ای در بردارنده ردیف و ستون می باشد. هر جدولی باید یک ستون به عنوان کلید اولیه داشته باشد و تمامی اتصالات به جداول HBase باید با استفاده از این کلیدها صورت گیرد.

 

معماری پایگاه داده HBase:

پایگاه داده HBase یک نوع از پایگاههای داده "NoSQL" است. "NoSQL" .یک اصطلاح عمومی است به این معنی که پایگاه داده یک سیستم پایگاه داده رابطه ای نیست که بتواند از SQL  به عنوان زبان دسترسی اولیه اش پشتیبانی کند. انواع زیادی از پایگاه داده های NoSQL وجود دارد مثلا BerkeleyDB نمونه ای از یک پایگاه داده محلی NoSQL است، در حالی که HBase  یک پایگاه داده توزیع شده است. از لحاظ فنی، HBase در واقع بیشتر یک " محل ذخیره سازی داده ها"است تا اینکه بخواهد یک "پایگاه داده" باشد زیرا بسیاری از ویژگی های یک سیستم (پایگاه داده رابطه ای) RDBMS از جمله ستون های تایپ شده، ایندکسهای ثانویه، راه انداز و زبان های پرس و جوی پیشرفته را ندارد.

با این حال،   HBase ویژگی های بسیاری دارد که ازگسترش خطی و مدولار سرورها و ماشینها و سخت افزارها پشتیبانی می کند. خوشه بندی HBase با افزودن RegionServers ها که توسط سرورهای نسبتا ارزان قیمت میزبانی می شوند، گسترش می یابد. برای مثال، اگر یک خوشه از 10 تا 20 RegionServers گسترش یابد، از نظر ذخیره سازی و همچنین ظرفیت پردازش، دو برابر می شود. یک پایگاه داده رابطه ای نیز می تواند به خوبی مقیاس پذیر بوده و گسترش یابد اما محدودیت داشته و برای بهتر شدن کارایی و سرعت خود نیازمند سخت افزارهای خاص و گران قیمت است در حالیکه HBase  را می توان با استفاده از سخت افزار های ارزان گسترش داد. برخی از ویژگیهای HBase شامل موارد ذیل می شود:

  

·        خواندن و نوشتن بسیار پایدار داده ها: HBase یک منبع ذخیره سازی پایدار است. این ویژگی آن را برای جمع آوری داده هایی با سرعت بالا بسیار مناسب کرده است.

·        تقسیم خودکار داده ها: جداول HBase بر روی خوشه ها توزیع شده اند و این جداول بصورت خودکار با رشد مقدار داده ها بر روی خوشه ها مجددا توزیع می شوند.

·        یکپارچگی Hadoop  و HBase: HBase از فایل سیستم هدوپ به عنوان فایل سیستم توزیعی خود پشتیبانی می کند.

·        نگاشت – کاهش(MapReduce): HBase از پردازش موازی برنامه نگاشت – کاهش هدوپ بطور کامل پشتیبانی می کند.

·        رابط برنامه جاوا(Java API): HBase از یک رابط کاربری ساده برای مقاصد برنامه نویسی جاوا در پایگاه داده خود پشتیبانی می کند. 

 

برای درک بهتر ساختار و نحوه کار HBase  به شکل زیر توجه نمایید:

همانطور که در شکل بالا ملاحظه می کنید ساختار HBase بر روی فایل سیستم هدوپ (HDFS) قرار دارد  و با آن در حال تعامل است بطوری که با استفاده از مکانیسمهای این فایل سیستم، داده ها را ذخیره و بازیابی می نماید. سرورهای کلاستر(Region Server) یا خوشه های HBase متعدد بوده و داده ها بر روی آنها توزیع می شوند. حال هر کلاینت که بخواهد به داده ها بر روی این سرورها دسترسی داشته باشد با در نظر گرفتن نوع مجوز دسترسی یا می تواند بصورت مستقیم به هر کدام از سرورها متصل شده و فعالیت مورد نظر خود را اجرا کند و اینکه به Zookeeper متصل شود تا مکان داده های مورد نظر خود را شناسایی کرده و سپس به سرور مربوطه هدایت شود. در واقع Zookeeper اطلاعات و متا دیتای کل سیستم را نگهداری می کند و می تواند بصورت یک  مسیریاب درخواستها را به سرور مورد نظر ارسال کند.

 

چه زمانی باید از HBase استفاده کنیم؟

پایگاه داده HBsase برای تمام مسائل و اهداف مناسب نیست. بدین منظور به نکات زیر توجه کنید:

ابتدا مطمئن شوید که به اندازه کافی داده در اختیار دارید. اگر صدها میلیون یا میلیارد رکورد دارید در این صورت HBase یک گزینه مناسب برای کار شماست. اگر تنها چندین هزار یا میلیون ردیف داده دارید در این صورت پایگاه های داده رابطه ای انتخاب مناسبتری هستند زیرا ممکن است داده های شما بر روی یک ( یا دو) نود یا ماشین جای گرفته و باقی سرورهای خوشه بدون مصرف بمانند. مثلا در صورتی که یک رابط برای اتصال به فیسبوک و جمع آوری حجم بسیار زیادی داده و با سرعت بالا در اختیار دارید HBase  می تواند یکی از گزینه های شما باشد.

دوم اینکه مطمئن شوید می توانید بدون بکارگیری ویژگیهای پایگاه های داده رابطه ای مانند ستونهای نامگذاری شده، انواع ایندکسها بر روی جداول، تراکنشها، و زبانهای پرس و جوی پیشرفته به کار خود ادامه دهید. یک برنامه که برای تعامل با محیط پایگاه داده رابطه ای طراحی شده نمی تواند براحتی و تنها با تغییر درایور ارتباطی خود به یک پایگاه داده غیر رابطه ای مانند HBase متصل شود.

سوم اینکه باید مطمئن شوید سخت افزار کافی در اختیار دارید. حتی فایل سیستم هدوپ نیز با تعداد نودهای کمتر از 5 معمولا نمی تواند بخوبی کار کند.

پایگاه داده HBsase را می توان بخوبی و براحتی بر روی یک لپ تاپ نیز بکار گرفت اما این امر فقط جهت کاربردهای تستی و توسعه ای کاربرد دارد.