مقایسه ابزار های Hive و Impala
ابزار Hive چیست؟
به منظور ارائه پرس و جو و تجزیه و تحلیل داده ها، Apache Hive یک بسته نرم افزاری انبار داده است که بر روی Apache Hadoop ساخته شده است. Hive یک رابط SQL مانند برای جست و جوی داده های نگهداری شده در انواع پایگاه داده ها و سیستم های ذخیره سازی یکپارچه با Hadoop فراهم می کند.
اگر میخواهید در حین استفاده از یک زبان تحلیلی پیچیده (بدون کدنویسی جداگانه وظایف MapReduce) از تخصص خود در SQL استفاده کنید، بدون شک Apache Hive راهی است که میتوانید پیش بروید. در هر صورت، درخواستهای HiveQL به یک کار مرتبط MapReduce تبدیل میشوند که روی خوشه اجرا میشود و نتیجه مطلوب را ارائه میدهد.
کرک نبلو
از آنجا که تجزیه و تحلیل مجموعه داده های عظیمی را که در HDFS نگهداری می شوند و همچنین سیستم های فایل سازگار اضافی مانند Amazon S3 را تسهیل می کند، Apache Hive در کاربرد خود انعطاف پذیر است.
این زبان یک زبان SQL مانند (HiveQL) با طرحی در خواندن ارائه می دهد و به طور یکپارچه پرس و جوها را به فرآیندهای MapReduce، Apache Tez و Spark تبدیل می کند تا طراحان پرس و جو پایگاه داده سنتی را درگیر نگه دارد. ویژگی های اضافی Hive عبارتند از:
- نمایه سازی برای تسهیل پردازش سریعتر
- پشتیبانی از چندین فرمت ذخیره سازی، از جمله RCFile، HBase، ORC و متن ساده
- ذخیرهسازی ابرداده RDBMS باعث میشود تا تستهای معنایی هنگام اجرای پرسوجوها از کار بیفتد.
- به طور ضمنی جستجوهای SQL مانند را به مشاغل MapReduce، Tez یا Spark تبدیل کرده است
- توابع تعریف شده توسط کاربر (UDF) با داخلی های شناخته شده برای دستکاری رشته ها، تاریخ ها و سایر ابزارهای داده کاوی.
←برای خرید کرک لایسنس تبلو Tableau با تمام ویژگی ها کلیک کنید
ابزار Impala چیست؟
این یک موتور جستجوی انبوه موازی SQL منبع باز کلاستر کامپیوتری مبتنی بر آپاچی هادوپ برای ذخیره سازی داده ها است. Impala در سال 2012 ایجاد شد و به عنوان نسخه منبع باز با Google F1 مقایسه شده است.
از آنجایی که Cloudera Impala نیازی به جابجایی یا تبدیل داده ها قبل از پردازش ندارد، برای برنامه نویسانی که کوئری ها را در HDFS و Apache HBase اجرا می کنند، گزینه بسیار خوبی است.
از آنجایی که فرمتهای دادهها و فایلها، فرادادهها، حفاظت و پروتکلهای برنامهریزی منابع با پروتکلهای MapReduce، Apache Hive، Apache Pig و همچنین سایر نرمافزارهای Hadoop یکسان هستند، Cloudera Impala به راحتی با اکوسیستم Hadoop ادغام میشود.
ایمپالا با حذف نیاز به انتقال مجموعه های عظیم داده به سیستم های پردازش تخصصی یا تغییر قالب داده ها قبل از تجزیه و تحلیل، معیارهای عملکرد را به طور قابل توجهی بهبود می بخشد.
ویژگی های اصلی Impala عبارتند از:
- پشتیبانی از سیستم فایل توزیع شده Hadoop (HDFS) و فرمت های ذخیره سازی Apache HBase، از جمله متن، LZO، SequenceFile، Avro، RCFile و Parquet
- پشتیبانی از Hadoop Protection (تأیید هویت Kerberos)
- Apache Sentry مجوزهای دقیق و مبتنی بر نقش را ارائه می دهد.
- می تواند به سرعت ابرداده، درایور ODBC و نحو SQL Apache Hive را بخواند.
- این واقعیت که Impala اکنون از خدمات وب آمازون و همچنین MapR پشتیبانی میکند، ممکن است برای اندازهگیری افزایش آن در مدت کمی بیش از دو سال استفاده شود.
←برای خرید کرک لایسنس تبلو Tableau با تمام ویژگی ها کلیک کنید
اکنون اجازه دهید در مورد برخی از تفاوت های عمده بین Hive و Impala توضیح دهیم:
۱- شرکت توسعه یافته :
- Hive توسط فیس بوک ایجاد شده است.
- Impala توسط بنیاد نرم افزار آپاچی ایجاد شده است.
۲- پشتیبانی فرمت فایل
- Hive از فایل های Sequence، فرمت ستونی ردیف بهینه شده (ORC) با فشرده سازی Zlib، فایل متنی و فرمت فایل RC پشتیبانی می کند.
- ایمپالا از فرمت پارکت با فشرده سازی سریع، فایل Sequence، Avro و LZO پشتیبانی می کند.
۳- زبان
- Hive با استفاده از جاوا نوشته شده است.
- Impala با استفاده از C++ نوشته شده است.
۴- سرعت پردازش
- Hive به طور قابل توجهی کندتر از Impala است، با این حال، با انتشار Hive 2.0 با پشتیبانی LLAP، تفاوت کمتر مشخص می شود. مزیت عملکرد در درجه اول به دلیل عدم وجود MapReduce سنتی است. ایمپالا تاخیرهای راه اندازی یا عملیات ورودی/خروجی بیش از حد مرتبط با Hive را ندارد زیرا از MPP به جای MapReduce استفاده می کند.
- Impala از نظر عملکرد بهتر از Hive است زیرا نیازی به تبدیل انواع داده یا انتقال مجموعه داده های عظیم قبل از اجرای پرس و جوها ندارد.
۵- پشتیبانی از ذخیره سازی
- Hive از فایل های RC و ORC برای پشتیبانی از ذخیره سازی استفاده می کند
- Impala از Hadoop و Apache Hbase برای پشتیبانی از ذخیره سازی استفاده می کند.
۶- تبدیل کد
- Hive عبارت Query را در زمان کامپایل ایجاد می کند.
- در Impala، کد در زمان اجرا تولید می شود.
۷- پشتیبانی از پردازش موازی
- Hive از پردازش موازی پشتیبانی نمی کند در حالی که ایمپالا از پردازش موازی پشتیبانی می کند.
۸- پشتیبانی از MapReduce
Hive از MapReduce پشتیبانی می کند در حالی که Impala از آن پشتیبانی نمی کند.
۹- امنیت Hadoop
Hive از امنیت Hadoop پشتیبانی نمی کند، در حالی که Impala از Kerberos Authentication پشتیبانی می کند.
۱۰- نحوه استفاده
اگر به فکر انجام یک کار ارتقاء هستید، کندو بهترین گزینه شما خواهد بود. سازگاری یک عنصر حیاتی است که باید در نظر گرفته شود.
اگر به تازگی پروژه جدیدی را شروع کرده اید، ایمپالا گزینه بهتری در بین این دو است.
۱۱- عیب پذیری
- Hive از تحمل خطا پشتیبانی می کند. بنابراین حتی اگر یک گره داده در حین اجرای پرس و جو از کار بیفتد، خروجی کوئری همچنان تولید می شود.
ایمپالا از تحمل خطا پشتیبانی نمی کند. هنگام اجرای پرس و جو، یک گره داده پایین می آید و ایمپالا مجددا راه اندازی می شود.
۱۲- انواع پیچیده
- Hive از انواع پیچیده پشتیبانی می کند.
- Impala از انواع پیچیده پشتیبانی نمی کند.
۱۳- نوع پایگاه داده
- Hive یک MapReduce مبتنی بر دسته است.
- ایمپالا یک پایگاه داده MPP است.
۱۴- محاسبات تعاملی
- محاسبات تعاملی در Hive پشتیبانی نمی شود.
- ایمپالا از محاسبات تعاملی پشتیبانی می کند.
۱۵- مدیریت منابع
- مدیریت منابع ابزار Hive بر پایه YARN است.
- در حالی که مدیریت منابع ایمپالا Native*YARN است.
۱۶- توزیع ها
- Hive : Hadoop Distributions, Hortonworks (Tez, LLAP)
- Impala : Cloudera MapR, (*Amazon EMR)
۱۷- مخاطب
- مخاطب هدف HIVE در درجه اول، مهندسان داده است.
- مخاطبان اصلی ایمپالا، تحلیلگران داده و دانشمندان داده هستند.
۱۸- توان عملیاتی
- HIVE دارای نرخ توان عملیاتی است.
- ایمپالا نرخ توان عملیاتی پایینی دارد.
۱۹- زمان مصرف
- قابلیتهای زمان اجرا پویا Hive LLAP میزان کار مورد نیاز را به طور کلی کاهش میدهد. بنابراین، ممکن است نتیجه بگیریم که استفاده از Hive LLAP به زمان کمتری نیاز دارد.
- Impala برای پردازش پرسوجوهای سادهتر نسبت به Hive LLAP زمان کمتری میگیرد، اما زمان بیشتری برای پردازش پرسوجوهای پیچیده میگیرد.
نتیجه گیری
در این مقاله سعی شده است دو فناوری Hive و Impala و همچنین تمایزات اساسی آنها را نشان دهیم.
از نظر عملی، میتوانیم استدلال کنیم که Hive & Impala رقیب نیستند زیرا پایه MapReduce یکسان برای اجرای پرس و جو دارند.
با این حال، نحوه استفاده از آنها ممکن است متفاوت باشد. بسته به نیاز خود می توانیم از آن به صورت جداگانه یا ترکیبی استفاده کنیم و بهترین گزینه سازگاری، نیاز و عملکرد است.
در حالی که Impala همچنان پرقدرت حافظه است و برای مدیریت عملیات داده پیچیده، مانند جستارهای پیوستن، تلاش می کند، Hive QL یک زبان بسیار انعطاف پذیر و جهانی است.
Hive در مواردی که کار پروژه شما شامل پردازش دستهای برای دادههای زیاد باشد، عملکرد بهتری خواهد داشت.
اما Impala در موقعیتهایی که کار شما شامل پردازش زمان واقعی پرسوجوهای دادههای ad-hoc باشد، عملکرد بهتری خواهد داشت.
←برای خرید کرک لایسنس تبلو Tableau با تمام ویژگی ها کلیک کنید
مقاله های مرتبط:
2- آماده سازی داده ها یا Data Preparation – پالایش داده های خام
3-مدیریت کیفیت داده (Data Quality Management) در هوش تجاری (BI)
4-فرهنگ داده چیست – چرا برای حل مشکلات سازمانی ضروری است؟
5-داده کاوی (Data Mining) چیست ؟
6- مفاهیم و اصطلاحات کلان داده یا Big Data