مقدمه و تاریخچه

آپاچی هایو یک پروژۀ نرم افزاری انبار داده است که بر روی ساختار آپاچی هدوپ ایجاد شده و برای خلاصه سازی داده ها، پرس و جو و تجزیه و تحلیل آنها بکار می رود. هایو یک رابط کاربری شبه SQL دارد که برای پرس و جوی داده های ذخیره شده در پایگاه داده ها وفایل سیستم های مختلف بکار می رود. روش کار این پایگاه داده بدین صورت است که پرس و جوهای SQL سنتی باید در رابط جاوای MapReduce بکار برده شوند تا بتوانند برنامه های SQL و پرس و جو ها روی داده های توزیع شده را اجرا کنند. از آنجاییکه اکثر برنامه های انباره داده با زبان پرس و جو مبتنی بر SQL کار می کنند، بدین صورت هایو قابلیت انتقال و تبدیل برنامه های مبتنی بر SQL به هدوپ را میسر می کند. در حالی که هایو در ابتدا توسط فیس بوک توسعه یافته است،اما بعدها توسط شرکت های دیگری مانند Netflix نیز مورد استفاده قرار گرفته است. آمازون نیز یک رابط نرم افزاری از آپاچی هایو را در خدمات داده ه ای خود ارائه می دهد.

 

ویژگیهای هایو

آپاچی هایو تجزیه و تحلیل داده های عظیم ذخیره شده در فایل سیستم توزیع شده هدوپ (HDFS) وفایل سیستمهای سازگار مانند Amazon S3 را پشتیبانی می کند. این پایگاه داده یک زبان پرس و جو مشابه SQL به نام HiveQL ارائه کرده و پرس و جوها را به صورت واضح به برنامه های MapReduce, Apache Tez و اسپارک تبدیل می کند. سایر ویژگیهای هایو شامل:

·        امکان ساخت ایندکس برای افزایش سرعت و بازدهی پرس و جوها

·        انواع مختلف  فرمتهای ذخیره سازی مانند متن ساده، RCFile، HBase، ORC و غیره.

·        ذخیره سازی متاداده ها در سیستم مدیریت پایگاه داده رابطه ای که به طور قابل توجهی زمان انجام کنترل های معنایی در هنگام اجرای پرس و جو را کاهش می دهد.

·        امکان کار بر روی داده های فشرده شده و ذخیره شده در اکوسیستم هدوپ با استفاده از الگوریتمهایی از قبیل DEFLATE, BWT, snappy و غیره

·        امکان ساخت توابع تعریف شده توسط کاربر (UDFs) برای تغییر و اصلاح تاریخ، رشته ها، و دیگر ابزارهای داده کاوی.

 

معماری و نحوه کار پایگاه داده هایو

این پایگاه داده دارای اجزاء و عناصری می باشد که در تعامل با یکدیگر جریان ذخیره و بازیابی داده ها را بر روی فایل سیستم هدوپ امکان پذیر می نمایند. با شناخت نحوه کار این اجزاء بهتر می توان به کارایی این پایگاه داده پی برد. در شکل زیر شمایی کلی از این اجزاء به نمایش در آمده است.

 

Metastore: این عنصر از ساختارآپاچی هایو ابر داده های(Metadata) پایگاه داده برای هر یک از جداول مانند اسکیما و مکان جداول را ذخیره می کند. این عنصر همچنین شامل اطلاعات مربوط به پارتیشن ها می باشد که به درایور کمک می کند فرایند و میزان رشد مجموعه داده های توزیع شده بر روی کلاستر را ردیابی کند.

Driver: مانند کنترل کننده ای عمل می کند که عبارتها و دستورات HiveQL را دریافت می کند. این عنصر از ساختار هایو با ایجاد ارتباط و مانیتور کردن چرخه کاردستورات را اجرا کرده و پیشرفت اجرای دستورات را کنترل می کند.

Compiler: این جزء از ساختار هایوعمل کامپایل پرس و جوها را انجام می دهد و ساختار پرس و جو را به یک برنامه اجرا شونده تبدیل می کند.این برنامه در بر دارنده قدمها و وظایف مورد نیاز برای تبدیل پرس و جو به نتیجه مورد نظر است

Optimizer: تغییرات مختلفی را بر روی برنامه اجرای پرس و جوها اعمال می کند تا به بهترین برنامه برای اجرای سریعتر و بهینه پرس و جوها دست یابد

Executer: پس از کامپایل و بهینه سازی، اجرا کننده، وظایف و پرس و جوها را اجرا می کند.این عنصر در تعامل با job tracker هدوپ وظایف را برنامه ریزی و زمان بندی می کند تا در موعد خود اجرا شوند.

CLI/ UI/ Thrift Server: یک رابط خط فرمان (CLI) یک رابط کاربری جهت اعمال دستورات برای یک کاربر خارجی تا با اجرای پرس و جوها، دستورات و مانیتور روند کار بتواند با هایو تعامل داشته باشد. thrift server به کاربران خارجی اجازه تعامل با هایو از طریق شبکه همانند پرتکلهای JDBC و ODBC را امکانپذیر می نماید.