Apache Hive یک سیستم انبار داده توزیعشده و مقاوم در برابر خطا است که امکان تحلیل در مقیاس وسیع را فراهم میکند. انبار داده یک محل مرکزی برای ذخیره اطلاعات است که میتواند به راحتی مورد تجزیه و تحلیل قرار گیرد تا تصمیمات مبتنی بر دادههای آگاهانه اتخاذ شود. Hive به کاربران این امکان را میدهد که با استفاده از SQL، به خواندن، نوشتن و مدیریت پتابایتها داده بپردازند.
Hive بر روی Apache Hadoop ساخته شده است، که یک چارچوب متنباز است که برای ذخیرهسازی و پردازش کارآمد مجموعههای داده بزرگ طراحی شده است. به همین دلیل، Hive بهطور نزدیک با Hadoop یکپارچه شده و بهگونهای طراحی شده است که به سرعت بر روی پتابایتها داده عمل کند. ویژگی منحصر به فرد Hive، قابلیت پرسوجو بر روی مجموعههای داده بزرگ با استفاده از Apache Tez یا MapReduce و رابطی شبیه SQL است.
Hive چگونه کار میکند؟
Hive بهمنظور این طراحی شده است که به افرادی که با SQL آشنا هستند اما برنامهنویس نیستند، امکان کار با پتابایتها داده را بدهد. این کار با استفاده از رابطی شبیه SQL به نام HiveQL انجام میشود. پایگاههای داده رابطهای سنتی برای پرسوجوهای تعاملی بر روی مجموعههای داده کوچک تا متوسط طراحی شدهاند و در پردازش مجموعههای داده بزرگ عملکرد خوبی ندارند. در عوض، Hive از پردازش دستهای استفاده میکند تا بهسرعت بر روی یک پایگاه داده توزیعشده بسیار بزرگ عمل کند. Hive پرسوجوهای HiveQL را به کارهای MapReduce یا Tez تبدیل میکند که بر روی چارچوب زمانبندی کار توزیعشده Apache Hadoop، یعنی YARN، اجرا میشوند. Hive دادهها را از یک راهحل ذخیرهسازی توزیعشده، مانند سیستم فایل توزیعشده (HDFS) از Hadoop یا Amazon S3، پرسوجو میکند. Hive متادیتای پایگاه داده و جداول خود را در یک متااستور (metastore) ذخیره میکند که یک داده یا دیتابیس فایل پشتیبان است و امکان انتزاع و کشف آسان دادهها را فراهم میکند.
Hive شامل HCatalog است که یک لایه مدیریت جدول و ذخیرهسازی است و دادهها را از متااستور Hive میخواند تا یکپارچگی بدون درز بین Hive، Apache Pig و MapReduce را تسهیل کند. با استفاده از متااستور HCatalog به Pig و MapReduce این امکان را میدهد که از ساختارهای داده یکسان با Hive استفاده کنند، بنابراین نیازی به تعریف مجدد متادیتا برای هر موتور نیست. برنامههای سفارشی یا ادغامهای شخص ثالث میتوانند از WebHCat استفاده کنند که یک API RESTful برای HCatalog است تا به متادیتای Hive دسترسی پیدا کرده و آن را مجدداً استفاده کنند.
مزایای Hive چیست؟
- سرعت: Hive برای پردازش سریع پتابایتها داده با استفاده از پردازش دستهای طراحی شده است.
- آشنایی: Hive یک رابط شبیه SQL را فراهم میکند که برای غیر برنامهنویسان قابل دسترسی است.
- مقیاسپذیری: Hive به راحتی توزیع و مقیاسپذیر است و میتواند بر اساس نیازهای شما تنظیم شود.
تفاوتهای Apache Hive و Apache HBase چیست؟
ویژگیها | Apache Hive | Apache HBase |
عملکرد | موتور پرسوجوی شبیه SQL طراحی شده برای ذخیرهسازی دادههای با حجم بالا. از فرمتهای فایل متعدد پشتیبانی میکند. |
فروشگاه کلید-مقدار توزیعشده با تأخیر کم و قابلیتهای پرسوجوی سفارشی. دادهها در فرمت ستونی ذخیره میشوند. |
نوع پردازش | پردازش دستهای با استفاده از Apache Tez یا MapReduce. | پردازش بلادرنگ. |
تأخیر | متوسط تا بالا، بسته به پاسخگویی موتور محاسباتی. مدل اجرای توزیعشده عملکرد برتری نسبت به سیستمهای پرسوجوی یکپارچه مانند RDBMS برای حجمهای داده مشابه ارائه میدهد. |
کم، اما ممکن است ناپایدار باشد. محدودیتهای ساختاری معماری HBase میتواند منجر به افزایش تأخیر در بارگذاریهای نوشتن شدید شود. |
ادغام با Hadoop | بر روی Hadoop اجرا میشود، با Apache Tez یا MapReduce برای پردازش و HDFS یا Amazon S3 برای ذخیرهسازی. |
بر روی HDFS یا Amazon S3 اجرا میشود. |
پشتیبانی از SQL | قابلیتهای پرسوجوی شبیه SQL با HiveQL را ارائه میدهد. | بهطور مستقل از SQL پشتیبانی نمیکند. میتوانید از Apache Phoenix برای قابلیتهای SQL استفاده کنید. |
اسکیما (طرحواره) | اسکیما تعریفشده برای تمام جداول | بدون اسکیما |
نوع دادهها | از دادههای ساختیافته و غیرساختیافته پشتیبانی میکند. پشتیبانی بومی برای انواع دادههای رایج SQL مانند INT، FLOAT و VARCHAR را فراهم میکند. |
فقط از دادههای غیرساختیافته پشتیبانی میکند. کاربر نگاشتهای فیلد داده را به انواع دادههای پشتیبانیشده توسط جاوا تعریف میکند. |
موارد استفاده از Hive چیست؟
Guardian به ۲۷ میلیون عضو خود امنیتی که شایسته آنها است را از طریق محصولات و خدمات بیمه و مدیریت ثروت ارائه میدهد. Guardian از Amazon EMR برای اجرای Apache Hive بر روی یک دریاچه داده S3 استفاده میکند. Apache Hive برای پردازش دستهای مورد استفاده قرار میگیرد. دریاچه داده S3، پلتفرم دیجیتال Guardian Direct را تغذیه میکند که به مصرفکنندگان این امکان را میدهد که محصولات Guardian و محصولات شخص ثالث در بخش بیمه را جستجو و خریداری کنند.
FINRA، سازمان نظارت بر صنعت مالی ایالات متحده، بزرگترین نهاد مستقل نظارتی در این حوزه است و رفتارهای تجاری مالی را نظارت و تنظیم میکند. FINRA از Amazon EMR برای اجرای Apache Hive بر روی یک دریاچه داده S3 استفاده میکند. اجرای Hive بر روی خوشههای EMR به FINRA این امکان را میدهد که دادههای تجاری را تا ۹۰ میلیارد رویداد با استفاده از SQL پردازش و تحلیل کند. دریاچه داده ابری منجر به صرفهجویی در هزینه تا ۲۰ میلیون دلار نسبت به راهحلهای محلی FINRA شده و زمان مورد نیاز برای بازیابی و بهروزرسانیها را بهطور چشمگیری کاهش داده است.
Vanguard، یک مشاور سرمایهگذاری ثبتشده آمریکایی، بزرگترین ارائهدهنده صندوقهای سرمایهگذاری مشترک و دومین ارائهدهنده بزرگ صندوقهای قابل معامله در بورس است. Vanguard از Amazon EMR برای اجرای Apache Hive بر روی یک دریاچه داده S3 استفاده میکند. دادهها در S3 ذخیره میشوند و EMR یک متastore Hive بر روی آن دادهها ایجاد میکند. متااستور Hive شامل تمام متادیتا درباره دادهها و جداول در کلاستر EMR است که امکان تجزیه و تحلیل آسان دادهها را فراهم میکند. Hive همچنین به تحلیلگران این امکان را میدهد که پرسوجوهای SQL فوری را بر روی دادههای ذخیرهشده در دریاچه داده S3 انجام دهند. مهاجرت به یک دریاچه داده S3 با Amazon EMR به بیش از ۱۵۰ تحلیلگر داده این امکان را داده است که کارایی عملیاتی را بهبود بخشند و هزینههای EC2 و EMR را به میزان ۶۰۰ هزار دلار کاهش دهند.